aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/mozart/tests/installer.rs
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2026-05-03 22:11:09 +0900
committernsfisis <nsfisis@gmail.com>2026-05-03 22:11:09 +0900
commit6d036ca5b0e6cb21e5b12a02d544a27e33a97a14 (patch)
tree7bb13b6db63a6c1ef75b1bb90345b30a52758ca8 /crates/mozart/tests/installer.rs
parent38706a6f0ceb773d473c4f5ddebf49e8e5ae46dc (diff)
downloadphp-mozart-6d036ca5b0e6cb21e5b12a02d544a27e33a97a14.tar.gz
php-mozart-6d036ca5b0e6cb21e5b12a02d544a27e33a97a14.tar.zst
php-mozart-6d036ca5b0e6cb21e5b12a02d544a27e33a97a14.zip
fix(update): unlock replacer when --with-deps walks a replaced require
`expand_with_(direct|all)_dependencies` only looked up dependencies by their literal name in the lock. When a transitive require pointed at a virtual / replaced name (e.g. `replaced/pkg1`) and the lock owned it through another package's `replace` map (e.g. `dep/pkg1` replaces `replaced/pkg1`), the replacer never entered the unlock set. The partial-update resolver then left it pinned at its lock version and silently kept the user on the old release. Mirror Composer's replace branch in `PoolBuilder::loadPackage`: build a `replaced → replacers` index over the lock and route every dep walked during expansion through it before recursing.
Diffstat (limited to 'crates/mozart/tests/installer.rs')
-rw-r--r--crates/mozart/tests/installer.rs2
1 files changed, 1 insertions, 1 deletions
diff --git a/crates/mozart/tests/installer.rs b/crates/mozart/tests/installer.rs
index e9f2749..c3e1f7d 100644
--- a/crates/mozart/tests/installer.rs
+++ b/crates/mozart/tests/installer.rs
@@ -299,7 +299,7 @@ installer_fixture!(
ignore
);
installer_fixture!(partial_update_with_dependencies_provide);
-installer_fixture!(partial_update_with_dependencies_replace, ignore);
+installer_fixture!(partial_update_with_dependencies_replace);
installer_fixture!(partial_update_with_deps_warns_root);
installer_fixture!(partial_update_with_symlinked_path_repos);
installer_fixture!(partial_update_without_lock);