• v0.2.0 a521998dba

    quartermaster released this 2026-06-24 16:55:53 +02:00 | 1644 commits to main since this release

    Fixed

    • runs_on is now a required workflow_call input on all 4 reusable workflows (_release-prep.yml / _release-draft.yml / _release-publish.yml / _manifest-check.yml). v0.1.0 hard-coded runs-on: docker, which isn't a valid label in most Forgejo runner configurations — including the one this toolkit was developed against — so the reusables would never schedule. Consumers MUST now specify runs_on: <label> matching a runner label that exists in their Forgejo config. BREAKING for v0.1.0 consumers (no consumers existed at v0.1.0 release time, so practical blast radius is zero); update with: blocks to include runs_on: when pinning to @v0.2.0. See docs/integration.md.

    • Defensive newline normalization in fragments.sh::categorize_fragments. Hard-wrapped fragment bullets (where authors wrap at ~70 chars instead of writing single-line bullets per docs/conventions.md) get collapsed to single-line bullets BEFORE the CHANGELOG.md / PR body / release body sees them. State machine preserves blank-line paragraph separators, code fences (including indented fences inside bullets), and column-0 unit boundaries. The convention in docs/conventions.md is now defensive rather than advisory — authors who follow it still produce cleaner sources, authors who slip get correct output anyway.

    Downloads
  • v0.1.0 1dd132018f

    quartermaster released this 2026-06-24 15:31:24 +02:00 | 1651 commits to main since this release

    First release.

    Added

    • The first release of release-toolkit — a shared, Forgejo-native release pipeline you reference instead of copy-pasting release machinery into every repo. It cuts releases, transitions your CHANGELOG, and runs a CI check that catches version-number drift. Consumers reference frankenbit/release-toolkit/.forgejo/workflows/_*.yml@v0.1.0 to adopt the full release flow — with human-approval gates at each stage — without copy-pasting the machinery. See docs/integration.md for the 4-step adoption guide and docs/conventions.md for the conventional-commits + changelog.d/ fragment formats.
    • Two ways to write your CHANGELOG, mixable: conventional commits (feat: / fix: / feat!: / etc.) read from git log, and hand-written changelog.d/<id>.<kind>.md fragment files. Use either or both; the toolkit merges them so a section heading never appears twice. See ADR-0002 for the both-mechanisms reasoning.
    • Multi-stage release flow with human-approval gates at each stage: workflow_dispatch → release-prep PR → Forgejo draft release → operator clicks Publish → release:published event → deploy. Four reusable Forgejo Actions workflows (_release-prep.yml + _release-draft.yml + _release-publish.yml + _manifest-check.yml) implement the four gates. See ADR-0003 for the design reasoning.
    • Built-in manifest-vs-tag CI check via _manifest-check.yml — runs on every PR and catches the usual release-prep mistakes: version numbers out of sync across files, a missing [Unreleased] heading, or a manifest left behind the latest tag. The "manifest >= tag, not strict equality" disposition (see scripts/manifest-check.sh --help) prevents false-positives on every legitimate release-prep PR.
    • Dry-run + operator preview: --dry-run skips remote mutations (no git push, no Forgejo PR creation) but DOES perform local CHANGELOG transitioning + version_file bumps + fragment deletion, so you can preview exactly what a release will do — the full git diff and the API payload — before anything runs. See docs/operations.md for the operator-preview disposition.

    The toolkit ships as bash scripts plus 4 reusable Forgejo Actions workflows; 179 unit + integration tests cover the substrate, shellcheck-clean throughout.

    Fixed

    • changelog_transition now merges sections by kind so a section heading never appears twice in a new release section when both the [Unreleased] content and the fragments contribute the same kind.

    Internal

    • Extracted the version-section extraction logic into a reusable library helper for use by both release-prep.sh and draft-release.sh.
    Downloads