• v0.4.0 5f4812d76f

    Release v0.4.0
    All checks were successful
    manifest-check / manifest-vs-tag consistency (pull_request) Successful in 4s
    manifest-check / check (pull_request) Successful in 0s
    release / decide + act (push) Recovered via manual manifest push at 595c10f (see #78)
    release / release (push) Recovered via manual manifest push at 595c10f (see #78)
    Stable

    Ghost released this 2026-06-25 22:19:43 +02:00 | 1423 commits to main since this release

    Added

    Push-triggered rolling-release-PR mechanic — v0.4.0 replaces the v0.3.x operator-dispatched prep flow with a push: branches: [main] trigger backed by a committed .release-toolkit-manifest.json state file and a shell-based decision engine (scripts/release-decide.sh). On every push to main, the workflow walks git log <last_released_sha>..HEAD and decides one of three modes: noop (no release-relevant content), update (refresh the rolling release-prep PR with the accumulated bump), or cut (the operator merged the rolling PR — fire draft-release.sh + commit-and-push the manifest update). The substrate-honest escape from the Forgejo Actions expression-engine bug (#41 / #47) that constrained the v0.3.x flow — no ${{ github.event.* }} / ${{ forgejo.event.* }} accesses on the load-bearing path.

    Fixed

    • scripts/release-prep.sh: DRY_RUN_INPUT/DRY_RUN_ENV env-var sources now use truthy semantics — the literal string "false" no longer falsely enables dry-run (closes #70).
    • scripts/release-prep.sh + .forgejo/workflows/_release.yml: defensive git identity setup before git commit — works on fresh CI runner containers without pre-configured git config; configurable via RELEASE_TOOLKIT_GIT_NAME / RELEASE_TOOLKIT_GIT_EMAIL env vars; consumer-provided config preserved (closes #73).
    Downloads