chore(release): v0.47.0 #891
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
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
frankenbit/release-toolkit!891
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?
Changelog density — clean
27w: The asymmetry #662 quoted — 'rt decide' reporting 'mode=cut' for a run...27w: It runs against a scratch copy and prints the diff it would produce, s...Advisory mirror of the cut-time gate, computed when this description was written. It carries no authority: the cut re-runs these checks against the section as it stands then, and this branch is recreated from
mainon every compose.Added
None.
Changed
contract source-of-record split: byte-authority and provenance are now separate fields, and both are checkable (#849)
The single field carried two different claims, so a naive check reddened on six correct sites.
Source of recordnow lists only paths that must resolve today.Ported fromlists historical paths, checked for having ever existed.scripts/contract-paths-check.shgrades both halves and classifies globs rather than resolving them.Fixed
cut-cancellation recovery docs: recovery (A) now covers manifest-create, non-atomicity, and the published-release case (#660)
docs/integration.md § Cut-cancellation recovery (#417)no longer says "edit" the manifest for adopters who never had one — it gives the full create-from-scratch JSON. The three (A) steps are now named as non-atomic, since a bare tag push can silently clear the bootstrap population's orphan check unfinished. (B) is flagged as actively wrong once a release is already published, per the live 2026-08-25 incident (#884).dry-run preview docs: fix the fidelity-guarantee direction and two stale claims (#662)
The asymmetry #662 quoted —
rt decidereportingmode=cutfor a run that would resolvemode=updatelive — was already closed at the code level by #689. The doc now says so plainly:--dry-runis a computational no-op forrt decide. Also retires the staleFORGEJO_API_DRY_RUNenv-var reference and names a live gap:rt release's idempotency pre-check is faked under--dry-run, always previewing a create.changelog: suppress duplicate commit bullets covered by body-referenced fragments (#672)
Multi-commit changes can keep the richer fragment entry without widening the add-only fragment walk that protects against silent omission.
release: disclose whether post-cut manifest bookkeeping creates or updates (#679)
The typed post-cut boundary now preserves the observable create/update branch evidence from the release workflow.
prep:
rt prep --dry-runno longer writes your checkout. It runs against a scratch copy and prints the diff it would produce, so a failed run leaves nothing behind for the retry's clean-tree gate to refuse.post_bump_hooksrun in the scratch copy; anything they touch outside their working directory is still not contained (#708)decide: a cut-safeguard that declines no longer resolves to
mode=noopwhen the fall-through finds nothing release-relevant. That path droppedsafeguard_fail,safeguard_versionandprep_shaand exited 0, so a decline read exactly like "nothing to release". It now emitsmode=blockedwithreason=safeguard_decline, which the workflow already fails on. A could-not-grade stays distinguishable from a refusal (#711)operations: document drain-before-review order for rolling release PRs (#770)
Land other work before reviewing the rolling PR, then merge it before another main landing can rebuild its content and invalidate the approval. This is a regeneration rule, not an outdated-branch rule.
manifest: a draft cut no longer records a completed release. Schema 2 adds
last_released_published, so a cut that leaves the release unpublished says so.manifest-checknow reports the absent tag as an unfinished cut, not a desync. Schema 1 is still read, and migrates only when a record needs the new field (#805)849: fragment density, and scrub a register over-match in the arms
ci: keep the blocked arm FLAT so its bats guard reads what it means to
Removed
None.
Deprecated
None.
Upgrade
None.
Internal
test guards: make pending-cut branch extraction safe for nested shell cases (#889)
The workflow contract is unchanged; the structural guard now proves both a nested-case success path and a missing-refusal inverse fails closed.
2ede7aecd2949b77cb3fchore(release): v0.46.2to chore(release): v0.47.0949b77cb3f1789f96e011789f96e01d36dcc5db6d36dcc5db6c4a5d38946c4a5d38946f6429660a9f6429660a92aaf440ea02aaf440ea02605f122362605f12236e4a3206d33e4a3206d33239b5063c9