chore(release): v0.31.0 #469
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!469
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "release-prep/rolling"
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?
Added
None.
Changed
Cold-read capture output now routes to the internal wiki (BookStack
release-toolkitbook, id 209) instead of dropping{date}-{model}-{surface}.mdand{date}-triangulation.mdfiles intodocs/internal/cold-read/. Same policy as the Codeberg-primary shift from #398: point-in-time artifacts naming external models and carrying maintainer-internal framing belong off-tree.The register-check allowlist entry for
docs/internal/is removed as the coupled half. With cold-read captures now off-tree, the maintainer-archaeology directory stays adopter-facing-clean by construction. The#392gate durably enforces cleanliness without relying on the allowlist as the only guard against future name-drift.Verified with the allowlist entry removed:
register-check.shstill exits 0 across the tree, and the three remaining files underdocs/internal/(README + prompt-template + capture-template) carry no chamber-name attribution. Adopter-facing behavior unchanged — this only touches maintainer-internal framework docs. Closes #402.Deprecated
None.
Removed
None.
Fixed
PREP_SUBJECT_REis now a single-source-of-truth inscripts/lib/prep-subject.sh. The regex and a newis_prep_merge_subjecthelper are extracted from the previous three in-file copies. Two lived inrelease-decide.shfor cut-detection; one lived incheck-self-bootstrap.shfor skip-detection.Consumers now source the shared library. Any future refinement of the shape matcher lands in one place. This closes the discipline-load-bearing follow-up from the previous check-self-bootstrap arc. Without the shared source, a divergence between the two matchers could produce a silent hole. A non-cut push would then be incorrectly skipped by the pin-drift check.
Test coverage lives in
tests/prep-subject.bats(5 shape variants: merge, squash, rc-suffix, non-prep, prefix false-positive) plusBASH_REMATCHextraction guards. Existing regressions intests/check-self-bootstrap.batsandtests/release-decide.batscontinue to pass unchanged. No action required for adopters. Closes #450.chore(release): v0.30.4to chore(release): v0.31.0d5787b993f42639690faAPPROVED — PR#469 @
4263969(chore(release): v0.31.0 — fold-3 items #402 + #450 bundle)Clean rolling cut-prep. Verified the composition on-source (not just trusting the green compose-gates) — bundle attribution, bump level, bake/float/override state all correct. This is #448 EP-3, the first bundled-fold cut on the floated substrate.
Bump level — MINOR is correct (naming the correction, per your ask)
VERSION= 0.31.0 (0.30.3 → 0.31.0). This is the right bump: #402 iskind=changed(→ MINOR) and #450 iskind=fixed(→ PATCH); highest-bump-wins composes to MINOR, so v0.31.0 — not v0.30.4. Worth naming explicitly because it's a real cut-prep correctness axis: a reviewer who assumed "next patch" would have mis-expected v0.30.4. The composition applied the precedence rule correctly.CHANGELOG composition — correct kind-section attribution
### Changed← #402 (cold-read output → BookStack + docs/internal de-allowlist). Correct section forkind=changed.### Fixed← #450 (PREP_SUBJECT_REsingle-source consolidation). Correct section forkind=fixed.None.scaffolding; both entries carry theirCloses #402/Closes #450. Both fragments (402.changed.md,450.fixed.md) consumed/deleted. changelog-body-check (incl. Cold-Read linter) green in CI — sentence/paragraph gates pass on the composed body.Cut-prep substrate — bake / float / override all correct
BUILD_BAKED_TOOLKIT_REF: 'v0.31.0'— the #336 adopter freeze;@v0.31.0will be a frozen source-of-record.uses:@main(incl. the asymmetricfragment-check.yml → reusable-changelog-fragment-check.yml@main). The auto-re-pin@main-skip held through the compose — the cut won't revert the #456 float.reusable-release.ymlstill carries the floating-pin-override (1 hit) — the AT-CUT chain-break fix survives the recompose. Cut runsrelease-toolkit@main, tag still bakes v0.31.0; #336 immutability holds end-to-end.@v0.31.0(release + manifest-check reusables); no stale0.30.3refs anywhere in README/docs/examples.CI
Green by-SHA: 11/11 success (changelog-body-check + Cold-Read linter, manifest-check, register-check, fragment-check, check-self-bootstrap, bats, shellcheck). Reproduced the composition state locally; nothing red.
Clean to merge → v0.31.0 cut = EP-3. This is the bundled-fold cut landing cleanly on the floated + post-#460 substrate — #448 evidence continuing to accumulate.
— Surveyor