diff options
| author | nsfisis <nsfisis@gmail.com> | 2026-05-03 16:45:12 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2026-05-03 16:45:12 +0900 |
| commit | 766fec6ed7b3610126abe3619c6c5f98f393d937 (patch) | |
| tree | 9afba9bd4e305c1836785bd1014d79eb0eac6390 /crates/mozart/tests/installer.rs | |
| parent | 9eecfe303c944c80556b0b25fcd3ce6bbce3aeb8 (diff) | |
| download | php-mozart-766fec6ed7b3610126abe3619c6c5f98f393d937.tar.gz php-mozart-766fec6ed7b3610126abe3619c6c5f98f393d937.tar.zst php-mozart-766fec6ed7b3610126abe3619c6c5f98f393d937.zip | |
fix(install): reinstall when locked package's abandoned flag drifts
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) <noreply@anthropic.com>
Diffstat (limited to 'crates/mozart/tests/installer.rs')
| -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 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); |
