chglog is a changelog management library and tool
While there are other tool out there that will create a changelog output as part of their workflow none of the ones I could find did so in a way that allowed formatting the output via multiple templates.
The need to multiple output formats was being driven by the desire to add changelog support to https://github.com/goreleaser/nfpm and the deb and rpm changelog formats not being the same.
- be simple to use
- provide decent default templates for deb, rpm, release, and repo style changelog formats
- be distributed as a single binary
- reproducible results
- depend on the fewer external things as possible
- store changelog in a transportable format (.yml)
- be possible to use it as a lib in other go projects (namely [goreleaser] itself)
go get github.com/goreleaser/chglog/cmd/chglog
The first steps are to run
chglog config to initialize a config file (
.chglog.yml) and edit the generated file according to your needs:
conventional-commits: false deb: distribution:  urgency: "" debug: false owner: "" package-name: ""
The next step is to run
- semver: 0.0.1 date: 2019-10-18T16:05:33-07:00 packager: dj gilcrease <[email protected]> changes: - commit: 2c499787328348f09ae1e8f03757c6483b9a938a note: |- oops i forgot to use Conventional Commits style message This should NOT break anything even if I am asking to build the changelog using Conventional Commits style message - commit: 3ec1e9a60d07cc060cee727c97ffc8aac5713943 note: |- feat: added file two feature BREAKING CHANGE: this is a backwards incompatible change - commit: 2cc00abc77d401a541d18c26e5c7fbef1effd3ed note: |- feat: added the fileone feature * This is a test repo * so ya!
Then to generate a
CHANGELOG.md file you would do
chglog format --template repo > CHANGELOG.md
Now whenever you goto do another release you would do
chglog add --version v#.#.# (version MUST be semver format)
And that's it!
Usage as lib
You can look at the code of chglog itself to see how to use it as a library
Donations are very much appreciated! You can donate/sponsor on the main goreleaser opencollective! It's easy and will surely help the developers at least buy some
Stargazers over time
Would you like to fix something in the documentation? Feel free to open an issue.