chore(release): v0.29.0 #444

Merged
alex merged 1 commit from release-prep/rolling into main 2026-07-07 09:16:48 +02:00
Member

Added

Compose-time register-scrub on commit-subject → CHANGELOG bullets. Chamber-name attributions in commit subjects used to ride through cc_categorize_commits_since into CHANGELOG bullets past the register-check file-scan gate. The bullet is now scrubbed at emission — every REGISTER_PATTERNS match is replaced with [reviewer] — so the composed CHANGELOG is clean at source. The pre-existing register-check --stdin FATAL in release-prep.sh stays wired as a defense-in-depth layer for fragment-side drift the emission scrub doesn't cover. No action required. Closes #442.

Fixed

changelog-body-check now targets the newest versioned section instead of the empty [Unreleased] placeholder above it. On a composed CHANGELOG the transition step inserts the freshly-versioned [vX.Y.Z] section BELOW a still-empty [Unreleased] heading. The pre-fix check took the first ## [ and passed vacuously. The check now prefers the newest ## [vX.Y.Z] heading and falls back to [Unreleased] only when no versioned section exists. No action required. Closes #440.

Fragment-vs-commit dedup now matches (closes #NNN) / (fixes #NNN) bullet formats. A CC bullet composed from a commit subject carrying (closes #NNN) / (fixes #NNN) / Closes #NNN. used to escape the trailer-only dedup and appear alongside its fragment prose.

The dedup key is now a bare #NNN with a word-boundary guard. It catches every ref shape — trailer, bolded scope, inline close-verb, comma-separated multi-refs. #4380 still does not match fragment #438. No action required. Closes #441.

  • release-prep: Bundle 1 v0.28.1 must-fix — target section + dedup + register-scrub [#440 #441 #442]
### Added **Compose-time register-scrub on commit-subject → CHANGELOG bullets**. Chamber-name attributions in commit subjects used to ride through `cc_categorize_commits_since` into CHANGELOG bullets past the register-check file-scan gate. The bullet is now scrubbed at emission — every REGISTER_PATTERNS match is replaced with `[reviewer]` — so the composed CHANGELOG is clean at source. The pre-existing `register-check --stdin` FATAL in `release-prep.sh` stays wired as a defense-in-depth layer for fragment-side drift the emission scrub doesn't cover. **No action required**. Closes [#442](https://git.frankenbit.de/frankenbit/release-toolkit/issues/442). ### Fixed **`changelog-body-check` now targets the newest versioned section instead of the empty `[Unreleased]` placeholder above it**. On a composed CHANGELOG the transition step inserts the freshly-versioned `[vX.Y.Z]` section BELOW a still-empty `[Unreleased]` heading. The pre-fix check took the first `## [` and passed vacuously. The check now prefers the newest `## [vX.Y.Z]` heading and falls back to `[Unreleased]` only when no versioned section exists. **No action required**. Closes [#440](https://git.frankenbit.de/frankenbit/release-toolkit/issues/440). **Fragment-vs-commit dedup now matches `(closes #NNN)` / `(fixes #NNN)` bullet formats**. A CC bullet composed from a commit subject carrying `(closes #NNN)` / `(fixes #NNN)` / `Closes #NNN.` used to escape the trailer-only dedup and appear alongside its fragment prose. The dedup key is now a bare `#NNN` with a word-boundary guard. It catches every ref shape — trailer, bolded scope, inline close-verb, comma-separated multi-refs. `#4380` still does not match fragment `#438`. **No action required**. Closes [#441](https://git.frankenbit.de/frankenbit/release-toolkit/issues/441). - **release-prep**: Bundle 1 v0.28.1 must-fix — target section + dedup + register-scrub [#440 #441 #442]
chore(release): prepare v0.29.0
Some checks failed
changelog-body-check / changelog body Cold-Read linter (pull_request) Successful in 3s
check-self-bootstrap / check (pull_request) Has been skipped
changelog-body-check / check (pull_request) Successful in 0s
fragment-check / changelog fragment-kind (pull_request) Successful in 3s
fragment-check / check (pull_request) Successful in 0s
manifest-check / manifest-vs-tag consistency (pull_request) Successful in 5s
manifest-check / check (pull_request) Successful in 0s
register-check / register-drift check (pull_request) Failing after 4s
register-check / check (pull_request) Failing after 0s
tests / bats (pull_request) Successful in 1m52s
tests / shellcheck (pull_request) Successful in 7s
check-self-bootstrap / check (push) Failing after 3s
release / decide + act (push) Successful in 6s
release / release (push) Successful in 0s
tests / bats (push) Successful in 1m52s
tests / shellcheck (push) Successful in 8s
mirror-on-cut / mirror-1 (release) Successful in 1s
mirror-on-cut / mirror (release) Successful in 0s
56bf27b44a
Generated by release-toolkit release-prep.sh.

Tracker: frankenbit/release-toolkit#1
alex merged commit 56bf27b44a into main 2026-07-07 09:16:48 +02:00
alex deleted branch release-prep/rolling 2026-07-07 09:16:48 +02:00
Sign in to join this conversation.
No description provided.