-
v0.36.0
StableSome checks failedchangelog-body-check / changelog body Cold-Read linter (pull_request) Successful in 4schangelog-body-check / check (pull_request) Successful in 0scheck-self-bootstrap / check (pull_request) Has been skippedfragment-check / changelog fragment-kind (pull_request) Successful in 6sfragment-check / check (pull_request) Successful in 0sgo-ci / lint + build + test (pull_request) Successful in 35smanifest-check / manifest-vs-tag consistency (pull_request) Successful in 6smanifest-check / check (pull_request) Successful in 0sregister-check / register-drift check (pull_request) Successful in 6sregister-check / check (pull_request) Successful in 0stests / bats (pull_request) Successful in 2m19stests / shellcheck (pull_request) Successful in 9scheck-self-bootstrap / check (push) Successful in 3sgo-ci / lint + build + test (push) Successful in 36srelease / decide + act (push) Failing after 8srelease / release (push) Failing after 0stests / bats (push) Successful in 2m19stests / shellcheck (push) Successful in 9sgoreleaser / build + publish rt asset (push) Successful in 1m56smirror-on-cut / mirror-1 (release) Successful in 1smirror-on-cut / mirror (release) Successful in 0sreleased this
2026-08-17 14:43:59 +02:00 | 899 commits to main since this releaseAdded
-
composite action: caches the
rtbinary, cutting warm installs from ~10s to under a second (#606)The checksum verify still runs on cache hits — a restored binary is re-verified against the release manifest before anything executes it. No action needed: adopters already on
uses: frankenbit/release-toolkit@vX.Y.Zget this on their next run.
Changed
-
fragment-check gate: now runs
rt fragment-checkinstead of the bash script (#607)The workflow's inputs are unchanged —
valid_kindsandfragment_length_warn_charsreachrtthrough the same env vars the script read, verified by differential run. Adopters pinned to a release tag get a cachedrt(~48ms warm, #606); no action needed.
Fixed
-
fetch-rt: the "not listed in checksums.txt" error can now actually print (#606)
The branch was unreachable under
set -euo pipefail, so a release published with incomplete assets failed with a bare non-zero exit and no diagnostic. Anyone who hit that case saw no reason for it. -
config:
config_render_tagnow fails when the tag format cannot be resolved (#625)With no
release-toolkit.ymlit returned success and an empty string. Callers'|| printf 'v%s'fallbacks therefore never fired, andrt decideemitted an emptynext_tag. The bash path now matches the Go path, which already fell back tov. -
changelog-body-check: density checks now read lists, quotes and tables (#632)
Checks 7 and 9 scanned plain paragraphs only, so the same over-long sentence failed as a paragraph and passed as a bullet. Markers are now stripped and the remainder scanned. A blockquote over the ceiling names itself in the failure, and the message names the variable that raises the ceiling.
-
release: post-cut manifest bookkeeping is written again, and verified on the branch (#637)
The idempotency pre-check read the workspace copy, which
rt releasenow writes itself. It saw its own run's work, assumed a prior run had landed the commit, and skipped the push. It now reads the remote branch tip, and a post-condition refuses when the commit did not land. -
changelog-body-check: honour
CHANGELOG_BODY_CHECK_{SENTENCE_MAX,SENTENCE_WARN,PAREN_DEPTH_MAX,PARAGRAPH_MAX,PARAGRAPH_WARN}env vars in the Go port — previously hardcoded, making the failure message's advice to set these vars incorrect (#652). Invalid (non-integer) values now exit 2 rather than silently falling back to the default. -
release: the cut safeguard grades the prepare commit, and a decline now fails the run (#663)
Layers 2 and 3 were keyed on
HEAD_SHA, which asks whether the last merge came from the rolling branch, not whether the prepare commit did. Those diverge on the buried-prepare path, so a follow-up commit on top declined a valid cut. The gate now keys on the prepare commit's own sha. A decline is now an::error::and a non-zero exit, not a bareechoin a step that exits 0. -
release: the Go decide port's prepare-sha resolution is now pinned by tests (#663)
The #663 fix landed in both implementations, but only the Bash half had arms. Reverting the Go keying, or neutering the resolver, left
internal/decideandcmd/rtfully green. The byte-oracle cannot cover it either: it runs--dry-run, where Layer 2/3 areSKIP. Adds a merge-commit fixture with a live Layer-2 lookup, a stray-prepare pin, and a direct resolver test over all three shapes. -
changelog: split 37-word density failure in 652 fragment
-
release-decide: resolve the prepare's OWNING MERGE, and make the seam as strict as production
-
register-check: the allow-list wildcard bullet was WRONG, not just loose
-
fragment-check: drop
|| true— the runnability check could not fail -
changelog-body-check: #632 blockquotes REFUSE with a named override
Removed
None.
Deprecated
None.
Upgrade
None.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-