CLI utility for automatic update of CHANGELOG.md
.
Increasing the version of a package usually requires creating a commit (extra for history) with a message something like Prepare release
. This commit should manually add a header to CHANGELOG.md
with the new version and the release date, and change the links to the comparison at the bottom of the file.
The update-changelog
utility gets rid of this chore, random typos, and an unnecessary commit.
pnpm add -D @firefoxic/update-changelog
In the scripts
section of your package.json
, add a version
hook that will run when pnpm version patch
(or minor
, or major
) is executed after updating the version in package.json
, but before creating the commit.
{
"scripts": {
"version": "update-changelog"
},
}
Optionally, other hooks can be added to conveniently automate package publishing (see package.json
of this project for an example).
The update-changelog
expects the following:
-
The name of the changelog file is
CHANGELOG.md
. -
The format of the changelog is consistent with Keep a changelog.
-
Descriptions of all user-important changes are already in the changelog under the heading
[Unreleased]
. Ideally, you should commit them along with the changes themselves. -
If this is the first release of a package, there should be only one reference for [Unreleased] at the end of the changelog in the following format for correct reference updating:
[Unreleased]: https://github.com/<user-name>/<project-name>/compare/v0.0.1...HEAD
Example: the state of this project's changelog before the first release.
When publishing a new version, simply do not create the Prepare release
commit.
Running pnpm version patch
(or minor
, or major
) will now do everything for you 🥳