Created by: fson
Lerna Changelog allows us to generate a scaffold for the changelog, a list of changes with all the PR and contributor links in place, from labeled GitHub pull requests.
I added the following labels (inspired by Babel's change log which is also made with Lerna Changelog).
-
tag: new feature
:🚀 New Feature – Features added in this release. -
tag: breaking change
:💥 Breaking Change – Breaking changes should be accompanied with a migration guide for users in the change log. -
tag: bug fix
:🐛 Bug Fix -
tag: enhancement
:💅 Enhancement – Changes to existing features. -
tag: documentation
:📝 Documentation – Contributions to docs can also be credited in the change log now. -
tag: internal
:🏠 Internal – Any internal house keeping / refactoring / infra change that doesn't affect the public interface of the tools.
Any merged pull request should be tagged with one these labels so it's picked up for change log in the next release. Lerna Changelog also detects which packages were affected by each change and shows this in the log.
This saves a lot of time when doing releases because a large part of the manual work is done automatically. It's still very important to write good descriptions of the changes in the change log, because it's a document meant to be read by humans, not just a list of commits. But having the bulk of the log generated by this tool gives us more time to focus on authoring these descriptions.