Skip to content

fix(downloader): rank universal macOS builds and x86-64 microarchitecture levels - #167

Merged
roxblnfk merged 2 commits into
1.xfrom
fix/asset-ranking-universal-levels
Oct 12, 2026
Merged

roxblnfk merged 2 commits into
1.xfrom
fix/asset-ranking-universal-levels

Conversation

@roxblnfk

Copy link
Copy Markdown
Member

🔍 What was changed

  • On macOS, a universal build (darwin-universal, tigerbeetle-universal-macos, macOS_all, universal2) counts as built for the host architecture on both Intel and Apple Silicon: a strict selection keeps it and it ranks above an x86-64 build run through Rosetta. universal and all count only right next to darwin/macos; on other OSes nothing changes.
  • An x86-64 build with a microarchitecture level above v1 (amd64_v2, amd64_v3, x86_64_v3, x86-64-v4) ranks after the plain or _v1 build of the same arch. The CPU is not checked, so such a build is never removed and is still picked when it is the only one for the host. The new level rank sits right after arch in the -vvv output.
  • x86-64 is now read as the x86-64 architecture, so x86-64-v3 names have an arch.

Item 1 of the issue (platform words inside a tool name, like android-tools-linux-x64.zip) is left out of this PR.

Checklist

Documentation

  • skills/dload-fetch-tool/references/registry-entry.md and troubleshooting.md describe the universal build, the level rank and the x86-64 token. The READMEs do not describe asset ranking, so they are unchanged.

Names like `darwin-universal` or `macOS_all` carry no arch token, so a strict selection dropped them and a gradual one ranked them below `darwin-amd64` on Apple Silicon, although they run natively on both Mac architectures; some tools ship only such a build for macOS.
`all` and `universal` count only next to the macOS token, where they are part of the platform rather than an extra token of the name.

Assisted-By: Claude Opus 5.5 <noreply@anthropic.com>
…lower

In `amd64_v3` the level was dropped as a version token, so `_v1` and `_v3` builds tied and the release order decided: a v3 build could be picked on a CPU without AVX2. The CPU is not checked, so a higher level is ranked after the plain or v1 build rather than removed, and stays selectable when the release has nothing else for the host.
`x86-64` is read as the x86-64 architecture too, so `x86-64-v3` builds have an arch.

Assisted-By: Claude Opus 5.5 <noreply@anthropic.com>
@github-actions github-actions Bot added bug Something isn't working tests labels Oct 12, 2026
@codecov

codecov Bot commented Oct 12, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

Files with missing lines Coverage Δ
src/Module/Common/Architecture.php 100.00% <100.00%> (ø)
...e/Downloader/Internal/AssetSelection/AssetName.php 100.00% <100.00%> (ø)
...wnloader/Internal/AssetSelection/AssetSelector.php 100.00% <100.00%> (ø)
.../Internal/AssetSelection/Rule/ArchitectureRule.php 100.00% <100.00%> (ø)
...AssetSelection/Rule/MicroarchitectureLevelRule.php 100.00% <100.00%> (ø)
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@roxblnfk
roxblnfk merged commit ac6d681 into 1.x Oct 12, 2026
23 checks passed
@roxblnfk
roxblnfk deleted the fix/asset-ranking-universal-levels branch October 12, 2026 13:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working tests

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant