diff --git a/quest/m0/ci/README.md b/quest/m0/ci/README.md index 72e2fcaf392..1e011e5060e 100644 --- a/quest/m0/ci/README.md +++ b/quest/m0/ci/README.md @@ -93,6 +93,19 @@ Decided 2026-10-23 (maintainer), to speed up the serial queue: structural changes first (concurrent entries, parallel modules, one test build), then a measured nightly-compiler experiment. +Measured 2026-11-04, after the landing quest closed: the queue keeps stable +rustc, without Cranelift (decided 2026-10-27) or the parallel frontend +([moq-dev/moq#7900](https://github.com/moq-dev/moq/pull/7900)). On the +queue's test build after a moq-net edit (jobs 8, 12 CPUs, 5 interleaved +runs each), the pinned nightly's `--jobs-frontend=8` took 15% longer and +21% more CPU than the same nightly without it, against a 6% A/A spread, and +did not shorten the critical `moq-net` test unit. moq-dev/rust2's nightly +benchmark agrees across 8 runs: clean builds 1-7% slower, a hub edit 2-6% +faster, for 8-15% more CPU. The ceiling is small anyway: the queue's test +build is 37% of its job time, and cargo runs fewer than 8 units for only +27% of it. The pinned nightly also fails the gate today, since it deprecates +`fetch_update` and the gate denies warnings. + Decided 2026-10-15: local CPU admission, test-cost reductions, and setup reductions are all m0. `quest gate` owns generic command admission; repositories adopt it through their entrypoints. Agents remain concurrent. Selective test @@ -164,7 +177,6 @@ The historical samples locate candidates; they are not controlled benchmarks. - [Read-only pull-request CI](/quest/m0/ci/read-only-secrets.md) - write secrets and publisher identities reach only protected branches and tags, never a pushed branch - [A cache error is a miss](/quest/m0/ci/nix-cache-5xx.md) - a transient `nix.moq.dev` 5xx no longer fails `just ci` - [Gate each diff in under five minutes](/quest/m0/ci/five-minutes.md) - `just check`, test phases included, finishes within a worker's 5-minute prompt cache, admission wait included -- [Measure the parallel frontend](/quest/m0/ci/nightly-levers.md) - a pinned nightly's parallel frontend, adopted only if the numbers beat its risks; Cranelift is ruled out - [Verify the R2 Rust cache](/quest/m0/ci/mbx-r2-verify.md) - confirm the hosted Nightly jobs reuse the previous Nightly, then measure restore time and expiry - [Verify the Nix cache](/quest/m0/ci/nix-cache-verify.md) - confirm releases use `nix.moq.dev`, check its bucket sizes, and retire Cachix - [Unify dependency features](/quest/m0/ci/hakari.md) - align the FFI builds' features and record the hosted platform jobs' hits once the workspace-hack lands diff --git a/quest/m0/ci/nightly-levers.md b/quest/m0/ci/nightly-levers.md deleted file mode 100644 index fc5e6aca51e..00000000000 --- a/quest/m0/ci/nightly-levers.md +++ /dev/null @@ -1,30 +0,0 @@ -# [S] Measure the parallel frontend in the queue - -## Goal - -A report says whether building the queue's tests on a pinned nightly with the -parallel frontend saves enough wall time to justify its risks, measured after -the structural queue changes land. If it does, the queue adopts it, and -Nightly keeps a stable build of the same tests as the backstop. - -## Plan - -Decided with the maintainer on 2026-10-23: a measured experiment, last. -Estimated 2026-10-23 at 25 to 35% of the test build's compile, about 10% of -total queue time, with Cranelift included. Risks to measure, not assume: - -- The parallel frontend's remaining incremental races and differing cycle - errors. -- The gate no longer compiles with the toolchain that ships, and nightly mbx - keys split from Nightly's stable R2 writers. - -Decided 2026-10-27 (maintainer): moq keeps LLVM, accepting moq-dev/rust2's -Cranelift verdict ([build benchmark](https://github.com/moq-dev/rust2/blob/main/bench/build/README.md), -"Cranelift for moq's CI", 2026-10-25). 42 of moq's 5418 tests fail under -Cranelift (panics it cannot unwind, and an x86 SIMD intrinsic it lacks), and -the CPU saving is only 4% with a warm cache and 12% cold. This quest is -narrowed to the parallel frontend. Use the same benchmark's numbers, and its -explanation of nightly incremental rebuilds costing near-full builds, before -running the queue experiment. - -Public API: none. Wire: none.