Repository navigation
Stop main benchmarks once three of four candidates agree - #1130
Merged
Merged
Conversation
…blication' into perf/direct-language-json-storage
…e' into docs/o27c-hinted-ancestor-qualification
…ication' into fix/main-benchmark-fourth-agreement
This was referenced Nov 7, 2026
Base automatically changed from
docs/o27c-hinted-ancestor-qualification
to
main
November 7, 2026 09:22
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.
Stop main-branch benchmark sampling as soon as a fourth candidate supplies the required compatible quorum. Main previously ran a fifth candidate unconditionally; the recorded extra macOS job took 22m29s even though the final aggregate selected candidates 0/2/3.
AG;DR
Concrete failure and behavior
select-fourthjob to.github/workflows/benchmarks.yml, downloading completed candidate artifacts and calling the existing--decision-stage=fourthlogic. Do not add another decision job when the first three already agree.success()suppression. The final aggregate explicitly waits for the new selector and all candidate jobs.Regression checks and documentation
bazel test //tools:benchmark_shards_test --test_output=errorspasses with declared workflow runfiles; it executed the target after building its existing native helper. No new runfile/dependency is needed.Validation, scope and dependencies
Normal signed commit
bf2eddd53001ce189cf326207a539916b9991a13and normal push succeeded. Configured policy hooks, actionlint, Trunk formatting/checks, canonical Markdown formatting and diff checks pass, with all four published file hashes unchanged. No local clang-tidy executable ran. The first direct full test attempt used the system Python 3.9 and failed on existing unsupportedzip(strict=True)calls; that environment result is retained separately, not fixed by weakening production code. The supported interpreter and Bazel runs above pass.This separate five-file successor depends on #1129 (
62030d1d3608817db2f0b7c66a961bc7167b0435), following #1127/#1128. Preserve each ready parent and merge separately; require this PR's own current-context CI and normal post-retarget main validation. The new main-only job is included in that workflow's final aggregate dependencies; the PR workflow and itsdone.needsjob set are unchanged. First post-merge main automation still needs inspection; private/local tests do not substitute for required checks or an actual deployed run.The ancestry was synchronized and pushed through normal signed merges after CI found three narrow
evaluate.cclint issues in #1127 and the required Brotli byte-pointer cast annotation in #1128. That synchronization preserved this PR's own implementation/evidence payload. The corrected current head requires its own full CI; successful ancestor or previous-head checks are not substituted. Healthy reachable collectors were not cancelled, and local clang-tidy was not run.The first corrected-ancestry coverage run exposed an older
benchmark_history_testthat explicitly required the previous unconditional fifth run. This is a stale workflow expectation, not a C++ failure or a coverage-percentage failure. The test now requires a successfulselect-fourthdecision and the platform's explicit*_fifth == 'true'output, and forbids the old initial-selector-only gating. Both relevant Python suites (benchmark_history_testandbenchmark_shards_test) passed all 62 tests from an isolated exact-source Linux validation directory; workflow/test SHA receipts and the original failure log are retained. The earlier 31-test run covered only the shard suite; this correction adds the existing history-suite contract to validation. Normal publication hooks and fresh own-head CI remain required.The stale-test correction is published as normal signed commit
3a464cdce39197a6cb1a4819f7809948abc46198. Scoped Trunk formatting and all configured normal commit/push hooks passed; formatter output preserved the exact test/workflow SHA values validated by the 62-test Linux run. No local clang-tidy ran. Healthy ancestor heads and CI collectors were preserved. Fresh CI on this final head remains required.Current main synchronization: after #1129 merged as
77aa9ef9bc9475adcbdd37cf3004143a96f03060, the normal signed merge preserves the entire previous child tree byte-for-byte. The actual included parent62030d1dis an ancestor; its full tree, qualified parent73de2769, and the main squash tree are identical. Normal merge/push hooks passed; fresh own main-context CI is required and earlier stacked checks are not substituted.Additional live evidence: unchanged main run 42349583897 queued a fifth Mac candidate even though the canonical fourth-stage selector, run against all seven completed candidate artifacts, reports
linux_fifth=falseandmacos_fifth=false. The receipt and original artifacts were retained locally; no CI was canceled and this observation does not replace this PR's checks.