Skip to content

ci(nightly): delete unreported relay measurements - #7603

Merged
kixelated merged 8 commits into
mainfrom
quest/m1/prune-ci
Nov 2, 2026
Merged

kixelated merged 8 commits into
mainfrom
quest/m1/prune-ci

Conversation

@kixelated

@kixelated kixelated commented Nov 2, 2026 •

Copy link
Copy Markdown
Collaborator

Problem

Three Nightly relay measurement jobs consume runner time without publishing their measurements or enforcing a performance comparison. The recurring CI audit still describes the retired hosted merge queue and October 22 workflow inventory.

Approach

Delete the three jobs from nightly.yml in one workflow commit. The following are actual elapsed runner-minutes, including setup and teardown, from all 13 scheduled Nightlies on October 20 through November 1:

Deleted job Runner 13-night minutes Latest night minutes Reason
Audio grouping relay benchmark Linux ARM 200.5 13.8 Measurements stay in logs; no comparison gate, summary or published series
Relay shard sweep Linux ARM 190.2 12.1 Same visibility and regression-signal gap
Relay profiles Linux 356.4 29.6 Captures disappear with the runner; no comparison gate or published result

All 39 job executions succeeded. Total observed cost: 747.2 runner-minutes; latest night: 55.5 minutes. These are removed job costs, not a measured Nightly wall-time improvement. Keep the local diagnostic commands and deterministic profile-tool tests; update their documentation. Remove the now-unused matrix runner override and perf sysctl step.

Refresh quest/m2/audit-ci.md in place: all 56 workflows in the November 1 sample plus the subsequently added Queue workflow, and all 180 jobs in that scheduled Nightly, monthly billing, current runner-minute samples, failure classifications, visibility gaps and ownership. The November 1 Nightly executed 152 jobs: 132 succeeded, 19 failed, one was cancelled; 28 were skipped. Keep its unique fuzzing, model, feature, platform, ABI and packaging signal. Successful runs are coverage evidence, not proof of a caught regression.

Complete and delete the one-off m1 quest and repair its references. The recurring audit retains its release prerequisite and schedule; no successor is created. Merge current main, preserve the Rust publisher fix and JS joining FETCH ownership references, and distinguish the historical gate sample from the current merge queue. Retain the earlier capture/play decision, Windows reconnect recheck and operational lessons for the recurring audit.

Recorded choices and overlap

Apply the maintainer's November 1 default-to-deleting decision. Do not remove release targets or published artifacts. Keep CodSpeed's distinct instruction-count signal under the recorded October 28 decision, rather than treating it as duplicate timing. Newly added weekly mutation testing has no scheduled cost sample yet and tests a distinct security/grant/resume/expiry boundary.

Concrete ownership checked before edits:

Impact

  • Public API: none. Local diagnostic commands remain available.
  • Wire: none.
  • CI: three scheduled measurement jobs and their unused perf setup are deleted. Release targets and artifacts are unchanged.

Alternatives

Publishing more nightly series would retain recurring work without an identified consumer. Moving these already-nightly jobs off the merge path saves nothing. Retain the on-demand diagnostics for investigations and the existing visible/paired benchmark lanes.

Validation

  • On committed head 7682d12c1a2592190d521d551b43e486d1d84b00, quest gate nix develop --ignore-environment --keep HOME --keep USER --keep PATH --command just ci origin/main: passed, 37 seconds. All selected modules passed, including benchmark checks, workflow/security lint, alert coverage, test inventory, GitHub tooling tests, quest, Markdown, shell, TOML, Nix, justfile and large-file checks.
  • This host has /dev/kvm. All 30 dispatcher fixture tests and their selection benchmark passed through the standard gate. The earlier missing-KVM handback does not reproduce here. The host-dependent fixture fix remains with moq-dev/moq#7598; no duplicate fix or CI bypass was added.
  • quest check --base origin/main: passed, 604 documents. git diff --check origin/main...HEAD: passed. All 57 current workflow files have audit rows; November 1's 180-job cost/status inventory remains historical evidence. Re-fetched all 39 removed-job executions across the 13 nights: 44,829 seconds, or 747.15 runner-minutes before rounding.
  • Diff-selected gate only. No full just gate, Nightly dispatch, release build or interop run was needed or claimed. No public API or wire changes.

Review

Claude Code, claude-opus-5-5, medium effort, local quest review, round 2 reviewed head 7682d12c1a2592190d521d551b43e486d1d84b00 against origin/main (7168b8f9720df554bf53f39cd5729afefd4bcaa8): no findings.

The preceding round's findings are resolved:

  • Fixed: preserve the earlier capture/play build decision, previously unowned Windows reconnect recheck, and still-applicable operational lessons.
  • Refuted and accepted: retaining a smaller scheduled profile smoke revisits the recorded November 1 deletion decision. On-demand diagnostics and deterministic validation remain; their planned local consumers require no scheduled captures.
  • Fixed: explain that the 747.2-minute total is rounded from 747.15 minutes before rounding the individual rows; all 39 job executions were rechecked against REST timestamps.
  • Fixed: replace anonymous persistent “this PR” references with links to this PR.

The original implementation review also completed two clean/fixed rounds on e07963121b47854f66e5d5979c8ee58e98b06e26; the review above covers this repaired head.

Follow-ups

No successor or follow-up quest created or planned. Existing owners retain the failures/reporting work above. Release target/artifact removal remains a maintainer decision. No new decisions. The parent retains queue/merge ownership; this implementation does not merge or monitor.

(Written by GPT-6.1 Sol)

kixelated and others added 5 commits November 1, 2026 18:37
Quest-Claim: 097afce7f7c9a6e5
Co-Authored-By: GPT-6.1 Sol <noreply@openai.com>
Co-Authored-By: GPT-6.1 Sol <noreply@openai.com>
Co-Authored-By: GPT-6.1 Sol <noreply@openai.com>
Co-Authored-By: GPT-6.1 Sol <noreply@openai.com>
@kixelated kixelated changed the title Delete the CI jobs that don't earn their cost ci(nightly): delete unreported relay measurements Nov 2, 2026
@kixelated
kixelated marked this pull request as ready for review November 2, 2026 02:52

@kixelated kixelated left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Automated review by review (OpenAI)

Reviewed commit: e079631

No actionable bugs found. Removing the three unreported measurement jobs is a proportionate simplification: on-demand diagnostics and deterministic profile-tool tests remain, while paired benchmark reporting, release artifacts, and the other Nightly coverage are unchanged. The remaining matrix needs neither the runner override nor perf sysctl setup.

Verification: static review of the workflow, related recipes and documentation. GitHub's November 1 job records confirm the 180-job status breakdown and the removed jobs' approximately 55.5 runner-minutes; this is not a measured wall-time improvement. I did not run tests/builds or dispatch workflows, and did not independently reproduce the full 13-night or billing audit.

(Written by OpenAI)

@pullfrog pullfrog Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ No new issues found.

Reviewed changes

  • Delete three Nightly relay measurement jobs — bench-audio, bench-shard, and bench-profile matrix entries removed from .github/workflows/nightly.yml; their recipes stay as documented local diagnostics.
  • Remove now-unused job plumbing — hardcodes runs-on: ubuntu-24.04-arm (the only runner override was the deleted Relay profiles job) and drops the perf matrix key plus the Allow perf kernel sampling sysctl step.
  • Update bench/README.md — states the audio grouping bench, shard sweep, and profile capture are on-demand, not nightly series.
  • Finish the one-off m1 quest — deletes quest/m1/prune-ci.md, removes its link from quest/m1/README.md, and repoints quest/m1/prune-tests.md to the recurring CI audit.
  • Refresh quest/m2/audit-ci.md — rewrites baselines and per-workflow/per-job tables (56 workflows, 180 Nightly jobs) and trims the relay-benches bullet from quest/m2/bench-sources.md.

