Changelog Generation
brel changelog computes the next release version (using the same rules as brel next-version) and hands changelog generation to one of two providers. If changelog generation is disabled, or no releasable commits exist, it exits successfully without touching any files.
Configuration lives under [release_pr.changelog]:
[release_pr.changelog]enabled = true # defaultprovider = "git-cliff" # default; or "changelogen"output_file = "CHANGELOG.md" # defaultWhen changelog generation is enabled, brel release-pr stages output_file in the release commit whenever that file exists — so the changelog update ships inside the release PR.
Providers
Section titled “Providers”brel runs:
git-cliff --config cliff.toml --unreleased --tag <rendered-tag> --prepend <output_file>- Requires the
git-cliffbinary. The workflow generated bybrel initinstalls it (viataiki-e/install-action@git-cliffon GitHub,cargo install git-cliffelsewhere). - Keep a
cliff.tomlin your repository to customize grouping, formatting, and filtering — brel does not create or manage it.
brel runs:
npx --yes changelogen@<version> --to HEAD -r <next-version> --output <output_file>-
Requires
npx(Node.js). The generated workflow sets up Node 24. -
The version is pinned via config (default
0.6.2); explicit values must be valid SemVer:[release_pr.changelog]provider = "changelogen"[release_pr.changelog.changelogen]version = "0.6.2" -
brel never asks changelogen to bump versions, commit, tag, push, publish, or create releases — it is used purely as a changelog renderer.
-
Customize output with changelogen’s own config files (
changelog.config.*,.changelogrc, or thechangelogfield inpackage.json).
Disabling changelogs
Section titled “Disabling changelogs”[release_pr.changelog]enabled = falseWith changelogs disabled, brel changelog is a no-op and brel release-pr skips staging the output file.