Repository navigation
feat: get static binaries from per-version releases - #510
Conversation
clang-tools-static-binaries now publishes one immutable release per LLVM version and lists them all in an index.json on GitHub Pages. The old `releases/latest` (2026.09.01-5fb8802d) no longer receives new builds. The build script now reads that index instead of `versions.json`, and records each major version's release tag. Downloads (and the cached SHA512SUMS) use the tag of the requested version.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #510 +/- ##
=======================================
Coverage 99.41% 99.41%
=======================================
Files 28 28
Lines 6487 6507 +20
=======================================
+ Hits 6449 6469 +20
Misses 38 38 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info
📝 Walkthrough
Merge Risk: ⚪ Minimal · up to
|
Before:
clang-tools-managerdownloaded every static binary from the single release behindreleases/latest(2026.09.01-5fb8802d), using that release'sversions.jsonat build time. Since cpp-linter/clang-tools-static-binaries#142, new LLVM builds no longer go into that release, so they never reach clang-tools-manager.After: the build script reads the static binaries'
index.json, which lists one immutable release per LLVM version (llvm-12.0.1…llvm-23.1.0). Each binary is downloaded from its own version's release and checked against that release'sSHA512SUMS.How:
build.rsfetchesindex.json(still cached for 24 hours, and still shipped in the crate for docs.rs, now asstatic-binaries-index.json), checksschema_version == 1, emitsMIN/MAX_CLANG_TOOLS_VERSIONas before, and writes a(major, release tag)table toOUT_DIR.find_suitable_version()now returns the tag along with the version. The cachedSHA512SUMSmoved tostatic_dist/<tag>/SHA512SUMS, so a rebuilt release (llvm-X.Y.Z-2) never reuses stale checksums. The pre-seed workflow, the dev-test version loop andnur seed versionsread the new file. The public API does not change.Tested locally: lib tests pass, and a temporary test downloaded and verified clang-format 12 and 23 from their own releases.
Summary by CodeRabbit