aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/mozart/tests/installer.rs
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2026-05-03 12:02:08 +0900
committernsfisis <nsfisis@gmail.com>2026-05-03 12:02:08 +0900
commited77ff97d6c137ef58f0464b7a9b08bc2b875bd2 (patch)
tree63322190bfb1de4ea0b425c31a568fa4fe58a211 /crates/mozart/tests/installer.rs
parentae1aa6540761e54a76b8f7984cf93cd3a0d011d0 (diff)
downloadphp-mozart-ed77ff97d6c137ef58f0464b7a9b08bc2b875bd2.tar.gz
php-mozart-ed77ff97d6c137ef58f0464b7a9b08bc2b875bd2.tar.zst
php-mozart-ed77ff97d6c137ef58f0464b7a9b08bc2b875bd2.zip
fix(install): keep one cycle survivor as root for install ordering
Mozart's install-order topological sort marked every package required by any other as non-root, so cycle members all fell out of the root set and the cycle fallback emitted them in input (alphabetical) order. Composer instead walks the sorted result map and removes each package's required providers as it goes, skipping outer packages already removed — leaving the highest-sort-key cycle member as a root and giving DFS a deterministic entry point. Mirror that. Unblocks the prefer_lowest_branches installer fixture. 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.rs2
1 files changed, 1 insertions, 1 deletions
diff --git a/crates/mozart/tests/installer.rs b/crates/mozart/tests/installer.rs
index 3daaf1e..a0eaab0 100644
--- a/crates/mozart/tests/installer.rs
+++ b/crates/mozart/tests/installer.rs
@@ -308,7 +308,7 @@ installer_fixture!(partial_update_with_symlinked_path_repos);
installer_fixture!(partial_update_without_lock);
installer_fixture!(platform_ext_solver_problems);
installer_fixture!(plugins_are_installed_first);
-installer_fixture!(prefer_lowest_branches, ignore);
+installer_fixture!(prefer_lowest_branches);
installer_fixture!(problems_reduce_versions);
installer_fixture!(provider_can_coexist_with_other_version_of_provided);
installer_fixture!(provider_conflicts, ignore);