Skip to content

ci(lsan-macos): pin the Homebrew LLVM toolchain to llvm@22 - #2028

Open
DeusData wants to merge 1 commit into
mainfrom
ci/pin-llvm22-lsan-macos
Open

ci(lsan-macos): pin the Homebrew LLVM toolchain to llvm@22#2028
DeusData wants to merge 1 commit into
mainfrom
ci/pin-llvm22-lsan-macos

Conversation

@DeusData

@DeusData DeusData commented Sep 3, 2026

Copy link
Copy Markdown
Owner

Why

test-lsan-macos installs the unversioned llvm formula, which tracks Homebrew stable. Stable moved 22.1.8 → 23.1.0 today, so the leg's compiler now depends on which bottle the runner image happens to draw:

Same code, two verdicts. That is exactly the shape the suite is not allowed to have: a test's result must be a function of the code, not of the image snapshot.

What

Two lines: brew install llvm@22 ccache and brew --prefix llvm@22, plus a comment saying why. llvm@22 is at 22.1.8 — the version every green run of this leg has used so far, and the version the local make -f Makefile.cbm test-lsan / diag lanes are on.

Moving to a newer major becomes a deliberate edit of these two lines instead of an accident of the runner.

Relation to #2027

#2027 fixes today's diagnostic so main compiles under both majors. This PR is about determinism of the leg; the two are independent and can land in either order.

Scope flags (CI change)

  • gating: unchanged (same job, same required status)
  • cost: unchanged (one brew install either way; the versioned bottle is prebuilt)
  • flake surface: reduced (one fewer environment-dependent input)
  • trigger scope: unchanged

The test-lsan-macos leg installs the unversioned `llvm` formula, which
tracks Homebrew's current stable. That moved from 22.1.8 to 23.1.0 today,
so the leg's compiler now depends on which bottle the runner image draws:
run 33745916176 (PR #1811) poured 23.1.0 and died at compile on a new
Clang 23 diagnostic (-Wunused-but-set-global under -Werror); the run an
hour earlier poured 22.1.8 and built fine. Same code, two verdicts.

Pin the formula (and the `brew --prefix` lookup) to llvm@22 — the version
every green run of this leg has used so far. Moving to a newer major
becomes a deliberate edit of these two lines instead of an accident of
the runner image.

The diagnostic itself is fixed independently in #2027 so main compiles
under both majors; this change is about determinism of the leg, not the
warning.

Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
@DeusData DeusData added bug Something isn't working github_actions Pull requests that update GitHub Actions code priority/high Needs near-term maintainer attention; high-impact bug, regression, safety issue, or release blocker. labels Sep 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working github_actions Pull requests that update GitHub Actions code priority/high Needs near-term maintainer attention; high-impact bug, regression, safety issue, or release blocker.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant