diff options
| author | nsfisis <nsfisis@gmail.com> | 2026-07-04 22:43:31 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2026-07-05 00:32:15 +0900 |
| commit | ae6c32e918e72d3ebaf1302e9ed0c1be6ee36627 (patch) | |
| tree | 5728296f0a45e0f88d23f9558b6f2ce068ced754 /crates/shirabe | |
| parent | 41de0d502e76c0054f2b4dd0bd73ef3086ed5fbe (diff) | |
| download | php-shirabe-ae6c32e918e72d3ebaf1302e9ed0c1be6ee36627.tar.gz php-shirabe-ae6c32e918e72d3ebaf1302e9ed0c1be6ee36627.tar.zst php-shirabe-ae6c32e918e72d3ebaf1302e9ed0c1be6ee36627.zip | |
fix(composer-repository): use create_packages for lazy metadata-url packages
load_async_packages (the v2 metadata-url/packagist protocol path)
called a separate create_packages_static helper instead of the
instance method create_packages. PHP has a single createPackages
method used everywhere, so this duplicate silently skipped the
notification-url injection (and dist-mirror/transport-options setup)
that create_packages performs. Every package resolved via the
lazy provider path ended up missing notification-url in
composer.lock/installed.json. Removed the now-dead duplicate.
Diffstat (limited to 'crates/shirabe')
| -rw-r--r-- | crates/shirabe/src/repository/composer_repository.rs | 21 |
1 files changed, 5 insertions, 16 deletions
diff --git a/crates/shirabe/src/repository/composer_repository.rs b/crates/shirabe/src/repository/composer_repository.rs index baf5768..2de6ad0 100644 --- a/crates/shirabe/src/repository/composer_repository.rs +++ b/crates/shirabe/src/repository/composer_repository.rs @@ -396,7 +396,7 @@ impl ComposerRepository { let flat: Vec<IndexMap<String, PhpMixed>> = partial.into_values().flatten().collect(); return self - .create_packages_flat(flat, Some("packages.json inline packages".to_string())); + .create_packages(flat, Some("packages.json inline packages".to_string())); } return Err(LogicException { @@ -1564,7 +1564,7 @@ impl ComposerRepository { // load acceptable packages in the providers let versions_to_load_vec: Vec<IndexMap<String, PhpMixed>> = versions_to_load.values().cloned().collect(); - let loaded_packages = self.create_packages_flat(versions_to_load_vec, packages_source)?; + let loaded_packages = self.create_packages(versions_to_load_vec, packages_source)?; let uids: Vec<String> = versions_to_load.keys().cloned().collect(); let self_handle = self.self_handle(); @@ -1600,7 +1600,7 @@ impl ComposerRepository { "root file ({})", Url::sanitize(self.get_packages_json_url()) ); - for package in self.create_packages_flat(repo_data, Some(source))? { + for package in self.create_packages(repo_data, Some(source))? { self.add_package(package); } Ok(()) @@ -1842,7 +1842,7 @@ impl ComposerRepository { } let loaded_packages: Vec<BasePackageHandle> = - ComposerRepository::create_packages_static(versions_to_load, packages_source)?; + self.create_packages(versions_to_load, packages_source)?; let self_handle = self.self_handle(); for package in loaded_packages.into_iter() { if let Some(h) = self_handle.as_ref() { @@ -2571,7 +2571,7 @@ impl ComposerRepository { Ok(packages) } - fn create_packages_flat( + fn create_packages( &mut self, packages: Vec<IndexMap<String, PhpMixed>>, source: Option<String>, @@ -2645,17 +2645,6 @@ impl ComposerRepository { }) } - fn create_packages_static( - packages: Vec<IndexMap<String, PhpMixed>>, - _source: Option<String>, - ) -> anyhow::Result<Vec<BasePackageHandle>> { - if packages.is_empty() { - return Ok(vec![]); - } - let loader = ArrayLoader::new(Some(VersionParser::new()), true); - Ok(loader.load_packages(packages)?.into_iter().collect()) - } - fn fetch_file( &mut self, filename: &str, |
