• v0.41.0 a47f4d47db

    v0.41.0
    All checks were successful
    check-self-bootstrap / check (push) Successful in 5s
    go-ci / lint + build + test (push) Successful in 27s
    release / decide + act (push) Successful in 8s
    release / release (push) Successful in 0s
    tests / bats (push) Successful in 18s
    tests / shellcheck (push) Successful in 3s
    goreleaser / build + publish rt asset (push) Successful in 1m17s
    mirror-on-cut / mirror-1 (release) Successful in 2s
    mirror-on-cut / mirror (release) Successful in 0s
    goreleaser / adopters can fetch the published asset (push) Successful in 3m5s
    Stable

    release-bot released this 2026-08-20 02:52:33 +02:00 | 802 commits to main since this release

    Added

    rt consumer-wrappers now owns consumer-workflow discovery, and the release workflow uses it instead of sourcing the Bash helper.

    Changed

    rt manifest-postcondition now resolves the manifest-PR surface itself when --pr-state is unset. reusable-release.yml no longer sources scripts/lib/forgejo-api.sh; the flag is still honoured.

    Resolution fails closed. A lookup that cannot complete yields ungraded (exit 2), never absent (exit 1).

    This also closes a pagination hole. The old query read only the first 50 open PRs, so a busy repo could report absent while a manifest PR existed.

    rt binary-size-check replaces scripts/binary-size-check.sh (rt#720, bash retirement arc). Exit codes are tri-state: 0 pass, 1 step change exceeded, 2 could not grade. Flags --max-growth-pct, --baseline-bytes, and --attribute-ref are identical to the shell script. On a red, the merge-base attribution block is included. go-ci.yml calls rt binary-size-check directly; the shell script is deleted.

    rt check-self-bootstrap now owns pin-drift detection. The Bash script and its two private libraries are retired, and forgejo-api.sh no longer emits api_call events.

    rt prep now re-pins adopter-facing doc refs as a built-in step (rt#720, bash retirement arc). scripts/hooks/update-doc-version-refs.sh is deleted; the same rewrite logic runs as §8d UpdateDocVersionRefs inside rt prep — no consumer config change required. release-toolkit.yml no longer lists the hook in post_bump_hooks. The post_bump_hooks mechanism itself is retained for adopters.

    Fixed

    • release: an expression spelled out in a run-block comment made reusable-release.yml unusable (#762)

    Removed

    None.

    Deprecated

    None.

    Upgrade

    None.

    Internal

    • build-bake: retire the bash marker-rewrite library.

      No action required. rt build-bake now owns the post-cut marker reset and the re-pin detached bake path, preserving the existing tree semantics while removing the duplicated sed implementation.

    • code comments: stop naming deleted bash scripts as the current authority (#734)

      Fifteen Go files carried comments asserting that a removed script is the byte-authority or behaviour-of-record. Provenance statements are kept in the past tense; role assignments now name the Go package as the authority. No behaviour change.

    • forgejo-api.sh: correct the layer-2 comment — the documented fallback is the only path (#737)

      config.sh was removed in #712, so config_get_default_branch is never defined and the inline yq read is all that runs. The comment named the dead branch as the common case. Code unchanged.

    • rt: derive the subcommand phase census instead of hand-writing it twice.

      No action required. The comment above var subcommands named five Phase 6, six Phase 6b and three Phase 7 verbs. The slice holds 5 + 8 + 4 + 1, and Phase 8 was missing.

      TestAllSubcommandsPresent now derives the breakdown, so its failure message names the phase that moved. The comment carries no counts. The total stays hand-written: it is the gate, and a new verb should cost a deliberate bump.

    Prune the orphaned internal/bake/testdata fixture corpus left behind when the differential bake oracle was retired.

    Delete scripts/dev-tools/migrate-releases-to-codeberg.sh (0 callers, one-time historical mirror script) and scripts/lib/wrappers.sh (superseded by internal/wrappers/discover.go; scripts/repin.sh repointed to rt consumer-wrappers). Delete tests/wrappers.bats alongside wrappers.sh; equivalent coverage lives in internal/wrappers/discover_test.go.

    Downloads