I verified the cleanup independently: no matrix.runner/matrix.perf references remain, no test-inventory target is orphaned (bench/run.sh has no test-runner pattern and stays reached via just gh criterion, while bench/relay.test.py and bench/profile.test.py stay reached via just gh check/gh test), no dangling prune-ci references remain, and every quest link in the changed markdown resolves. The workflow-policy checks pass on the change (bun test sh/gh/queue.test.ts, bash sh/gh/alert.sh check-coverage, bun test sh/gh/setup.test.ts). The audit counts are internally consistent (56 workflow rows, 180 job rows, 28 skipped leaving 152 executed, 19 failures plus one cancelled), and the local perf_event_paranoid requirement the removed step satisfied is still documented in bench/README.md:232.

Pullfrog  | View workflow run | Using deepseek-v4.1-flash (free via Pullfrog for OSS) | 𝕏

@coderabbitai

coderabbitai Bot commented Nov 2, 2026 •

Copy link
Copy Markdown
Contributor

Review in Change Stack →

No actionable comments were generated in the recent review.

Recent review info
Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 0b5e70d9-2549-4cf2-b821-11f7367262e1
Commits

Reviewing files that changed from the base of the PR and between 21d6da9 and e079631.

Files selected for processing: 7
  • .github/workflows/nightly.yml
  • bench/README.md
  • quest/m1/README.md
  • quest/m1/prune-ci.md
  • quest/m1/prune-tests.md
  • quest/m2/audit-ci.md
  • quest/m2/bench-sources.md
Files with no reviewable changes: 2
  • quest/m1/prune-ci.md
  • quest/m1/README.md

Included review availability: This review used your included allowance. Your plan provides up to 4 included reviews per hour; 1 remain after this review.

Walkthrough

The November 1 CI audit records workflow results, visibility, and runner-minute costs. The Nightly workflow removes the audio grouping relay benchmark, relay profiles, relay shard sweep, and conditional perf-sampling step. Benchmark documentation describes local runs and on-demand profiling. Quest documentation removes the CI-pruning quest and updates related audit and benchmark-source references.

Merge Risk: Minimal · up to e0796

The PR safely removes the unneeded Nightly measurement jobs and updates the related workflow and documentation.

Pre-merge checks: Passed 4
Check name Status Explanation
Title check Passed The title clearly and concisely describes the main change: removing Nightly relay measurements that do not report results.
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
Description check Passed The description is closely related to the changeset. It explains that three Nightly relay measurement jobs (audio grouping relay benchmark, relay shard sweep, relay profiles) are deleted from nightly.…
Full details: Description check

Explanation

The description is closely related to the changeset. It explains that three Nightly relay measurement jobs (audio grouping relay benchmark, relay shard sweep, relay profiles) are deleted from nightly.yml, with runner-minute costs and the reasons for removal. It also covers the refresh of quest/m2/audit-ci.md, the removal of the one-off m1 quest and its references, the removal of the unused matrix runner override and perf sysctl step, and the validation performed. The author supplies concrete, specific details that match the raw summary of file changes.

Finishing Touches
Simplify code
  • Commit to this branch
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

Share

@kixelated
kixelated enabled auto-merge (squash) November 2, 2026 04:37
@moq-bot

moq-bot Bot commented Nov 2, 2026

Copy link
Copy Markdown
Contributor

codex / Codex land fixer note:

Failure log line 1:

Conflicts with the base: quest/m2/audit-ci.md

The PR replaces the audit section that base updated, causing this conflict. A local mechanical merge of base preserves the refreshed audit and carries forward the Rust publisher fix and JS joining FETCH ownership references. No protected paths were edited during the repair.

Validation passed: quest check (611 documents), sh/markdown.sh check, PYTHONPATH=/tmp/quest-land-7603-python just gh check, python3 bench/compare.test.py (18 tests), and cargo check --locked --package moq-relay --package moq-bench --features moq-relay/io-uring (via the dispatcher launcher).

Full tooling validation could not pass: PYTHONPATH=/tmp/quest-land-7603-python just gh test stopped in sh/dispatch-query.test.py with FAILED (failures=20). Reproducing a failing fixture reports:

