From ff0d51089d8c5abc9ecbdeeaf3d6aa152f137e97 Mon Sep 17 00:00:00 2001 From: nsfisis Date: Sun, 22 Feb 2026 18:34:48 +0900 Subject: fix(platform): inject composer pseudo packages into resolver composer-runtime-api, composer-plugin-api, and composer are Composer pseudo packages that don't exist on Packagist. The resolver was trying to fetch them remotely (HTTP 404) because PackageName::is_platform() didn't recognize them and detect_platform() didn't inject them. Co-Authored-By: Claude Opus 4.6 --- crates/mozart-registry/src/resolver.rs | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) (limited to 'crates/mozart-registry/src/resolver.rs') diff --git a/crates/mozart-registry/src/resolver.rs b/crates/mozart-registry/src/resolver.rs index e3554be..66864f7 100644 --- a/crates/mozart-registry/src/resolver.rs +++ b/crates/mozart-registry/src/resolver.rs @@ -107,15 +107,9 @@ impl PackageName { PackageName(Self::ROOT.to_string()) } - /// Returns true if this is a platform package (php, ext-*, lib-*). + /// Returns true if this is a platform package (php, ext-*, lib-*, composer pseudo packages). pub fn is_platform(&self) -> bool { - self.0 == "php" - || self.0.starts_with("ext-") - || self.0.starts_with("lib-") - || self.0 == "php-64bit" - || self.0 == "php-ipv6" - || self.0 == "php-zts" - || self.0 == "php-debug" + mozart_core::platform::is_platform_package(&self.0) } /// Returns true if this is the virtual root package. @@ -711,6 +705,9 @@ mod tests { assert!(PackageName("php".to_string()).is_platform()); assert!(PackageName("ext-json".to_string()).is_platform()); assert!(PackageName("lib-curl".to_string()).is_platform()); + assert!(PackageName("composer".to_string()).is_platform()); + assert!(PackageName("composer-plugin-api".to_string()).is_platform()); + assert!(PackageName("composer-runtime-api".to_string()).is_platform()); assert!(!PackageName("monolog/monolog".to_string()).is_platform()); assert!(!PackageName("vendor/package".to_string()).is_platform()); } -- cgit v1.3.1