aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/shirabe
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2026-07-04 22:43:31 +0900
committernsfisis <nsfisis@gmail.com>2026-07-05 00:32:15 +0900
commitae6c32e918e72d3ebaf1302e9ed0c1be6ee36627 (patch)
tree5728296f0a45e0f88d23f9558b6f2ce068ced754 /crates/shirabe
parent41de0d502e76c0054f2b4dd0bd73ef3086ed5fbe (diff)
downloadphp-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.rs21
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,