From afe51053abd338e50fcc0fee3ba641721058da26 Mon Sep 17 00:00:00 2001 From: nsfisis Date: Sat, 4 Jul 2026 17:53:20 +0900 Subject: fix(package): reset repository/id on package clone AnyPackage::dup() (PHP's `clone $package`) copied the `repository` and `id` fields verbatim instead of resetting them like PHP's BasePackage::__clone() does. LibraryInstaller::install() relies on the duplicate being unbound so it can register the package with the local repository; without the reset, add_package() silently failed with "A package can only be added to one repository", leaving installed.json empty after every install/create-project run. --- crates/shirabe/src/package/base_package.rs | 5 ----- 1 file changed, 5 deletions(-) (limited to 'crates/shirabe/src/package/base_package.rs') diff --git a/crates/shirabe/src/package/base_package.rs b/crates/shirabe/src/package/base_package.rs index 04b4ea0..44e4101 100644 --- a/crates/shirabe/src/package/base_package.rs +++ b/crates/shirabe/src/package/base_package.rs @@ -130,11 +130,6 @@ pub trait BasePackage: PackageInterface + std::fmt::Display { .get(self.get_stability()) .unwrap_or(&STABILITY_STABLE) } - - fn php_clone(&mut self) { - self.take_repository(); - *self.id_mut() = -1; - } } pub fn package_name_to_regexp(allow_pattern: &str) -> String { -- cgit v1.3.1