diff options
| author | nsfisis <nsfisis@gmail.com> | 2026-06-27 05:48:29 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2026-06-27 05:48:29 +0900 |
| commit | a66fca3b57a1b3ed77272c2479da4efd7140ca23 (patch) | |
| tree | 6d2a8aa27de4f66254acd659a32894e1b3f0f378 | |
| parent | f87b930a5bf21d2f60a53151599e0953b7c1f99e (diff) | |
| download | php-shirabe-a66fca3b57a1b3ed77272c2479da4efd7140ca23.tar.gz php-shirabe-a66fca3b57a1b3ed77272c2479da4efd7140ca23.tar.zst php-shirabe-a66fca3b57a1b3ed77272c2479da4efd7140ca23.zip | |
fix(locker): build InstalledRepository with locked and root repos
getMissingRequirementInfo created an empty InstalledRepository (both
repos were left commented out as a stub), so every locked requirement
was reported as "not present in the lock file". Pass [lockedRepo,
rootRepo] to the constructor as the PHP does.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
| -rw-r--r-- | crates/shirabe/src/package/locker.rs | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/crates/shirabe/src/package/locker.rs b/crates/shirabe/src/package/locker.rs index 926429a..3a87061 100644 --- a/crates/shirabe/src/package/locker.rs +++ b/crates/shirabe/src/package/locker.rs @@ -30,6 +30,7 @@ use crate::repository::InstalledRepository; use crate::repository::LockArrayRepository; use crate::repository::LockArrayRepositoryHandle; use crate::repository::PlatformRepository; +use crate::repository::RepositoryInterfaceHandle; use crate::repository::RootPackageRepository; use crate::util::Git as GitUtil; use crate::util::ProcessExecutor; @@ -911,10 +912,13 @@ impl Locker { description: "Required (in require-dev)".to_string(), }); } - let root_repo = RootPackageRepository::new(RootPackageInterfaceHandle::dup(&package)); + let root_repo: RepositoryInterfaceHandle = RepositoryInterfaceHandle::new( + RootPackageRepository::new(RootPackageInterfaceHandle::dup(&package)), + ); for set in &sets { - let installed_repo = InstalledRepository::new(vec![/* set.repo, root_repo */]); + let installed_repo = + InstalledRepository::new(vec![set.repo.clone().into(), root_repo.clone()]); // PHP: call_user_func([$package, $set['method']]) let links = match set.method.as_str() { @@ -986,8 +990,6 @@ impl Locker { missing_requirements = true; } } - let _ = root_repo; - let _ = installed_repo; } if missing_requirements { |
