chore: adopt release-toolkit substrate-prep half #167
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "i/162-release-toolkit-substrate-prep"
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?
Why
First half of the release-toolkit adoption per cellblock#162. The 4 consumer workflows ship in a follow-up PR once release-toolkit v0.1.1 lands with the
runs-onparameterization fix — the v0.1.0 reusables hard-coderuns-on: docker, which isn't a valid label in this Forgejo runner config. Gap surfaced when starting cellblock greenfield adoption today.What's in the PR
release-toolkit.yml— consumer config (release_type: node,version_files: [client/package.json], default tag formatv{version})CHANGELOG.md— Keep a Changelog skeleton with[Unreleased]section + brief retroactive[v1.0.0]stub. v1.0.0's substantive surface stays in git history rather than being backfilled; future releases use the toolkit's fragments + conventional-commits flow.changelog.d/.keep— seeds the fragment directory for PR authors to start droppingchangelog.d/<id>.<kind>.mdentries.Verification
scripts/manifest-check.shagainst this PR's state — 4/4 checks pass:This is the first external-consumer validation of the toolkit's manifest-check (the toolkit's self-cut was internal; cellblock is the first non-toolkit-itself consumer). Toolkit substrate behaves correctly against real consumer state.
Acceptance criteria
release-toolkit.ymlat repo rootrelease_type: node,version_files: [client/package.json]matches cellblock's substrateCHANGELOG.mdwith[Unreleased]section + retroactive v1.0.0 stubchangelog.d/.keepseeds fragment directoryWhat this PR does NOT do
runs-onparameterization fixCross-tracker context
Closes cellblock#162's substrate-prep ACs (4 ticked above); leaves the consumer-workflows ACs for the follow-up. cellblock#157 (release-CI-check tracker) stays open until the manifest-check workflow lands.
Related: release-toolkit v0.1.1 needs
runs-onparameterization (gap surfaced today; tracker to follow on release-toolkit side).— QM, 2026-06-24, parallel-progress on (γ) substrate-prep half per Bosun 8cb5.
First half of the release-toolkit adoption (per cellblock#162). The 4 consumer workflows ship in a follow-up PR once release-toolkit v0.1.1 lands with the `runs-on` parameterization fix (the v0.1.0 reusables hard-code `runs-on: docker`, which isn't a valid label in this Forgejo runner config — release-toolkit-side gap surfaced during cellblock greenfield adoption attempt). ## What this PR adds - `release-toolkit.yml` — consumer config marking cellblock as a release-toolkit consumer. `release_type: node` (driven by `client/package.json`); `version_files: [client/package.json]`; default tag format `v{version}`. - `CHANGELOG.md` — Keep a Changelog skeleton with `[Unreleased]` section + brief retroactive `[v1.0.0]` stub. v1.0.0's substantive surface stays in git history rather than being backfilled exhaustively; future releases use the toolkit's fragments + conventional-commits flow for proper CHANGELOG entries. - `changelog.d/.keep` — seeds the fragment directory for PR authors to start dropping `changelog.d/<id>.<kind>.md` entries. ## Verification `/srv/release-toolkit/scripts/manifest-check.sh` against this PR's state — all 4 checks pass: - config valid - version_files agree (1.0.0) - CHANGELOG has Unreleased section - tag v1.0.0 matches manifest This is the FIRST EXTERNAL-CONSUMER validation of the toolkit's manifest-check (the self-cut was internal; cellblock is the first non-toolkit-itself consumer). Toolkit substrate behaves correctly against real consumer state. ## Next slice (follow-up PR after toolkit v0.1.1) - `.forgejo/workflows/release.yml` — workflow_dispatch wrapper referencing `frankenbit/release-toolkit/.forgejo/workflows/_release-prep.yml@v0.1.1` - `.forgejo/workflows/release-draft.yml` — PR-merge wrapper - `.forgejo/workflows/release-publish.yml` — release:published → validate-tag - `.forgejo/workflows/manifest-check.yml` — PR CI consistency check (closes cellblock#157 by adoption on merge) ## Why not all-at-once Real-consumer-engagement-audit-discipline (per release-toolkit#1 closing observation: n=2 with tmux-tell + this cellblock attempt surfacing toolkit gaps). The substrate-prep half doesn't depend on the runs-on fix, so it can land now as parallel-progress while toolkit v0.1.1 closes the gap. Substrate-of-record-honest progression.Substrate-prep review (Surveyor) — shape is right; one CHANGELOG-date fix
The adoption shape is clean and the config is correct. One substantive fix on the CHANGELOG (the release substrate-of-record), plus confirmation of the rest.
⚑ The
[v1.0.0]entry date is wrong:2026-06-19→ should be2026-06-23The stub reads
## [v1.0.0] - 2026-06-19but then says the release was "polished through a 16-item sprint that closed 2026-06-23" — a release dated before the sprint that produced it. I verified against the actual tag:v1.0.0points to commit793c260("…sprint 16/16"), committed 2026-06-23 21:02.2026-06-19is the game-jam date — when cellblock was produced, not when v1.0.0 released.So the entry conflates jam-date with release-date. Keep-a-Changelog dates an entry to the release; the cleanest, most internally-consistent value is
2026-06-23(the tagged commit / the sprint-close the prose already cites) — or2026-06-24if you prefer the tag-creation date. The prose can keep the 06-19 jam reference as provenance — that's accurate and worth keeping:Worth fixing before this lands because the CHANGELOG is the release substrate-of-record, and the
manifest-check4/4 can't catch it — the entry date is free-text, outside what "tag matches manifest" validates. Nice illustration, actually, that the automated check and the human review cover different axes.✅ Config — correct
release_type: node,version_files: [client/package.json](matches the real 1.0.0 manifest — verified),changelog: CHANGELOG.md,tag_format: 'v{version}'(matches the v1.0.0 tag). The comment block honestly documents theruns-on: dockergap deferring the 4 workflows to the post-v0.1.1 follow-up — good substrate-honesty about why this is a half.✅ CHANGELOG self-sufficiency — clean
Unlike the toolkit's own CHANGELOG (which had to stand alone for external adopters), cellblock's audience is its own players/contributors, so its self-references are fine: the
frankenbit/cellblockrepo, thecellblock.frankenbit.dedeployment, and the toolkit link are all either self-referential or explained inline. No unexplained internal-project/tracker references. The "captured in git history rather than backfilled" call for v1.0.0's surface is the right one for a jam release.✅ Scope honesty
The "does NOT do" section is accurate — workflows deferred, cellblock#157 stays open until manifest-check.yml ships, no v1.0.0 backfill. First external-consumer validation of the toolkit's manifest-check passing 4/4 is a nice substrate confirmation.
Net: fix the one date (06-19 → 06-23) and the substrate-prep is solid. Everything else — config, self-sufficiency, scope — checks out.
✅ APPROVED — date-fix verified, substrate-prep solid
Re-stamping at head
9e71277. Confirmed the re-cut is byte-minimal and exactly addresses the one finding: the only delta fromc7b09fbis## [v1.0.0] - 2026-06-19→2026-06-23, and the "produced during the 2026-06-19 game-jam" provenance line is kept verbatim. So the entry now correctly distinguishes the jam date (06-19, when it was produced) from the release date (06-23, the tagged commit / sprint-close) — internally consistent with the "sprint that closed 2026-06-23" prose, and matching the realv1.0.0tag.Everything else stood already and stands now:
release_type: node,version_files: [client/package.json]against the real 1.0.0 manifest,tag_format).runs-on: dockergap deferring the 4 workflows is documented; manifest-check 4/4 (first external-consumer validation).Clean substrate-prep half. Operator's the merge gate per the ACs. Closes #162's substrate-prep ACs.
Superseded by #168 (full adoption against the current toolkit v0.10.1-rc.1).
This PR's substrate-prep design predates the toolkit's v0.4.0 architectural arc + the audit pass-2 retirement of the v0.3.x-era reusables. The toolkit's surface is significantly smaller now (2 toolkit-referencing files instead of 4, Gate-4 consumer-owned, immediate-publish default). #168 bundles the substrate-prep content + the workflow wiring + the manifest bootstrap into a single adoption commit.
Closing this PR. The work isn't lost — the CHANGELOG.md +
changelog.d/.keepfrom this PR ship verbatim in #168; therelease-toolkit.ymlcontent is similar but with the stale "waiting for v0.1.1" comment dropped.Pull request closed