From 764eece93f7ece6601aad087e54fae76b5e0d21c Mon Sep 17 00:00:00 2001 From: Luke Curley Date: Thu, 15 Oct 2026 22:23:52 -0700 Subject: [PATCH 1/2] quest: claim m0/ci/platform-queue Co-Authored-By: Claude Opus 5.5 From c8337a5c1e5788f199ede080e7d43293b86adb30 Mon Sep 17 00:00:00 2001 From: Luke Curley Date: Thu, 15 Oct 2026 22:33:35 -0700 Subject: [PATCH 2/2] quest: finish platform-queue; split the release ruleset wait The merge queue platform workflow (#5488) is verified on main: every merge group runs at most one macOS and one Windows job, unrelated diffs skip both, and main PRs report all three contexts as skipped. The main ruleset change is a maintainer action listed in the PR. Release still runs the old path-filtered workflow, so its ruleset change waits on a cut; track that as a condition quest. Co-Authored-By: Claude Opus 5.5 --- quest/m0/ci/README.md | 2 +- quest/m0/ci/mbx-r2.md | 4 ---- quest/m0/ci/platform-queue.md | 38 --------------------------------- quest/m0/ci/platform-release.md | 16 ++++++++++++++ 4 files changed, 17 insertions(+), 43 deletions(-) delete mode 100644 quest/m0/ci/platform-queue.md create mode 100644 quest/m0/ci/platform-release.md diff --git a/quest/m0/ci/README.md b/quest/m0/ci/README.md index 1b311c5a471..fe8841adb23 100644 --- a/quest/m0/ci/README.md +++ b/quest/m0/ci/README.md @@ -66,7 +66,7 @@ The historical samples locate candidates; they are not controlled benchmarks. - [Share local check capacity](/quest/m0/ci/local-gate.md) - gate expensive phases and bound internal fanout - [Reduce test cost](/quest/m0/ci/test-cost.md) - measure and retire low-value expensive work - [Reduce setup cost](/quest/m0/ci/setup-cost.md) - select cleanup and setup from actual workload needs -- [Require platform gates](/quest/m0/ci/platform-queue.md) - activate the consolidated platform checks in the main and release rulesets after the workflow lands +- [Platform gates on release](/quest/m0/ci/platform-release.md) - condition: a cut carries the queue-era platform workflow to `release`; then require its checks there - [mbx on R2](/quest/m0/ci/mbx-r2.md) - Rust builds on every OS read an R2 cache that only `main` writes, escaping the 10 GB Actions cache - [Nix cache](/quest/m0/ci/nix-cache.md) - `nix.moq.dev` on R2 replaces Cachix for CI and releases - [Nightly after FFI reuse](/quest/m0/ci/nightly-ffi-reuse.md) - condition: the first scheduled Nightly and `moq-ffi-v*` tag after #5549 and #5527; measure them and verify the shared build diff --git a/quest/m0/ci/mbx-r2.md b/quest/m0/ci/mbx-r2.md index 9badd2224ea..64e68ae83c8 100644 --- a/quest/m0/ci/mbx-r2.md +++ b/quest/m0/ci/mbx-r2.md @@ -28,7 +28,3 @@ budget no longer decides which jobs get a cache. Only workflows running on Swatinem caches (Swift) rather than run both. - Measure restore time against the 150-210s Actions restore of the ~6 GB store; R2 transfers only the objects a build misses, so it may be faster. - -## Related - -- [Platform in the merge queue](/quest/m0/ci/platform-queue.md) - the macOS and Windows jobs this gives a cache diff --git a/quest/m0/ci/platform-queue.md b/quest/m0/ci/platform-queue.md deleted file mode 100644 index 1a1444bda39..00000000000 --- a/quest/m0/ci/platform-queue.md +++ /dev/null @@ -1,38 +0,0 @@ -# [XS] Require the merge queue platform gates - -## Goal - -Platform failures block main merges and release PRs after the workflow changes -land. A maintainer activates the checks; no GitHub ruleset changes are made by -the implementation PR. - -## Plan - -- Main ruleset 2420853 already requires `Check` and `Test`. Keep both and add - `Platform scope`, `macOS`, and `Windows`, from the GitHub Actions integration - (15368). The workflow reports skipped contexts on main PRs, then executes - the combined change in the merge queue. Add them right after the workflow - lands, before enqueuing anything else; an older open PR reports them after - its next push or edit. -- Release ruleset 24392632 has no merge queue. Keep its `Check` and `Test` - contexts and add the same three platform contexts; release-targeting PRs - execute them before merging. A release PR runs the workflows merged with - `release`, so wait until the next cut carries this workflow there; earlier, - backports would wait forever on contexts the old workflow never reports. -- Raise the main queue's check timeout from 60 to 90 minutes with the - contexts: the full macOS suite took 43 minutes in one serial job, and the - jobs allow 90. -- Require `Platform scope` too: a failed selector skips its OS dependents, - and skipped jobs alone satisfy required checks. -- Confirm a platform-affecting main merge group runs at most one macOS job - and one Windows job, while an unrelated diff skips both. Confirm a - release-targeting PR runs the selected platform checks. -- Check and Test keep running on every PR and again in the merge queue; only - the native jobs move off main PRs (maintainer, 2026-10-14). Linux-only - platform jobs remain on PRs, and release packaging remains nightly. -- Nightly and releases share the five-job macOS cap. Measure overlap with - queue runs before reserving capacity or reducing the queue build limit. - -## Related - -- [mbx on R2](/quest/m0/ci/mbx-r2.md) - gives platform jobs a Rust cache diff --git a/quest/m0/ci/platform-release.md b/quest/m0/ci/platform-release.md new file mode 100644 index 00000000000..73553d993c2 --- /dev/null +++ b/quest/m0/ci/platform-release.md @@ -0,0 +1,16 @@ +# [XS] Require the platform gates on release + +## Goal + +Condition: a cut carries #5488's `.github/workflows/platform.yml` to +`release`. Check with +`git diff origin/main origin/release -- .github/workflows/platform.yml`; +until the `Platform scope` job and the `base_ref == 'release'` gate appear on +`release`, release PRs run the old path-filtered workflow, which never reports +`Platform scope` and skips unrelated diffs, so requiring the contexts would +block backports forever. + +Once it clears, a maintainer adds `Platform scope`, `macOS`, and `Windows` +from the GitHub Actions integration (15368) to release ruleset 24392632, +keeping `Check` and `Test`. Confirm the next release-targeting PR runs the +selected platform jobs and reports all three contexts.