diff options
| author | nsfisis <nsfisis@gmail.com> | 2026-05-03 22:07:34 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2026-05-03 22:07:34 +0900 |
| commit | 38706a6f0ceb773d473c4f5ddebf49e8e5ae46dc (patch) | |
| tree | a38de4fbf27e6834eae3944bbd86ce53b13236cb /crates/mozart/tests | |
| parent | 64f8bb0c1aa16d78c5edc3f3de5dd3ff6e5861de (diff) | |
| download | php-mozart-38706a6f0ceb773d473c4f5ddebf49e8e5ae46dc.tar.gz php-mozart-38706a6f0ceb773d473c4f5ddebf49e8e5ae46dc.tar.zst php-mozart-38706a6f0ceb773d473c4f5ddebf49e8e5ae46dc.zip | |
fix(update): apply --minimal-changes via policy preferred versions
The previous implementation pinned every resolved package back to its
locked version after the resolve, which discarded the new versions the
solver had to pick when a root constraint moved off the lock (e.g. a
require bumped from `1.*` to `2.*`). The lock effectively never moved,
so transitive cascades from a forced root-level update were lost.
Mirror Composer's `Installer::createPolicy(forUpdate=true,
minimalUpdate=true)` instead: thread the lock's `name → normalized
version` map through the policy as `preferred_versions`. The solver now
picks the locked version as a tiebreaker when it still satisfies the
active constraints, but moves freely when a constraint forces a
different version. Drop the post-process hook entirely.
Diffstat (limited to 'crates/mozart/tests')
| -rw-r--r-- | crates/mozart/tests/installer.rs | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/crates/mozart/tests/installer.rs b/crates/mozart/tests/installer.rs index efd0aa2..e9f2749 100644 --- a/crates/mozart/tests/installer.rs +++ b/crates/mozart/tests/installer.rs @@ -245,7 +245,7 @@ installer_fixture!(conflict_with_alias_prevents_update_if_not_required); installer_fixture!(conflict_with_all_dependencies_option_dont_recommend_to_use_it); installer_fixture!(deduplicate_solver_problems); installer_fixture!(disjunctive_multi_constraints); -installer_fixture!(full_update_minimal_changes, ignore); +installer_fixture!(full_update_minimal_changes); installer_fixture!(github_issues_4319); installer_fixture!(github_issues_4795); installer_fixture!(github_issues_4795_2); |
