chglog
chglog is a changelog management library and tool
Why
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.
Goals
- be simple to use
- provide decent default templates for deb, rpm, release and repository 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)
Install
go get github.com/goreleaser/chglog/cmd/chglog
Usage
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 chglog init
.
- 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
Status
- alpha
Donate
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.