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/search.rs | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) (limited to 'crates/mozart/src/commands/search.rs') diff --git a/crates/mozart/src/commands/search.rs b/crates/mozart/src/commands/search.rs index d172976..98189ff 100644 --- a/crates/mozart/src/commands/search.rs +++ b/crates/mozart/src/commands/search.rs @@ -1,5 +1,5 @@ -use crate::packagist::SearchResult; use clap::Args; +use mozart_registry::packagist::SearchResult; #[derive(Args)] pub struct SearchArgs { @@ -62,11 +62,12 @@ fn passes_only_vendor(result: &SearchResult, query: &str) -> bool { pub fn execute( args: &SearchArgs, _cli: &super::Cli, - _console: &crate::console::Console, + _console: &mozart_core::console::Console, ) -> anyhow::Result<()> { let query = args.tokens.join(" "); - let (all_results, total) = crate::packagist::search_packages(&query, args.r#type.as_deref())?; + let (all_results, total) = + mozart_registry::packagist::search_packages(&query, args.r#type.as_deref())?; // Apply client-side filters let mut results: Vec<&SearchResult> = all_results.iter().collect(); @@ -92,7 +93,7 @@ pub fn execute( if results.is_empty() { eprintln!( "{}", - crate::console::warning(&format!("No packages found for \"{query}\"")) + mozart_core::console::warning(&format!("No packages found for \"{query}\"")) ); return Ok(()); } @@ -115,9 +116,13 @@ pub fn execute( println!( "{} {} {}", - crate::console::info(&format!("{: