From f9671f2dcde92d5c037595d0d3f01396a8190970 Mon Sep 17 00:00:00 2001 From: nsfisis Date: Sat, 9 May 2026 18:44:31 +0900 Subject: refactor(composer): move Composer and Factory from mozart-core to mozart MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Composer needs DownloadManager (from mozart-registry), but mozart-core sits below mozart-registry in the dependency graph — adding the field would create a dependency cycle. Moving Composer and create_composer to the mozart CLI crate breaks the cycle and lets the root state container hold a DownloadManager. Co-Authored-By: Claude Sonnet 4.6 --- crates/mozart-registry/src/download_manager.rs | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) (limited to 'crates/mozart-registry/src') diff --git a/crates/mozart-registry/src/download_manager.rs b/crates/mozart-registry/src/download_manager.rs index 3e05517..7c6ff73 100644 --- a/crates/mozart-registry/src/download_manager.rs +++ b/crates/mozart-registry/src/download_manager.rs @@ -35,7 +35,10 @@ impl DownloadManager { Self { git_cache_dir } } - pub fn for_package(&self, package: &LocalPackage) -> Option> { + pub fn get_downloader_for_package( + &self, + package: &LocalPackage, + ) -> Option> { if package.package_type() == Some("metapackage") { return None; } @@ -107,34 +110,34 @@ mod tests { None, Value::Null, ); - assert!(dm.for_package(&p).is_none()); + assert!(dm.get_downloader_for_package(&p).is_none()); } #[test] fn dist_install_returns_none() { let dm = DownloadManager::new(PathBuf::from("/tmp/mz-test-cache")); let p = pkg(Some(InstallationSource::Dist), Some("git")); - assert!(dm.for_package(&p).is_none()); + assert!(dm.get_downloader_for_package(&p).is_none()); } #[test] fn source_install_with_git_returns_some() { let dm = DownloadManager::new(PathBuf::from("/tmp/mz-test-cache")); let p = pkg(Some(InstallationSource::Source), Some("git")); - assert!(dm.for_package(&p).is_some()); + assert!(dm.get_downloader_for_package(&p).is_some()); } #[test] fn unknown_source_kind_returns_none() { let dm = DownloadManager::new(PathBuf::from("/tmp/mz-test-cache")); let p = pkg(Some(InstallationSource::Source), Some("perforce")); - assert!(dm.for_package(&p).is_none()); + assert!(dm.get_downloader_for_package(&p).is_none()); } #[test] fn missing_installation_source_returns_none() { let dm = DownloadManager::new(PathBuf::from("/tmp/mz-test-cache")); let p = pkg(None, Some("git")); - assert!(dm.for_package(&p).is_none()); + assert!(dm.get_downloader_for_package(&p).is_none()); } } -- cgit v1.3.1