-
v1.0.0 Stable
released this
2026-09-04 13:33:05 +00:00 | 67 commits to main since this releaseFirst release. The candidates that preceded it were staging posts and are not
recorded separately: nothing consumed them but this repository.Added
- A GitHub Action, and a command, that reads a Keep a Changelog document and
reports where it departs from the format. Each finding lands as a workflow
annotation on the offending line of the diff. Run with no argument it
validatesCHANGELOG.md. - Thirteen checks, each with a name that appears in the finding, in the
annotation's title, and in the flags that reconfigure it.-list-checks
prints the register, and the README's table is generated from that same
register with CI failing on a stale copy, so the documentation cannot
disagree with the binary. - Severity is the practitioner's, not the tool's.
-error,-warnand
-offmove a named check, and-fail-on error|warning|neverdecides what
turns the step red. A check that catches a defect is an error by default; a
check that encodes a policy is off by default, because a policy check's
absence is the majority case being correct. - Six outputs, written to
$GITHUB_OUTPUTand printed on stdout for a local
run:valid,version,notes,already-tagged,prereleaseand
latest-tag. Every one is something the action read, never a convention it
chose: nothing proposes how to spell a tag, because that belongs to whatever
cuts them.notesis the entry body verbatim, under a delimiter drawn at
random per value so that a changelog cannot declare outputs of its own. - One reference tag behind every tag-dependent check and behind
latest-tag: the newest version tag reachable from HEAD, which is what
git describe --tagsnames. Reachability takes no setting, because a tag on a
branch the checkout is not on is never the right baseline, and it is what lets
a maintained support line compare against its own last release rather than
another line's.reference-tags: final|alldecides whether a pre-release may
serve as one, defaulting tofinal. A repository that tags no pre-release
reads the same under either setting. - Checks that read the repository as well as the document:
no-git-tagsfor a
checkout whose tag history cannot be read,version-behind-tagfor a newest
entry behind the reference tag, andrelease-entry-modifiedand
prerelease-entry-modifiedfor a released entry that has changed or gone
since it. A released entry is immutable; an entry added for a version already
tagged is not, because recording history nobody wrote down is a repair rather
than a rewrite. - A Docker container action on a
scratchbase, published forlinux/amd64and
linux/arm64. It reads git through go-git rather than by shelling out, so the
image carries the binary and nothing else. examples/carries one worked policy: a changelog written to it,
the two workflow invocations that enforce it, and a deliberately broken copy.
A test resolves the inputs out of those workflow files and runs the linter
under them, so the example is executed rather than described.- This repository releases itself with its own action. A push to
mainruns
the action against this changelog and, where it names a version no tag
carries, publishes the image, cuts the tag and creates the release from
notes. Release candidates are cut from the pull request instead, so a
candidate can be pulled and tested before it merges, and one reachingmain
is refused rather than published.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- A GitHub Action, and a command, that reads a Keep a Changelog document and