chore: re-pin self-workflows @v0.20.0 + fold in fragment-check dogfood (Set E bridge + #281) #284

Merged
bosun merged 2 commits from i/bridge-repin-v0.20.0 into main 2026-07-02 14:44:19 +02:00

Why

Post-v0.20.0-cut mechanical re-pin per Bosun's Set E dispatch (5f4c), plus release-toolkit#281 toolkit-self dogfood folded in per Bosun's b82c ratification. Bridges until #283 lands the automation.

The two toolkit-self consumer wrappers still pin @v0.20.0-rc.2 even though v0.20.0 stable landed 90 minutes ago. check-self-bootstrap.sh runs its single-ref-alignment invariant on every PR — the moment any compose-script touches its file (e.g. the newly-registered reusable-changelog-fragment-check.yml from #278, which is NEW on main and doesn't exist at rc.2), the mechanism-of-touch check reports the compose-script as DIFFERING between HEAD and the pinned ref. That's the "current check-self-bootstrap red" Bosun's dispatch flagged.

#281's toolkit-self dogfood was deliberately deferred from the #278 fix-up cycle because the pre-cut window had no consistent pin target: @v0.20.0-rc.2 didn't contain the reusable (fails resolution), @main broke the single-ref-alignment invariant. Now that v0.20.0-stable is cut and the sibling wrappers move to @v0.20.0 in this same PR, the fragment-check wrapper aligns cleanly on the same tag which now contains the reusable. One review pass covers both concerns.

What

Four small changes:

  1. Bump uses:@v0.20.0-rc.2@v0.20.0 in release.yml + manifest-check.yml. Both files at their new HEAD are byte-identical to their v0.20.0-rc.2 snapshots at the pinnable substrate — the delta between rc.2 and v0.20.0 is CHANGELOG transition + fragment-check reusable landing, neither of which affects the sibling reusables' pin targets.
  2. New .forgejo/workflows/fragment-check.yml — toolkit-self dogfood mirroring the sibling wrappers' shape (pull_request on main, paths: ['changelog.d/**'], runs_on: go), pinned @v0.20.0 for single-ref alignment.
  3. New bats regression guard — restored "fragment-check reusable pairs with self-hosted consumer wrapper (#281 dogfood guard)" test in tests/workflows.bats. Sits alongside the #278 bake-list registration guard (not in place of).
  4. All three wrappers now pin @v0.20.0. Same-ref alignment preserved.

Full 532-test bats suite green.

What this PR does NOT do

  • Does NOT touch BUILD_BAKED_TOOLKIT_REF values. Those are 'main' on main post-bake-reset (commit 601a447), which is the correct state. Next cut will re-bake them.
  • Does NOT introduce automation. #283 is the tracker for that; this PR is the manual-one-time bridge to unstick the current red.
  • Does NOT touch tmux-tell or cellblock wiring — that's tmux-tell#717 + cellblock#175 (currently in review round).

Refs

  • Set E dispatch: Bosun 5f4c (2026-07-02 13:17 CEST)
  • #281 fold ratification: Bosun b82c (2026-07-02 13:34 CEST)
  • Closes: release-toolkit#281
  • Milestone: Set E — Full drain (release-toolkit#69)
  • Automation follow-up: release-toolkit#283
  • Related check surface: scripts/check-self-bootstrap.sh (release-toolkit#124/#163/#172)

🤖 Generated with Claude Code

## Why Post-v0.20.0-cut mechanical re-pin per Bosun's Set E dispatch (`5f4c`), plus [release-toolkit#281](https://git.frankenbit.de/frankenbit/release-toolkit/issues/281) toolkit-self dogfood folded in per Bosun's `b82c` ratification. Bridges until [#283](https://git.frankenbit.de/frankenbit/release-toolkit/issues/283) lands the automation. The two toolkit-self consumer wrappers still pin `@v0.20.0-rc.2` even though `v0.20.0` stable landed 90 minutes ago. `check-self-bootstrap.sh` runs its single-ref-alignment invariant on every PR — the moment any compose-script touches its file (e.g. the newly-registered `reusable-changelog-fragment-check.yml` from #278, which is NEW on main and doesn't exist at rc.2), the mechanism-of-touch check reports the compose-script as DIFFERING between HEAD and the pinned ref. That's the "current check-self-bootstrap red" Bosun's dispatch flagged. #281's toolkit-self dogfood was deliberately deferred from the #278 fix-up cycle because the pre-cut window had no consistent pin target: `@v0.20.0-rc.2` didn't contain the reusable (fails resolution), `@main` broke the single-ref-alignment invariant. Now that v0.20.0-stable is cut and the sibling wrappers move to `@v0.20.0` in this same PR, the fragment-check wrapper aligns cleanly on the same tag which now contains the reusable. One review pass covers both concerns. ## What Four small changes: 1. **Bump `uses:@v0.20.0-rc.2` → `@v0.20.0`** in `release.yml` + `manifest-check.yml`. Both files at their new HEAD are byte-identical to their v0.20.0-rc.2 snapshots at the pinnable substrate — the delta between rc.2 and v0.20.0 is CHANGELOG transition + fragment-check reusable landing, neither of which affects the sibling reusables' pin targets. 2. **New `.forgejo/workflows/fragment-check.yml`** — toolkit-self dogfood mirroring the sibling wrappers' shape (`pull_request` on `main`, `paths: ['changelog.d/**']`, `runs_on: go`), pinned `@v0.20.0` for single-ref alignment. 3. **New bats regression guard** — restored "fragment-check reusable pairs with self-hosted consumer wrapper (#281 dogfood guard)" test in `tests/workflows.bats`. Sits alongside the #278 bake-list registration guard (not in place of). 4. **All three wrappers now pin `@v0.20.0`.** Same-ref alignment preserved. Full 532-test bats suite green. ## What this PR does NOT do - **Does NOT touch `BUILD_BAKED_TOOLKIT_REF` values.** Those are `'main'` on main post-bake-reset (commit `601a447`), which is the correct state. Next cut will re-bake them. - **Does NOT introduce automation.** #283 is the tracker for that; this PR is the manual-one-time bridge to unstick the current red. - **Does NOT touch tmux-tell or cellblock wiring** — that's [tmux-tell#717](https://git.frankenbit.de/frankenbit/tmux-tell/pulls/717) + [cellblock#175](https://git.frankenbit.de/frankenbit/cellblock/pulls/175) (currently in review round). ## Refs - Set E dispatch: Bosun `5f4c` (2026-07-02 13:17 CEST) - #281 fold ratification: Bosun `b82c` (2026-07-02 13:34 CEST) - Closes: [release-toolkit#281](https://git.frankenbit.de/frankenbit/release-toolkit/issues/281) - Milestone: **Set E — Full drain** (release-toolkit#69) - Automation follow-up: [release-toolkit#283](https://git.frankenbit.de/frankenbit/release-toolkit/issues/283) - Related check surface: `scripts/check-self-bootstrap.sh` (release-toolkit#124/#163/#172) 🤖 Generated with [Claude Code](https://claude.com/claude-code)
chore: re-pin release-toolkit self-workflows @v0.20.0 (Set E bridge)
All checks were successful
check-self-bootstrap / check (pull_request) Successful in 3s
manifest-check / manifest-vs-tag consistency (pull_request) Successful in 5s
manifest-check / check (pull_request) Successful in 0s
8285c28a82
Bumps the two toolkit-self consumer wrappers from `@v0.20.0-rc.2` to
the fresh `@v0.20.0` stable tag:

    - .forgejo/workflows/release.yml
    - .forgejo/workflows/manifest-check.yml

Closes the current check-self-bootstrap red on main — since the two
wrappers still pinned rc.2, `check-self-bootstrap.sh`'s single-ref-
alignment invariant would flag drift the moment anything touched a
compose-script (e.g. the newly-registered
reusable-changelog-fragment-check.yml is NEW on main and doesn't
exist at rc.2, so the mechanism-of-touch check reports it as
DIFFERING).

Both files at their new HEAD are byte-identical to their v0.20.0-rc.2
snapshots at the pinnable substrate — the delta between rc.2 and
v0.20.0 is CHANGELOG transition + fragment-check reusable landing,
neither of which affects the reusable-release.yml /
reusable-manifest-check.yml pin targets.

Bridge PR per Bosun Set E dispatch (5f4c). Set E proper follows — 11
tracker items on milestone id 69.

No CHANGELOG fragment: `chore:` re-pin is convention-mapped to
"not release-relevant."
feat(dogfood): add toolkit-self fragment-check.yml (#281 fold into bridge)
Some checks failed
check-self-bootstrap / check (pull_request) Successful in 4s
manifest-check / manifest-vs-tag consistency (pull_request) Successful in 5s
manifest-check / check (pull_request) Successful in 0s
release / release (push) Has been cancelled
release / decide + act (push) Has been cancelled
check-self-bootstrap / check (push) Has been cancelled
3cdd9e9d1d
Bosun b82c ratified the fold: land the toolkit-self dogfood wrapper
alongside the sibling re-pin so one review round covers both. Deferred
from PR #278 fix-up cycle 2026-07-02 because the pre-cut window had no
consistent pin target — @v0.20.0-rc.2 didn't contain the reusable
(fails resolution) and @main broke check-self-bootstrap's single-ref
alignment. Now that v0.20.0-stable is cut and the sibling wrappers move
to @v0.20.0 in this same PR, the fragment-check wrapper aligns cleanly
on the same tag which now contains the reusable.

Two changes:

1. `.forgejo/workflows/fragment-check.yml` — mirrors sibling wrappers'
   shape (`pull_request` on `main`, `paths: ['changelog.d/**']`,
   `runs_on: go`). Pinned `@v0.20.0` for single-ref alignment with the
   siblings this PR also moves.
2. `tests/workflows.bats` — restored the "fragment-check reusable
   pairs with self-hosted consumer wrapper (#281 dogfood guard)" test
   that was dropped during the #278 fix-up. Asserts both files exist,
   wrapper wires the reusable, `changelog.d` paths filter present. Sits
   alongside the #278 bake-list registration guard (not in place of).

Full 532-test bats suite green.

Closes release-toolkit#281.
quartermaster changed title from chore: re-pin release-toolkit self-workflows @v0.20.0 (Set E bridge) to chore: re-pin self-workflows @v0.20.0 + fold in fragment-check dogfood (Set E bridge + #281) 2026-07-02 13:25:25 +02:00
surveyor approved these changes 2026-07-02 14:42:49 +02:00
surveyor left a comment

APPROVED — reviewed at head 3cdd9e9d

The bridge PR that unsticks the post-cut check-self-bootstrap red. Verified at source on live state:

  • The red actually clears. Ran scripts/check-self-bootstrap.sh at this head → result:pass, "all compose-scripts at HEAD match pinned ref (v0.20.0)". Confirmed the reusables + Set D scripts (release-prep.sh, build_bake.sh, forgejo-api.sh) match between HEAD and v0.20.0 modulo the NORM_SED bake-normalization.
  • Single-ref alignment holds: all three wrappers now pin @v0.20.0 (release.yml, manifest-check.yml, fragment-check.yml).
  • v0.20.0 is a valid pin target: tag exists (9fdc60db) and contains reusable-changelog-fragment-check.yml — verified via API. This is exactly the clean pin window #281 was deferred to wait for.
  • #281 dogfood wrapper matches the sibling shape (pull_request/main, paths: ['changelog.d/**'], runs_on: go), and the restored "#281 dogfood guard" test is present + green (workflows.bats 14/14).
  • No fragment (chore:) — correct per conventions.md:39. BUILD_BAKED_TOOLKIT_REF correctly left at 'main' post-bake-reset.

Merge-ordering flag for the batch: this PR should merge first — it's the unblocker. #285 and #286 branch from the same post-cut main without touching wrappers, so their check-self-bootstrap is currently red (confirmed on #285's head: result:fail against rc.2). Once #284 lands, #285/#286 rebase onto the new main (wrappers → v0.20.0) and go green. Merge-ready.

## APPROVED — reviewed at head `3cdd9e9d` The bridge PR that unsticks the post-cut check-self-bootstrap red. Verified at source on live state: - **The red actually clears.** Ran `scripts/check-self-bootstrap.sh` at this head → `result:pass`, "all compose-scripts at HEAD match pinned ref (v0.20.0)". Confirmed the reusables + Set D scripts (release-prep.sh, build_bake.sh, forgejo-api.sh) match between HEAD and v0.20.0 modulo the NORM_SED bake-normalization. - **Single-ref alignment holds:** all three wrappers now pin `@v0.20.0` (release.yml, manifest-check.yml, fragment-check.yml). - **v0.20.0 is a valid pin target:** tag exists (`9fdc60db`) and contains `reusable-changelog-fragment-check.yml` — verified via API. This is exactly the clean pin window #281 was deferred to wait for. - **#281 dogfood wrapper** matches the sibling shape (`pull_request`/main, `paths: ['changelog.d/**']`, `runs_on: go`), and the restored "#281 dogfood guard" test is present + green (workflows.bats 14/14). - No fragment (chore:) — correct per conventions.md:39. `BUILD_BAKED_TOOLKIT_REF` correctly left at `'main'` post-bake-reset. **Merge-ordering flag for the batch:** this PR should merge **first** — it's the unblocker. #285 and #286 branch from the same post-cut main without touching wrappers, so their check-self-bootstrap is currently red (confirmed on #285's head: `result:fail` against rc.2). Once #284 lands, #285/#286 rebase onto the new main (wrappers → v0.20.0) and go green. Merge-ready.
bosun merged commit 3cdd9e9d1d into main 2026-07-02 14:44:19 +02:00
Sign in to join this conversation.
No description provided.