From 766fec6ed7b3610126abe3619c6c5f98f393d937 Mon Sep 17 00:00:00 2001 From: nsfisis Date: Sun, 3 May 2026 16:45:12 +0900 Subject: fix(install): reinstall when locked package's abandoned flag drifts MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Composer's Transaction::calculateOperations fires an UpdateOperation on same-version packages when isAbandoned() or getReplacementPackage() shifts between installed and locked, so vendor/composer/installed.json picks up the refreshed metadata. Mozart only checked source/dist references and treated the abandon-flag drift as a no-op skip. Mirror the canonical bool/string reduction Composer uses (false/null → not abandoned, true → abandoned without replacement, string → abandoned with that replacement) so the check is symmetric across the lock and installed.json shapes. Co-Authored-By: Claude Opus 4.7 (1M context) --- crates/mozart/tests/installer.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'crates/mozart/tests/installer.rs') diff --git a/crates/mozart/tests/installer.rs b/crates/mozart/tests/installer.rs index cb7f430..b5e4026 100644 --- a/crates/mozart/tests/installer.rs +++ b/crates/mozart/tests/installer.rs @@ -259,7 +259,7 @@ installer_fixture!(install_aliased_alias); installer_fixture!(install_branch_alias_composer_repo); installer_fixture!(install_dev); installer_fixture!(install_dev_using_dist); -installer_fixture!(install_forces_reinstall_if_abandon_changes, ignore); +installer_fixture!(install_forces_reinstall_if_abandon_changes); installer_fixture!(install_from_incomplete_lock); installer_fixture!(install_from_incomplete_lock_with_ignore, ignore); installer_fixture!(install_from_lock_removes_package); -- cgit v1.3.1