From 17766adb1b0c54bb6563333d6a4206d465c5cc7d Mon Sep 17 00:00:00 2001 From: nsfisis Date: Fri, 24 Jul 2026 20:23:35 +0900 Subject: docs(installer-test): record confirmed cause for github-issues-7665 ignore The ignore reason for slow_github_issues_7665 said "unknown reason, needs further investigation." Investigation since then traced the mismatch to an upstream Composer defect: Problem::getPrettyString's RULE_LEARNED tie-break comparator (getSortableString() <=> getSortableString()) is not transitive, and the values it compares are literal ids that shift with the platform package count, which Installer::createPlatformRepo() derives from the real ambient PHP runtime and which Composer's own test suite never mocks. This fixture is brittle to whichever extensions are installed on the machine generating or running it. Nothing to fix on the Rust side; this is an upstream Composer bug (composer/composer#12111 introduced the comparator). --- crates/shirabe/tests/installer_test.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'crates/shirabe/tests/installer_test.rs') diff --git a/crates/shirabe/tests/installer_test.rs b/crates/shirabe/tests/installer_test.rs index c12d9cfd..f694d62d 100644 --- a/crates/shirabe/tests/installer_test.rs +++ b/crates/shirabe/tests/installer_test.rs @@ -1362,7 +1362,7 @@ macro_rules! raw_pool_test { } slow_test! { - slow_github_issues_7665 => "github-issues-7665.test", ignore = "TODO(phase-d): unknown reason. Needs further investigation."; + slow_github_issues_7665 => "github-issues-7665.test", ignore = "TODO(phase-d): upstream Composer defect (composer/composer#12111), not a porting bug. Problem::getPrettyString breaks RULE_LEARNED sort ties with getSortableString() <=> getSortableString(), which compares numerically when both sides are numeric strings and by byte otherwise, so it is not transitive. Those sortable strings are SAT-solver literal ids assigned sequentially while rules are generated, so their values shift with the pool's total package count, including platform packages that Installer::createPlatformRepo() derives from the real ambient PHP runtime, which Composer's own test suite never mocks. This fixture's expected order is therefore brittle to whichever extensions happen to be loaded on the machine that generates or runs it. Nothing to fix on the Rust side."; } pool_optimizer_test! { -- cgit v1.3.1