chore(ci): stop g7/g9 running a backticked word; refresh a stale mirror-release comment #1556
No reviewers
Labels
No labels
bump
major
bump
minor
bump
patch
kind
bug
kind
chore
kind
docs
kind
epic
kind
feature
loop/paused
mirror-drift
priority
critical
priority
high
priority
low
priority
medium
size
L
size
M
size
S
size
XL
status
blocked
No milestone
No project
No assignees
3 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
frankenbit/release-toolkit!1556
Loading…
Reference in a new issue
No description provided.
Delete branch "claude/1555-backtick-echo-stale-comment"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Two small pre-existing defects, found while reviewing PR #1546.
toolkit-self-gates.yml) ended in a double-quotedechowith backticks aroundcheck. Bash ran it as a command, so each log hadcheck: command not foundand the NOTE printed(the job does)with the name missing. The backticks are now escaped (\``), the same formgo-ci.yml:190uses. The name was stale too:manifest-check.ymlandregister-check.ymlare gone. So the NOTE now names themanifestandregistergates ofpr / gates`.mirror-release.yml(set-adopter-pin, about line 289): the comment said readme-pin-check.yml posts both verdicts on a PR. Since #1540 it posts only the mirror verdict, and the digest verdict is g14 oftoolkit-self-gates.yml. The comment now names both. The Gitea twin is regenerated withrt gitea-twin --write. The file is twinned but not baked: it is not incanonicalFiles.Refs #1555
Decision tree
repo's, so single quotes would need'\''splicing. Escaping the backticks is right here: it is one character each and matchesgo-ci.yml:190.Scope check
A quote-aware scan of every
run:block in.forgejo/workflows/*.ymland.gitea/workflows/*.ymlfinds live backticks (outside single quotes, comments and heredoc bodies) only in g7 and g9 before this change, and none after.mirror-drift-check.yml:227already escapes its own.Tests
In an LF clone, at head
a4aab90:go test -count=1 ./...(native): all ok.bats tests/in dockerrt-bats:local:1..241, 241 ok.rt gitea-twin --check:PASS - 6 twin(s) match their source.Only.gitea/workflows/mirror-release.ymlchanged on--write.rt check-self-bootstrap: floating-pin pass,pinned_ref: main.echolines, run underbash -eo pipefail, print the backticked names literally and no error.mirror-release.ymlalready had non-ASCII comments before this change; this PR does not touch them.I'll read the g7 and g9 job logs on this PR's
toolkit-self-gatesrun and post them as a comment.Self-bootstrap (AGENTS.md section 2)
No re-pin: toolkit-self floats
@main(AGENTS.md section 2.1). Nothing here touches a reusable orgates.DefaultComposeScripts. Adopters see nothing.no-changelog: toolkit-self CI log text and a comment only; no adopter sees it
Verify at source (@alex)
Please check against the tree:
echolines in g7 and g9, and thatpr / gateshasmanifestandregistergates (reusable-pr-gates.yml).mirror-release.ymlcomment against g14 intoolkit-self-gates.yml.🤖 Generated with Claude Code
CI on head
a4aab90b2b35a1974ba319cf6baa610e8f9d2642: all 18 commit-status contexts aresuccess. Evidence below comes from the job logs, not the run status.toolkit-self-gatesrun 19916, g7 (last two lines):g9:
Neither step has a
command not foundline. On main's run 19639, each one did (g7.sh: line 33,g9.sh: line 5).g11 (gitea-twin):
gitea-twin: PASS - 6 twin(s) match their source.attest:
all 14 gate steps AND the shared-tree guard ran (15 of 15 reported success or failure), and every green gate wrote its own verdict and no other.prrun 19913, plan job:fragment-coverage: PASS - legitimate none: no-changelog reason="toolkit-self CI log text and a comment only; no adopter sees it". Attest saw all 6 gates. The run list's API reports this run asblocked, although its plan job is green and the split jobs were skipped in combined mode. Everypr / ...context postedsuccess.Head for review:
a4aab90b2b35a1974ba319cf6baa610e8f9d2642.Verdict: APPROVE at
a4aab90b2bSummary: both fixes are correct and complete. g7 and g9 no longer run
checkas a command, and they now name gates that exist. The mirror-release comment matches what its step runs. My own scan finds no other live backtick in any workflowrun:block. Nothing is blocking.Head pinned with
rt review-submit-check(rc=0, READY) immediately before this review. One commit onb342615, which is live main.Verified at source
toolkit-self-gates.yml:522,:561). Each backtick is now escaped as\``. I ran the two new lines underbash -eo pipefail: they print(themanifestgate ofpr / gatesdoes)and(theregistergate ofpr / gatesdoes)` literally, rc 0.scripts/pr-gates.shgate_manifestrunsrt manifest-check --config ...on the real tree, andgate_registerruns thert register-checkfile scan. Toolkit-self'spr.ymlhas both gates on. "Does NOT exercise --git-log" still holds for g9 and for the register gate (#1548).rt readme-pin-checkand thenrt tag-action-digest-check, which are exactly the two verdicts the comment now names. g14 oftoolkit-self-gates.ymlis the PR-time digest check since #1540. The.giteatwin hunk is identical to the.forgejoone, and g11 (gitea-twin --check) passed on this head.Refs #1555has no close keyword.The scope claim, re-measured independently
I wrote my own quote-aware scanner. It tracks single and double quotes, skips comments, and skips quoted heredoc bodies but still checks unquoted ones. I ran it over every
run: |block in.forgejo/workflows/*.ymland.gitea/workflows/*.yml:b342615): exactly 2 hits,toolkit-self-gates.yml:522and:561, the g7 and g9 lines.So the scanner tells the defect apart from its fix, and the PR's "only g7 and g9" holds.
CI, read in job logs (Axis C)
18 statuses, all success.
toolkit-self-gates(run 19916, job 0, commita4aab90b2b):command not foundappears nowhere in the job log. On main's run 19639 it appeared once in g7 and once in g9.repo's real manifest (themanifestgate ofpr / gatesdoes) nor the adopter FETCH arm.andrepo's surface (theregistergate ofpr / gatesdoes) and does NOT exercise --git-log.15 of 15.Next: Alex approves and merges, then #1555 is ticked and closed by hand.
Landing identity record
a4aab90b2b35a1974ba319cf6baa610e8f9d2642a4aab90b2b35a1974ba319cf6baa610e8f9d2642This is a post-merge identity record. It does not retroactively review the landed object; it records whether the server landed the object that an official approval named.