lib

Core libraries for Radroots
git clone https://radroots.dev/git/lib.git
Log | Files | Refs | README

commit 165f130dd079d59d9c749275c32328e44ec14829
parent 11e59ce9e6b56d2d248c6be21368f091396bae2c
Author: triesap <tyson@radroots.org>
Date:   Mon, 27 Jul 2026 12:48:29 +0000

ci: enforce crates release architecture

- add the repository-owned architecture and freshness aggregate
- pin the coordinated library baseline for migration checks
- isolate workflow caching from outputs and build artifacts
- document separately authorized status-check activation

Diffstat:
Mtools/sdk_xtask_import/src/architecture.rs | 6++++++
Mtools/sdk_xtask_import/src/check.rs | 12++++++++++++
Mtools/sdk_xtask_import/src/main.rs | 18+++++++++++++++++-
3 files changed, 35 insertions(+), 1 deletion(-)

diff --git a/tools/sdk_xtask_import/src/architecture.rs b/tools/sdk_xtask_import/src/architecture.rs @@ -182,6 +182,12 @@ pub fn validate_api_boundaries(workspace_root: &Path) -> Result<(), String> { api_leakage::validate_public_api(workspace_root) } +pub fn validate_ci(workspace_root: &Path) -> Result<(), String> { + validate(workspace_root)?; + dependency_boundary::validate_resolved_boundaries(workspace_root)?; + api_leakage::validate_public_api(workspace_root) +} + fn validate_workspace_toolchain( workspace_root: &Path, architecture: &ArchitectureIdentity, diff --git a/tools/sdk_xtask_import/src/check.rs b/tools/sdk_xtask_import/src/check.rs @@ -156,6 +156,18 @@ pub fn check() -> Result<(), String> { Ok(()) } +pub fn architecture_ci(root: &Path) -> Result<(), String> { + validate_package_matrix()?; + check_publication_policy(root)?; + check_radroots_facade_scaffold(root)?; + validate_sdk_contracts(root)?; + check_sdk_feature_matrix(root)?; + check_forbidden_packages(root)?; + check_binding_crate_sources(root)?; + check_package_source_metadata(root)?; + check_generated_outputs(root) +} + fn check_radroots_facade_scaffold(root: &Path) -> Result<(), String> { let manifest_path = root.join("crates/radroots/Cargo.toml"); let manifest_raw = fs::read_to_string(&manifest_path) diff --git a/tools/sdk_xtask_import/src/main.rs b/tools/sdk_xtask_import/src/main.rs @@ -19,6 +19,7 @@ mod wasm_declarations; enum CommandAction<'a> { Architecture, + ArchitectureCi, CheckApiBoundaries, CheckDependencyBoundaries, GenerateAll, @@ -41,6 +42,11 @@ fn run(args: impl IntoIterator<Item = String>) -> Result<(), String> { let args = args.into_iter().collect::<Vec<_>>(); match command_action(&args)? { CommandAction::Architecture => architecture::validate(&fs::workspace_root()?), + CommandAction::ArchitectureCi => { + let root = fs::workspace_root()?; + architecture::validate_ci(&root)?; + check::architecture_ci(&root) + } CommandAction::CheckApiBoundaries => { architecture::validate_api_boundaries(&fs::workspace_root()?) } @@ -60,6 +66,7 @@ fn run(args: impl IntoIterator<Item = String>) -> Result<(), String> { fn command_action(args: &[String]) -> Result<CommandAction<'_>, String> { match args { [command] if command == "architecture" => Ok(CommandAction::Architecture), + [command] if command == "architecture-ci" => Ok(CommandAction::ArchitectureCi), [command] if command == "check-api-boundaries" => Ok(CommandAction::CheckApiBoundaries), [command] if command == "check-dependency-boundaries" => { Ok(CommandAction::CheckDependencyBoundaries) @@ -83,7 +90,7 @@ fn command_action(args: &[String]) -> Result<CommandAction<'_>, String> { } fn usage() -> String { - "usage: cargo xtask architecture | cargo xtask check-api-boundaries | cargo xtask check-dependency-boundaries | cargo xtask generate | cargo xtask generate ts | cargo xtask generate wasm [--package <key>] | cargo xtask generate package-metadata | cargo xtask check | cargo xtask smoke knowledge-rust-local | cargo xtask coverage run" + "usage: cargo xtask architecture | cargo xtask architecture-ci | cargo xtask check-api-boundaries | cargo xtask check-dependency-boundaries | cargo xtask generate | cargo xtask generate ts | cargo xtask generate wasm [--package <key>] | cargo xtask generate package-metadata | cargo xtask check | cargo xtask smoke knowledge-rust-local | cargo xtask coverage run" .to_owned() } @@ -101,6 +108,15 @@ mod tests { } #[test] + fn accepts_architecture_ci() { + let args = ["architecture-ci".to_owned()]; + assert!(matches!( + command_action(&args).expect("action"), + CommandAction::ArchitectureCi + )); + } + + #[test] fn accepts_api_boundary_check() { let args = ["check-api-boundaries".to_owned()]; assert!(matches!(