Repository navigation
Conversation
- ci-pr.yml: all ubuntu legs -> ubuntu-26.04 / ubuntu-26.04-arm - remove 7 pinned setup-meson (1.12.0) steps; install distro meson per OS - lockstep: telemetry fixtures + test-ci-run-telemetry, build-timeouts, early-size-gate, RELEASE_PROCESS required contexts, size-attribution policy-identity token - setup-meson action retained (android/ios/size-attribution/ci-main) Approved candidate tree: 1f74b21
Live PR CI (run 40888053298) exposed two distro-meson incompatibilities: 1. meson 1.10.1 has no 'meson test --exclude', so the sanitizer-matrix step now derives 'everything except sbom_snapshot' at run time from 'meson introspect --tests' (positional dir in 1.10.x) + grep -Fxv, keeping the other sbom-suite contract tests running. The PR-workflow assertion in test-required-gates.sh moves to a new sanitizer_excludes_snapshot_dynamic helper; ci-main.yml and tier1-sanitizers.yml keep the original --exclude assertion (pinned meson 1.12 via setup-meson). 2. sbom/snapshot.txt regenerated for the 26.04 profile: removing the setup-meson action references from ci-pr.yml drops the scanned local-action entry (12 -> 11 workflow references); the baseline now byte-matches a clean CI checkout scan (syft 1.50.0).
The Chocolatey meson package is an MSI whose PATH entry is written to the machine registry -- invisible to the job's already-snapshotted environment -- and it creates no chocolatey shim, so every later step on windows-latest failed with "The term 'meson' is not recognized" (run 40932685444). Resolve the install dir (choco registry record first, documented default locations next, bounded scan last), verify meson and ninja by absolute path with exit-code checks, and publish the dir on GITHUB_PATH -- the same mechanism the former setup-meson action used. Fails loudly if either tool is missing or broken.
This branch has not been deployed
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.
Scope (PR CI only)
.github/workflows/ci-pr.yml: all ubuntu legs →ubuntu-26.04/ubuntu-26.04-arm(runs-on, job names, matrix, comments); 7Set up Meson 1.12.0step blocks removed — every meson-invoking job now installs the distro-provided meson per OS (apt ×7, brew ×2, choco ×1)..github/workflows/lint-pr.yml:runs-on→ubuntu-26.04(job names untouched — branch-protection contexts).ci-telemetry-fixtures/run-*-jobs.json+test-ci-run-telemetry.py(test reads the live ci-pr.yml),test-ci-pr-build-timeouts.py,test-early-size-gate.sh,RELEASE_PROCESS.mdrequired-context list,collect-size-attribution.pypolicy-identity token (+ clarifying comment), 2 comment-only arm renames.setup-mesonaction (still used by android/ios/size-attribution/ci-main),ci-main.yml,release-tag.yml,tier1-sanitizers.yml, perf/fuzz/size-attribution workflows, frozen size-baseline records (verify-size-baseline.py,test-size-baseline-provenance.py).Live-run fixes (first PR CI run 40888053298)
The first live run validated the 26.04 legs (all started and passed: TSan, TSan-native, Sanitizers/macos, both lints, RC gate — runner-label risk fully retired) and exposed exactly two distro-meson incompatibilities, both fixed in
9a62e4ea:meson test --excludedoes not exist in distro meson 1.10.1 (unrecognized arguments: --excludekilled the sanitizer-matrix leg). The step now derives "everything exceptsbom_snapshot" at run time frommeson introspect --tests builddir-san(positional dir in 1.10.x) +grep -Fxv sbom_snapshot, so the other sbom-suite contract tests still run (which is why--no-suite sbomwas the wrong tool).test-required-gates.shgains asanitizer_excludes_snapshot_dynamicassertion for the PR workflow;ci-main.ymlandtier1-sanitizers.ymlkeep the original--excludeassertion untouched (they stay on pinned meson 1.12 via setup-meson).ci-pr.ymldropped the scanned local-action entries (12 → 11 workflow references);sbom/snapshot.txtregenerated with CI's pinned syft 1.50.0 and now byte-matches a clean CI checkout scan (verified by running the gate's exact pipeline; the failed run's own diagnostic showed 11).Live-run fixes (second PR CI run 40932685444 — 18/19 green)
Every ubuntu-26.04 leg, both macOS legs, and all lints/gates were green; the only failure was
Build / windows-latest / msvc:choco install mesonsucceeds (official 1.12.1 MSI) but the MSI writes its PATH entry into the machine registry, which the job's already-snapshotted environment never sees, and chocolatey creates no shim for MSI packages — somesonwas unresolvable at Configure ("The term 'meson' is not recognized", job log 40932685444). Fixed in68dcd011(.github/workflows/ci-pr.yml, Windows install step only):HKLM:\SOFTWARE\chocolatey\installed\mesonrecord first, then the MSI's documented default locations (C:\Program Files{, (x86)}\Meson{, meson}), then a bounded scan as last resort; throws if nothing is found (fail-loud).meson.exe --versionandninja --versionexecuted by absolute path (or shim) with$LASTEXITCODEchecks, becauseGITHUB_PATHonly takes effect in later steps; the verified dir is then appended toGITHUB_PATH— the same mechanism the formersetup-mesonaction used.ninjais now explicitly in the choco install list and its resolvability is asserted, someson setupcan find it in every delivery mode (MSI-bundled beside meson, or chocolatey shim on base PATH).Accepted trade-offs (documented)
meson.buildonly requires>=0.62.0; gate scripts are version-tolerant by design (check-shell-gate-walltimejoins oncommand,check-required-correctnessaccepts both name forms); the two "Verified on meson 1.12.0" comments are reworded to historical-verification phrasing.setup-meson/ninja-cap.py,NINJA/WIRELOG_NINJA_REAL) dropped from PR legs — zero consumers inci-pr.yml/meson.build; accepted.ubuntu-26.04/ubuntu-26.04-arm: confirmed present by the first live run (every 26.04 leg scheduled and started).Re-point branch-protection required-check contexts to the new job names, e.g.
Build / ubuntu-latest / gcc→Build / ubuntu-26.04 / gcc,Build / ubuntu-24.04-arm / gcc→Build / ubuntu-26.04-arm / gcc(full list already updated indocs/RELEASE_PROCESS.md). Until then, old-name required checks will block merges.Size gate note
PR size gate is
advisorymode; the baseline (428046) was calibrated on the 24.04/gcc-13.3/meson-1.12 profile — re-verify on the 26.04 profile before flipping to enforced.Validation (all green, uv venv)
test-required-gates.sh(26 assertions),test-gate-skip-exit-codes.sh,test-early-size-gate.sh,test-generate-sbom.sh,test-sbom-venv-exclusion.sh,check-sbom-wrap-pin.sh,check-sbom-snapshot-locale.sh,check-sbom-snapshot.sh(118 packages, syft 1.50.0),test-check-shell-gate-walltime(17),test-ci-run-telemetry(41 + subtests),test-size-attribution(41),test-branch-protection-contract(13),test-tsan-timeout-policy(11),test-size-baseline-provenance; all three workflow YAMLs parse. The meson-1.10.1 mechanics were additionally exercised end-to-end on a scratch project by the review roles (--excluderejected as in CI; positional introspect + exact-namemeson testselection works; other sbom-suite tests retained). Pre-existing base failures (not caused by this change, verified on clean tree):test-ci-build-cap1 fail (path canonicalization),test-required-correctness1 error (subprocess launch).