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-sat-resolver | |
| 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-sat-resolver')
0 files changed, 0 insertions, 0 deletions
