chore(release): v0.44.0 #831
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!831
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
29w: 'rt repin' and 'rt check-self-bootstrap' do the work now, including th...26w: Updated live Forgejo integration and architecture documentation after ...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
Duplicate-version refusal: the
## [vX.Y.Z] already presenterror now names what itdid NOT check.
It detects a duplicate heading and nothing more. The tag may exist. The release may have
published. The section's body may be incomplete. None of that is verified.
Its "did not tag it" clause names a likely cause, not a measured one — a hand-edited
CHANGELOG reaches the same state.
Applied at both emit sites together (#833, #659).
Fixed
Release prep: a second prep run for a version already in the changelog now merges
into that section instead of refusing the cut.
The transition transforms
## [Unreleased]into a version heading. It never scanned foran existing one, so a second run emitted a duplicate.
Refusing would strand real content. The second run's Unreleased holds everything accrued
since the first. Merging keeps both sets, and
None.placeholders drop out.The existing heading keeps its date, so a tagged section is never restamped
(release-toolkit#665).
Fixed: the four PR-CI gates now build
rtfrom the commit under test, not frommain.Each gate checks the toolkit out a second time. That checkout resolves to
mainunderthe #456 floating-pin override. So a PR that changed a gate was graded by
main's copyof it — the gate under test was never the gate that ran.
The build arm now sources from the consumer checkout when it carries
cmd/rt. That isthe PR itself when the toolkit runs its own CI.
The adopter path is unchanged. An adopter has no
cmd/rtin its workspace, so it stillfetches a published asset and needs no Go toolchain.
Code comments:
internal/fragments/fragments_test.gono longer namesfragments.shas the byte-authority for the changelog-kind order.That script went with the bash PR-CI gates (#607).
Kindsis the authority now;the port's origin stays in the past tense.
Found by re-deriving
#734's scope during its AC sweep. It fixed five scripts.fragments.shwas not among them — the floor its own AC warned about.register-check now covers the complete built-in chamber vocabulary.
Docs: thirteen sites named a retired script as the present-tense actor for
behaviour that still happens.
rt repinandrt check-self-bootstrapdo thework now, including the glossary's definition of "re-pin" and two table cells
citing line numbers inside a file that no longer exists.
The behaviour was never wrong; only the actor was. That is why a tense sweep
misses them — a reader asking "is this still true?" gets yes.
Corrected five code comments that justified best-effort error handling by
claiming the cut had already published.
The code they annotate never reads
publish_mode. The claim was false under theold
draftdefault and true again underimmediate, while the reasoning itsupports never depended on either. The justification is now that the release
object exists, which holds under both.
Contracts + workflow comments: four contract documents named a deleted
scripts/lib/*.shfile as their byte-authority. The Go packages are theauthority; the bash origin stays in the past tense.
C4, C6 and C7 now point at
internal/fragments,internal/changelogandinternal/forgejo.fragment-format.mdalso claimed the contract validates"both substrates" — there is one.
reusable-release.ymlhad two: a pointer to a deleted file, and a sentenceasserting other
scripts/libsources still exist. None do.fetch-rt.sh's HTML guard now removes the page it rejected before exiting.Previously the page stayed on disk. That was harmless on the default path,
where the work dir is a throwaway
mktemp -d. WithRT_INSTALL_DIRset itwas not. That directory is the adopter's persistent
#606cache, so therejected page sat there under the release asset's own name.
The artefact is removed, never the directory. A blanket cleanup would delete
the cache
#606exists to keep.rt repinandrt consumer-wrappersnow discover.forgejo/workflows/*.yamladopter wrappers, not only
*.yml.This forge executes both extensions. A
.yamladopter was invisible toDiscover, so the re-pin rewrite silently did nothing rather than failing.The
.yml-only filter was inherited from the bash oracle(
scripts/lib/wrappers.sh) and faithfully ported at#705. The port wascorrect; the oracle was wrong.
Docs:
docs/events-logging.mdhad a Go heading over a bash body. The callsignature, the
jqescaping, theevent_emitreturn contract and thedeclare -Fguard all described the retired shell layer.The deeper defect was the opening sentence. It said the toolkit emits events
during the cut path. It does not:
rt check-self-bootstrapis the only commandthat emits anything, and the taxonomy table listed seven kinds as "currently
emitted" when one is.
That retirement was deliberate and reasoned, recorded in
internal/decide. Theguide now says so instead of describing behaviour a reader will not observe.
Updated live Forgejo integration and architecture documentation after the shell client retirement; historical provenance remains, and deleted-file line coordinates are no longer presented as current anchors.
Removed
None.
Deprecated
None.
Upgrade
None.
Internal
Added positive and negative Go tests for register-check allow-list glob semantics, including wildcard and recursive directory behavior.
Removed the 55 changelog and config fixtures left orphaned when their equivalence suites were retired.
Strengthened the workflow bake-list regression guard to count each reusable on both runtime staging loops, preventing prose occurrences from masking a missing loop entry.
chore(release): v0.43.1to chore(release): v0.44.069d4d74e1009e292901b09e292901b83ffca03e183ffca03e1129631325812963132581f99c2694d1f99c2694d030c05cee0030c05cee00f3e84dab70f3e84dab76ee2f358d26ee2f358d290deb71e9390deb71e935253b730c05253b730c08d13b31d138d13b31d13182de55778182de5577838a51eafe738a51eafe7b91c5618afb91c5618af347028a2e5