aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/mozart/src/commands/remove.rs
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2026-05-03 21:54:59 +0900
committernsfisis <nsfisis@gmail.com>2026-05-03 21:54:59 +0900
commit64f8bb0c1aa16d78c5edc3f3de5dd3ff6e5861de (patch)
tree17c9c6c3d7a236876be120fda939b65f37d061a1 /crates/mozart/src/commands/remove.rs
parent177b894d7d77a5297bee3b2487ef18a0cae7a596 (diff)
downloadphp-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/src/commands/remove.rs')
0 files changed, 0 insertions, 0 deletions