diff options
| author | nsfisis <nsfisis@gmail.com> | 2026-05-03 21:54:59 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2026-05-03 21:54:59 +0900 |
| commit | 64f8bb0c1aa16d78c5edc3f3de5dd3ff6e5861de (patch) | |
| tree | 17c9c6c3d7a236876be120fda939b65f37d061a1 /crates/mozart/tests | |
| parent | 177b894d7d77a5297bee3b2487ef18a0cae7a596 (diff) | |
| download | php-mozart-64f8bb0c1aa16d78c5edc3f3de5dd3ff6e5861de.tar.gz php-mozart-64f8bb0c1aa16d78c5edc3f3de5dd3ff6e5861de.tar.zst php-mozart-64f8bb0c1aa16d78c5edc3f3de5dd3ff6e5861de.zip | |
fix(install): reject lock when locked packages conflict with each other
Composer's `install` runs a SAT verify over the locked repository so a
declared `conflict` between two locked packages (including via a
branch-alias or the lock's top-level `aliases` block) fails fast with
exit-code 2 and "Your lock file does not contain a compatible set of
packages." Mozart skipped that step and proceeded to install both
packages. Add a targeted check that walks each locked package's
`conflict` map against every name a locked package effectively
advertises (own version, `extra.branch-alias` target, lock-level
`aliases` entry, `replace` constraint) and bails with the same exit
code when a match is found.
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 6e1862c..efd0aa2 100644 --- a/crates/mozart/tests/installer.rs +++ b/crates/mozart/tests/installer.rs @@ -239,7 +239,7 @@ installer_fixture!(conflict_between_root_and_dependent); installer_fixture!(conflict_downgrade); installer_fixture!(conflict_downgrade_nested); installer_fixture!(conflict_on_root_with_alias_prevents_update_if_not_required); -installer_fixture!(conflict_with_alias_in_lock_does_prevents_install, ignore); +installer_fixture!(conflict_with_alias_in_lock_does_prevents_install); installer_fixture!(conflict_with_alias_prevents_update); installer_fixture!(conflict_with_alias_prevents_update_if_not_required); installer_fixture!(conflict_with_all_dependencies_option_dont_recommend_to_use_it); |
