Repository navigation
docs(d8): run homebrew-taps' updater one job per cask (S32) - #73
Conversation
Rules 8 and 12 now require one cask per job on per-cask timeouts, with job 4 one cask at a time; the two-probe production test is recorded as verified. Signed-off-by: edbfi <326875205+edbfi@users.noreply.github.com>
There was a problem hiding this comment.
ℹ️ No critical issues — one nitpick on unchanged wording.
Reviewed changes — the single commit 2f83f77, covering design/d8.md and STATE.md. doc_guard passes and Last updated (1791838912) matches 2026-10-12T21:01:52Z.
design/d8.mdrule 8 requires jobs 1–4 to run one cask per job on that cask's own timeout, so a failing cask stops no other.design/d8.mdrule 12 requires job 4 to run one cask at a time.design/d8.mdVerification gains a[V, 2026-10-12]bullet for the two-probe production test with its three run ids.STATE.mdgains an S32 row (done) and S32 in the homebrew-taps row with a dated[V]tag.Last updatedis bumped.
I can't check the homebrew-taps PRs (#49–#52), the cited runs, or the UPDATE_MINUTES mechanism from this checkout. The rest of the diff is internally consistent: the step row and repo row agree, and no stale "six casks" or timeout wording remains in STATE.md, DECISIONS.md or design/*.md.
Nitpicks
- Rule 9 still says "end the run". It reads "MUST end the run as a logged no-update with jobs 2-4 skipped" (
design/d8.md:21). With one cask per job, a qBittorrent no-update ends only that cask's jobs, and the other casks continue. Rule 8 now says a failing cask stops no other, so "the run" is ambiguous. Wording such as "end that cask's jobs as a logged no-update" would fit. The line is unchanged, so I can't anchor an inline comment to it. - The new Verification bullet mentions a "plan" the Contract never defines. It says a run without updates "skips everything after the plan" (
design/d8.md:50). The Contract names only jobs 1–4. The PR body'spublishedjob, which lists the succeededpublish (TOKEN)jobs through the jobs API, is not in the Contract or Verification either. Its job-name dependency is recorded only in the PR body and in homebrew-taps'WorkflowTests. Consider one short Contract clause or Verification phrase, so a reader ofdesign/d8.mdcan tell what "the plan" is. - "A failing cask stops no other" is verified only for a failing
publish. Rule 8 is general, but the evidence (run C) covers only a publish failure. If a cask'spushfails, the design doesn't say whether later casks' pushes still run. Narrowing the Verification wording or the rule to what was tested would remove the gap.
claude-sonnet-5-5 | 𝕏
Signed-off-by: edbfi <326875205+edbfi@users.noreply.github.com>
There was a problem hiding this comment.
✅ No new issues found.
Reviewed changes — commit 0158d55, the follow-up to my earlier review. doc_guard passes, and Last updated (1791838912) still matches 2026-10-12T21:01:52Z.
- Scoped rule 9's no-update to its cask.
design/d8.md:21now says a qBittorrent no-update ends "that cask's update" with "its jobs 2-4" skipped, so it no longer ends the whole run. This fixes the "end the run" ambiguity I raised. - Replaced the undefined "plan" in the Verification bullet.
design/d8.md:50now says a run without updates "skips jobs 2-4", which uses the jobs the Contract defines.
My third earlier nit still stands. The "a failing cask stops no other" evidence covers only a failing publish, not a failing push. It is optional.
claude-sonnet-5-5 | 𝕏
Signed-off-by: edbfi <326875205+edbfi@users.noreply.github.com>

What changed
S32: homebrew-taps' cask updater runs one job per cask. Before this,
publishandpushwere single jobs looping over every cask, and their timeouts had to cover all the casks together, so six casks was the limit (#47 had to raise both timeouts for a seventh). Now every cask job runs on that cask's own timeout (UPDATE_MINUTESin itsconfig.env, default 20), so adding a cask never touches the workflow.design/d8.md:STATE.md: an S32 row, the homebrew-taps repo row, and the freshness line.The homebrew-taps side:
Evidence
publishjobs ran in parallel (20:48:31–40), and thepushjobs ran one after the other (20:49:40–54, then 20:49:56–50:03).075ab3c → cb19908 → 0b4bb0e, both deploy-key fast-forwards and both rule suitesbypass.planran.UpdaterProbeB-0.0.3.dmgplaced on the probe's release first:publish (updater-probe-b)failed with "differs from upstream".updater-probepublished, verified and pushed (0b4bb0e → c14cf2a,bypass).2e23e76, there are no probe releases or tags in homebrew-taps or edbfi-ci-playground, and a final six-cask dispatch passed.prek run --all-files --hook-stage manual: every hook passes,doc_guardincluded.Deviations
publishedfinds the successful casks: it lists the succeededpublish (TOKEN)jobs from the jobs API instead of reading a marker artifact. d8.md's Verification requirespublishto have nouses:lines, so it can't upload one. homebrew-taps'WorkflowTestspins the job name.Owner actions
None.