ci: flake's NixOS VM tests need KVM, but /dev/kvm is missing; run them on a KVM host, as CI does

Please validate on a KVM-capable runner. The local conflict repair is committed as 606425c015b2273042d368902cec7ef39044930a; this handback does not claim the full gate passed.

(written by codex / Codex)

@moq-bot
moq-bot Bot disabled auto-merge November 2, 2026 05:48
@moq-bot moq-bot Bot removed the quest:merge label Nov 2, 2026
@moq-bot

moq-bot Bot commented Nov 2, 2026

Copy link
Copy Markdown
Contributor

codex / Codex land fixer: PYTHONPATH=/tmp/quest-land-7603-python just gh test failed in sh/dispatch-query.test.py: "FAILED (failures=20)"; fixture reproduction reports "ci: flake's NixOS VM tests need KVM, but /dev/kvm is miss. Recommendation: Validate on a KVM-capable runner; the local mechanical merge commit 606425c015b2273042d368902cec7ef39044930a preserves the refreshed audit and base's Rust/JS finite-track ownership updates.

Conflicts with the base: quest/m2/audit-ci.md

(written by codex / Codex)

kixelated and others added 3 commits November 2, 2026 07:05
Co-Authored-By: GPT-6.1 Sol <noreply@openai.com>
Co-Authored-By: GPT-6.1 Sol <noreply@openai.com>
Co-Authored-By: GPT-6.1 Sol <noreply@openai.com>
@kixelated
kixelated added this pull request to the merge queue Nov 2, 2026

@pullfrog pullfrog Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ No new issues found.

Reviewed changes

  • Merged main and repaired the stale join reference — the deleted /quest/m2/ietf-join-after-finish.md link now points at #7306 (merged Rust publisher fix) and /quest/m2/ietf-js-joining-fetch.md (JS half), in both the verdict bullet and the earlier-failure note.
  • Added the Queue workflow — queue.yml row appears in the workflow table and the merge-queue baseline now says #7612 replaced quest land serve with GitHub's single-PR merge queue on the self-hosted runner (main PRs skip Check and Queue; merge group runs just ci), matching CONTRIBUTING.md and check.yml.
  • Preserved open context — capture/play build decision, the Windows reconnect::a_protocol_violation_ends_reconnect recheck, and operational lessons (just gh pages-clean) stay in the recurring audit.
  • Clarified totals and ownership — the 747.2-minute total is stated as summed before per-row rounding, and the applied deletion links to this PR.

Verified the touched claims: 57 workflow files match 57 audit rows (56 at the sample + Queue afterward), #7306 and #7612 are merged, the reconnect test still exists, just gh pages-clean is in nightly.yml, and every local link in audit-ci.md resolves with no dangling ietf-join-after-finish references.

Pullfrog  | View workflow run | Using deepseek-v4.1-flash (free via Pullfrog for OSS) | 𝕏

Merged via the queue into main with commit 35b0bc1 Nov 2, 2026
10 checks passed
@kixelated
kixelated deleted the quest/m1/prune-ci branch November 2, 2026 15:48
kixelated added a commit that referenced this pull request Nov 2, 2026
Main finished quest/m1/prune-ci.md (#7603) and repointed
prune-tests.md's CI link; this branch finishes prune-tests.md, so both
quests stay deleted.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
kixelated added a commit that referenced this pull request Nov 3, 2026
Keep main's `benchmark_datagram_delivery` run in the rust-test group as its
own nextest run, and drop the relay load benches from the quest now that
#7603 removed them from Nightly.

Main's additions to the rust-test group must print measured CSV too:

- `benchmark_datagram_delivery` printed its counts as dimensions, which would
  churn every series name; they become `*_packets` columns, and `received`
  (offered minus lost) goes.
- moq-congestion's new GCC `benchmark_per_packet` printed key=value, and its
  name matched BBR's in the same package, so the report would refuse both.
  It now prints CSV, and rust-test series keep the test's module path.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant