From ed77ff97d6c137ef58f0464b7a9b08bc2b875bd2 Mon Sep 17 00:00:00 2001 From: nsfisis Date: Sun, 3 May 2026 12:02:08 +0900 Subject: fix(install): keep one cycle survivor as root for install ordering MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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) --- 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 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); -- cgit v1.3.1