From 64f8bb0c1aa16d78c5edc3f3de5dd3ff6e5861de Mon Sep 17 00:00:00 2001 From: nsfisis Date: Sun, 3 May 2026 21:54:59 +0900 Subject: 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. --- crates/mozart/tests/installer.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'crates/mozart/tests') 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); -- cgit v1.3.1