From 0a8e5935e6305819bb02d8c69e2f046ff397913a Mon Sep 17 00:00:00 2001 From: nsfisis Date: Sun, 22 Feb 2026 00:37:54 +0900 Subject: refactor(workspace): split monolithic crate into 6 workspace crates Extract modules from the single `mozart` crate into 5 focused library crates to improve compilation parallelism and architectural clarity: - mozart-constraint: version constraint parser (independent) - mozart-core: base types, console, validation, platform utilities - mozart-archiver: archive creation (tar, zip, bzip2) - mozart-registry: Packagist API, cache, resolver, downloader, lockfile - mozart-autoload: autoloader generation and PHP scanner Refactor Console::from_cli and build_cache_config to accept primitive args instead of &Cli to break circular dependencies. Introduce [workspace.dependencies] for centralized version management. Remove 9 unused direct dependencies from the CLI crate. Co-Authored-By: Claude Opus 4.6 --- crates/mozart/src/commands/exec.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'crates/mozart/src/commands/exec.rs') diff --git a/crates/mozart/src/commands/exec.rs b/crates/mozart/src/commands/exec.rs index 32781a5..1e785cb 100644 --- a/crates/mozart/src/commands/exec.rs +++ b/crates/mozart/src/commands/exec.rs @@ -20,7 +20,7 @@ pub struct ExecArgs { pub fn execute( args: &ExecArgs, cli: &super::Cli, - _console: &crate::console::Console, + _console: &mozart_core::console::Console, ) -> anyhow::Result<()> { let working_dir = match &cli.working_dir { Some(dir) => PathBuf::from(dir), @@ -58,7 +58,7 @@ pub fn execute( } else { // Check root composer.json bin entries let composer_json_path = working_dir.join("composer.json"); - if let Ok(root) = crate::package::read_from_file(&composer_json_path) { + if let Ok(root) = mozart_core::package::read_from_file(&composer_json_path) { root.bin.into_iter().find_map(|entry| { let p = working_dir.join(&entry); let stem = Path::new(&entry) @@ -159,7 +159,7 @@ fn get_binaries(working_dir: &Path, bin_dir: &Path) -> Vec<(String, bool)> { // Collect from root composer.json bin entries let composer_json_path = working_dir.join("composer.json"); - if let Ok(root) = crate::package::read_from_file(&composer_json_path) { + if let Ok(root) = mozart_core::package::read_from_file(&composer_json_path) { let existing: std::collections::HashSet<&str> = binaries.iter().map(|(n, _)| n.as_str()).collect(); let mut local: Vec = root @@ -363,7 +363,7 @@ mod tests { assert!(!candidate.exists()); // Confirm root bin entries are also empty - let root = crate::package::read_from_file(&dir.path().join("composer.json")).unwrap(); + let root = mozart_core::package::read_from_file(&dir.path().join("composer.json")).unwrap(); assert!(root.bin.is_empty()); } } -- cgit v1.3.1