README.md
January 24, 2024 ยท View on GitHub
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 install github.com/goreleaser/chglog/cmd/chglog@latest
Usage
The first steps are to run chglog config to initialize a configuration file
(.chglog.yml) and edit the generated file according to your needs:
conventional-commits: false
exclude-merge-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 <example@example.com>
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 go to 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 โ๏ธ or ๐บ!
Stargazers over time
Would you like to fix something in the documentation? Feel free to open an issue.