Follow-ups to the asset ranking from #136. Each case picks a wrong build or none; none of them is a regression.
Platform words inside a tool name
Platform tokens are matched anywhere in the asset name, so a tool name that contains one changes the detected platform:
android-tools-linux-x64.zip is read as an Android build, and a strict selection on Linux finds nothing.
musl-… or gnu-… tool names set the libc the same way.
A token should count only in the platform part of the name, for example after another OS or arch token (linux-android, -musl).
Universal macOS builds
darwin-universal, macOS_all and the like have no arch token. Strict selection drops them; gradual selection on an ARM Mac ranks them below darwin-amd64. Some tools ship only these (Hugo, TigerBeetle's macOS build). ArchitectureRule could rank a universal build 0 on macOS.
Microarchitecture levels
amd64_v3 is read as a version token, so _v1 and _v3 builds tie and release order decides: a v3 build can be picked on a CPU without AVX2. Levels above v1 need a CPU check (reliable on Linux through /proc/cpuinfo), or should rank below the v1 build.
Acceptance
A case in tests/Unit/Module/Downloader/Internal/AssetSelection/AssetSelectorTest.php for each item.
Follow-ups to the asset ranking from #136. Each case picks a wrong build or none; none of them is a regression.
Platform words inside a tool name
Platform tokens are matched anywhere in the asset name, so a tool name that contains one changes the detected platform:
android-tools-linux-x64.zipis read as an Android build, and a strict selection on Linux finds nothing.musl-…orgnu-…tool names set the libc the same way.A token should count only in the platform part of the name, for example after another OS or arch token (
linux-android,-musl).Universal macOS builds
darwin-universal,macOS_alland the like have no arch token. Strict selection drops them; gradual selection on an ARM Mac ranks them belowdarwin-amd64. Some tools ship only these (Hugo, TigerBeetle's macOS build).ArchitectureRulecould rank a universal build 0 on macOS.Microarchitecture levels
amd64_v3is read as a version token, so_v1and_v3builds tie and release order decides: a v3 build can be picked on a CPU without AVX2. Levels above v1 need a CPU check (reliable on Linux through/proc/cpuinfo), or should rank below the v1 build.Acceptance
A case in
tests/Unit/Module/Downloader/Internal/AssetSelection/AssetSelectorTest.phpfor each item.