From ca8f245918fbe733ff9fb7fdfdf690ad3d8eaceb Mon Sep 17 00:00:00 2001 From: Nils Lehnen <30603423+iderex@users.noreply.github.com> Date: Sun, 30 Aug 2026 19:13:24 +0200 Subject: [PATCH] Re-read the two trigger-walk pastes that had stopped reproducing (#62) The section docs/quality-parity.md carries for issue #62 discloses that its readings were taken at an earlier commit while the commands beside them resolve origin/main, so every paste under them is a claim a reader re-runs rather than a fact the file holds. I re-ran all of them at f59943dff615779fcb0bd7a35bad8514375faecf before writing anything, and two no longer returned what stood under them. The grep for workflow files carrying no push trigger returns four where the document pasted three, and the sentence above it said three. The fourth is .github/workflows/smoke.yml, which this board gained after that reading. The loop over push triggers returns eleven lines where the document pasted ten, and the sentence above it said every push trigger in these files names the default branch except one. .github/workflows/release.yml triggers on a tag and names no branch at all, so that sentence was wrong rather than merely short. Both repairs put back what the command returns and then say which member is which kind. Each of the two greps gains a member every time this board adds a workflow that runs on neither a pull request nor a branch push, so the length of either list is not the answer, and the thing to read them for is a file that does run on a pull request appearing in one. Without that the next release-shaped workflow silently makes both readings wrong again. What this prevents is a required set assembled from a document whose evidence no longer reproduces, which is the failure the same section was repaired for once already and the reason its readings carry the commit they were taken at. Signed-off-by: Nils Lehnen <30603423+iderex@users.noreply.github.com> --- docs/quality-parity.md | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/docs/quality-parity.md b/docs/quality-parity.md index 0b2efc5..d2cc7eb 100644 --- a/docs/quality-parity.md +++ b/docs/quality-parity.md @@ -254,15 +254,25 @@ any of them goes into a required set. Issue #62 holds this walk. ### The command above reads a commit no pull request produced `git rev-parse origin/main` resolves a commit on the default branch, which is -reached by a push. Three workflows in this tree carry no push trigger: +reached by a push. Four workflows in this tree carry no push trigger: ``` git grep -L 'push:' origin/main -- .github/workflows/ origin/main:.github/workflows/dco.yml origin/main:.github/workflows/dependency-review.yml origin/main:.github/workflows/pull-request.yml +origin/main:.github/workflows/smoke.yml ``` +Three of those four run on a pull request and the fourth runs on neither kind of +commit, and only the first three are what this section is about. +`.github/workflows/smoke.yml` triggers on a published release, on a schedule and +on a manual dispatch, so it reports on no pull request and on no push, and it is +in this list for a reason the list is not about. That is the thing to read the +grep for: it gains a member every time this board adds a workflow that runs on +neither, and what would matter here is a file that does run on a pull request +appearing in it. + So the two kinds of commit report different sets, and the difference runs in both directions. Between the head of the default branch and the head of a pull request that landed on it, on 2026-08-16: @@ -312,8 +322,8 @@ suite 86798670354, success suite 86798547856, success ``` -The cause is one trigger. Every push trigger in these files names the default -branch except one: +The cause is one trigger. Every push trigger in these files that names a branch +names the default branch except one, and one names no branch at all: ``` for f in $(git ls-tree --name-only origin/main .github/workflows/); do @@ -327,11 +337,17 @@ done .github/workflows/invariants.yml branches: [main] .github/workflows/prose.yml branches: [main] .github/workflows/records.yml branches: [main] +.github/workflows/release.yml tags: .github/workflows/scorecard.yml branches: [main] .github/workflows/unicode-guard.yml branches: ["**"] .github/workflows/zizmor.yml branches: [ main ] ``` +The `tags:` line is the second kind and it doubles nothing. A tag push is not a +branch push, so `.github/workflows/release.yml` starts on neither a pull request +nor the branch one is opened from, and the file says that at its own trigger. +What produces the repeated name is the entry above carrying every branch. + A branch pushed for a pull request therefore starts that one workflow twice, and both runs report under its job name. The file gives the reason its trigger is wide, and the reason is about which branches the guard covers rather than