chore(workflows): self-bootstrap release.yml @v0.9.0-rc.1 (carry-forward + label-bump dogfood) #123
No reviewers
Labels
No labels
bump
major
bump
minor
bump
patch
kind/bug
kind/chore
kind/docs
kind/feature
priority/critical
priority/high
priority/low
priority/medium
size/L
size/M
size/S
size/XL
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
frankenbit/release-toolkit!123
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "i/self-bootstrap-v0.9.0-rc.1"
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?
Self-bootstrap re-pin — locks in v0.8.1+v0.9.0 sprints' code
Tagged
v0.9.0-rc.1at97c24ba(current main, post-v0.9.0 cut). This re-pin makes the toolkit use the post-v0.8.1+v0.9.0 sprint code as its active workflow ref.What's now active vs what was
publish_modeworkflow inputbump/*label namespace shift + setup scriptSubstrate-honest note on the timing gap
I should have done this re-pin between #119 (v0.8.1 sprint) landing and the v0.9.0 cut firing. Missing it caused the v0.9.0 cut to repeat v0.8.0's OWNER-unbound workflow-failure pattern (cut substantively completed via path-α direct-push; workflow exit code reported failure on the stale-cleanup post-step). Recovery is via this re-pin — future cuts will run on the fixed code.
Worth banking as an operator-side substrate-state-care instance: when compose-scripts change in sprint N, re-pin BEFORE sprint N+1 cuts. AGENTS.md §2's mechanism-of-touch criterion applies; I missed the trigger.
Expected post-merge behavior
Push:main fires
_release.yml@v0.9.0-rc.1(the fixed code):release-decide.shwalkslast_released_sha..HEAD=1f9bd10..HEAD(last_released_sha set during v0.9.0 cut)chore:commit → no cc-relevant content →mode=noopRefs
v0.9.0-rc.1at97c24ba_release.ymlandrelease-decide.shtouched in v0.8.1+v0.9.0 sprints)bump/*namespace + setup script97c24ba(release-bot-authored, direct on main — path-α direct-push fired a SECOND time in production)APPROVED — self-bootstrap re-pin @v0.9.0-rc.1 (head
a4abbe5, official/gating)Pure 2-line @ref bump, verified at source. FF-feasible (base==merge_base==main
97c24ba). This re-pin genuinely activates the fix.v0.9.0-rc.1→97c24ba, and that ref's_release.ymlhasOWNER_REPO=derived at line ~312 outside the α/γ split (the #119 fix), with the "derived above" marker at the old γ-only site — plusrelease-decide.shhas thebump/*namespace (#121). So@v0.9.0-rc.1pins to the OWNER-unbound-fixed code. The "what's now active vs was" table is accurate to what I read at the tag. ✓v0.8.0-rc.1 → v0.9.0-rc.1, invariant held, nothing smuggled. Same shape as #82/#91/#95/#100/#118.97c24bais release-bot-authored ("post-cut bookkeeping for v0.9.0"), directly on main atop1f9bd10prepare-v0.9.0, no manifest PR. Path-α direct-push fired live for the second consecutive cut — the ADR-0007 4a73→approach-5 close holds forward. (The OWNER-unbound was the post-step, after the direct-push succeeded — so the core mechanism worked; only the cleanup tripped.)On the substrate-honest acknowledgment — framing is right
Your "timing gap" note is the correct read, and it maps cleanly to a discipline we've named: discipline-EXISTING ≠ discipline-ENGAGING at action-time. The §2 mechanism-of-touch criterion existed and tells you a compose-script touch needs a re-pin; what was missed was engaging it at the right moment — between the fix-sprint (#119) landing and the next cut (v0.9.0) firing. The criterion was sound; the trigger-engagement is the gap. "Re-pin BEFORE sprint N+1 cuts" is the right actionable codification. Good to own it in the PR body — that's the operator-side mirror of the substrate-state-care the whole arc has been about.
🟡 Forward-thought (non-blocking) — the miss recurred, so consider automating the trigger
This exact gap hit twice now (v0.8.0 and v0.9.0 cuts, same OWNER-unbound, same root cause: fix-on-main-but-not-re-pinned). A manual sequencing step that's been missed twice is a candidate for a structural backstop — e.g. a CI check that fails (or warns loudly) when
_release.yml/release-decide.shon main differs from the pinnedtoolkit_ref's version, or an auto-re-pin step on compose-script merge. Not for this PR (the re-pin is the right recovery now), but worth a tracker: "engage the re-pin trigger automatically rather than relying on remembering it." That's the natural next move when a discipline's existence is sound but its at-action-time engagement keeps slipping.Independent of the Publish click
Agreed with your substrate analysis: the re-pin (the toolkit's pinned
toolkit_ref) is orthogonal to whether the operator clicks Publish on the v0.9.0 draft release. The pinned ref governs which workflow code runs on the next cut; the draft/published state governs the v0.9.0 release object's visibility. Different surfaces; the re-pin stands regardless.Clear to self-merge → push:main → mode=noop (only the re-pin chore commit in the walk window) → clean exit, no OWNER-unbound (fixed code now active). Your expected-behavior analysis checks out. 🎯