Releases: C2FO/releasegen
Releases · C2FO/releasegen
[v1.2.2] - 2026-06-22
Documentation
- Added badges to README.md
[v1.2.1] - 2026-06-19
Fixed
releasegen validate --require-changelog-entrynow folds staged
index changes into its diff against the base ref. Without this, the
check was a no-op under pre-commit hooks (e.g. prenup), because HEAD
is still the parent commit at that moment and a tree-only diff sees
nothing. Local pre-commit checks now catch missing[Unreleased]
entries just as reliably as CI does on a pushed commit. Unstaged
worktree edits and untracked files are deliberately excluded so
unrelated local dirt (build artifacts, half-finished edits, scratch
files) cannot cause false failures, and so the changed-file set
matches whatFileAtIndexreads for the next-commit comparison.releasegen validate --require-changelog-entrynow compares the
[Unreleased]section as it appears in the git index (the staged
view of the next commit) rather than the working tree. Previously, a
developer who editedCHANGELOG.mdbut forgot togit addit would
see the pre-commit check pass — the worktree had the new entry — even
though the commit being created did not, leaving the gap to be caught
only in CI. The check now predicts the post-commit state correctly:
unstaged changelog edits no longer satisfy the requirement, and
git commit -akeeps working because git stages worktree changes
before pre-commit hooks run.
[v1.2.0] - 2026-06-18
Added
- New
releasegen validatesubcommand. Parses every## [Unreleased]section
in the repository and reports every malformed heading it finds — both
across files and within a single file — in a single batched report. Detects
### Changed/### Removedwithout theBREAKING CHANGEmarker as well
as any heading not declared incustom_change_types, naming the offending
heading in each error. Needs no GitHub token, performs no I/O beyond reads,
and exits0on success /2on any validation failure — intended as a
required PR-time check before the release workflow. - New
.releasegen.yaml(also.releasegen.yml) config file at the repo root.
Supportscustom_change_types,exclude_dirs, avalidate:block (see
below), and the advancedself_release_module/self_release_repo
overrides. Precedence is flags > env > file > built-in defaults; unknown
keys cause a configuration error so typos surface early. Bothvalidate
and the existing release path read it, so repo-shape options no longer
have to be duplicated across workflows. - New optional
--require-changelog-entrymode forreleasegen validate
(also exposed asvalidate.require_changelog_entry: truein
.releasegen.yamlandRELEASEGEN_REQUIRE_CHANGELOG_ENTRY=truein the
environment). When enabled, validate fails any PR whose non-CHANGELOG.md
files changed vs the base ref but whose[Unreleased]section gained no
new lines. Modules are scoped by whereCHANGELOG.mdlives, with the
root changelog catching every file not claimed by a submodule changelog.
The base ref is configurable via--base-ref/RELEASEGEN_BASE_REF/
validate.base_refand defaults toorigin/$GITHUB_BASE_REFon GitHub
Actions pull-request runs, elseorigin/main. Subsumes the prior
externalensure_changelogworkflow, which has been removed from this
repository in favor of the validate-driven check.
Fixed
- Classifier no longer treats
###heading references in prose as real
markdown headings. The internalheading3Prefixregex is now anchored
to the start of a line (multiline mode), and fenced code blocks are
stripped from[Unreleased]bodies before classification. Before this
fix, an### Addedentry whose body documented### Changed/### Removed
in an inline code span — and happened to mentionBREAKING CHANGEwhile
describing the marker rule — would be misclassified as a major bump.
ValidateSectionbenefits from the same protection.
[v1.1.1] - 2026-06-18
Documentation
- Documented the classic-branch-protection setup gap in the GitHub App Setup
section: the app must be added to both the "Allow specified actors to bypass
required pull requests" list and the "Restrict who can push" allowlist, or
the push fails withprotected branch hook declined. Rulesets only need a
single bypass entry.
[v1.1.0] - 2026-06-18
Security
- Update dependenices to resoolve dependabot security alerts
[v1.0.1] - 2026-06-17
Fixed
- Added a step that computes a lowercased image name once using bash parameter expansion
[v1.0.0] - 2026-06-17
Fixed
- Self-release detection now recognizes releasegen running from the repository
root.RELEASEGEN_SELF_MODULEdefaults to the root module (empty path) and the
feature is gated onRELEASEGEN_SELF_REPO, so the released version is printed
to stdout and downstream steps (e.g. the Docker build/push) are no longer skipped.
Changed
- BREAKING CHANGE - No change, just bumping to v1.0.0.
[v0.1.0] - 2026-06-16
Added
- Initial release of the project.