CI: get macOS bootstrap green — provision LLVM SDK across .tar.gz/.tar.zst release skew - #709
Open
ropoctl wants to merge 1 commit into
Open
CI: get macOS bootstrap green — provision LLVM SDK across .tar.gz/.tar.zst release skew#709ropoctl wants to merge 1 commit into
ropoctl wants to merge 1 commit into
Conversation
build :deps expects a with-llvm-sdk-<ver>-darwin-aarch64.tar.gz release asset (self-hosted zlib_gunzip fetch path), but every published release ships the SDK only as .tar.zst, so :deps finds no asset and the macOS selfhost job fails at Fetch SDK. Add a step that provisions .deps/ directly from the release SDK asset, preferring .tar.gz and falling back to the .tar.zst that shipped in the last release. With .deps pre-populated, build :deps finds its marker (lib/libclang.a) already present and returns success, leaving the self-hosted fetch path unchanged.
ropoctl
force-pushed
the
ci-macos-sdk-provision-shim
branch
from
July 24, 2026 06:33
964d113 to
d8beecd
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Root cause
The macOS
selfhost (macOS)job fails at Fetch SDK (src/main build :deps).build :depsresolves the static LLVM SDK release asset aswith-llvm-sdk-<ver>-darwin-aarch64.tar.gzand decompresses it with theself-hosted
zlib_gunziphelper (run_deps_download_actioninbuild/seed.w). This.tar.gzexpectation was introduced infefe8840(2026-06-19, "Remove host fetch tools from dependency targets"),which migrated the fetch path off the external
zstdtool.However, every published release ships the SDK only as
.tar.zst— thelatest release (v0.15.1, 2026-06-08) predates
fefe8840, and no.tar.gzSDK release has been cut since.
seed_release_from_apimatches asset namesexactly (
name == asset_name), so it finds no matching asset across allreleases and
:depsfails. The current workflow (Bootstrap seed / Fetch SDK/ Build / Fixpoint / Test) had never actually run — the last CI activity
(2026-04-01) used the previous workflow — so this had gone unobserved.
Fix
The build tree is internally consistent on
.tar.gz(it both produces viawrite_tar_gzand consumes viazlib_gunzip); the correct long-termresolution is a release cut with
.tar.gzSDK assets. Rather than reversefefe8840's self-hosted direction, this bridges the release skew in CI:A new Provision LLVM SDK step downloads the SDK release asset directly
into
.deps/, preferring.tar.gzand falling back to the.tar.zstthat shipped in the last release (extracting via
tar --zstd, orzstd -d | tarif the runner'starlacks zstd). With.deps/pre-populated,the subsequent
build :depsfinds its marker(
.deps/llvm-<ver>-darwin-arm64/lib/libclang.a) already present and returnssuccess immediately — the self-hosted fetch path is left unchanged. Once a
.tar.gzSDK release exists, the step transparently prefers it and thefallback becomes dead.
Verified
ver=22.1.6, selectsv0.15.1 / with-llvm-sdk-22.1.6-darwin-aarch64.tar.zst.llvm-22.1.6-<host>/andcontains
lib/libclang.a,bin/clang++, andlib/clang/22/include/stddef.h— exactly whatLLVM_PREFIXneeds. Bothextraction paths (
tar --zstdandzstd -d | tar) verified.:depsmarker short-circuit confirmed inrun_deps_download_action(
if fs.exists(marker): return 0).SDK / Fetch SDK / Build / Fixpoint / Test.
Not verified (no macOS host available)
step that was hard-failing (Fetch SDK); it does not attempt to diagnose any
downstream failure that only a green Fetch SDK could expose.
Follow-up (not in this PR)
build :depsremains broken for local developers against current releasesuntil a release is cut with
.tar.gzSDK assets (which the build alreadyproduces). This CI step is a bridge, not a substitute for that release.