Reading a markdown file with the progress in the project is easier than reading a commit log.
Automatic changelog generation from commit messages is a fairly common pattern nowadays. There is a project called conventional-changelog that generates a changelog from commit messages that follow a convention.
The most common convention is the angular commit messages convention which is detailed here.
- Install:
npm install standard-version -D
- Add a
script
target to yourpackage.json
:
{
"scripts": {
"release": "standard-version"
}
}
- Optionally : To automatically push the new git commit and tag plus publish to npm add a
postrelease
script:
{
"scripts": {
"release": "standard-version",
"postrelease": "git push --follow-tags origin master && npm publish"
}
}
Simply run:
npm run release
Based on the commit messages major
| minor
| patch
is automatically determined. To explicitly specify a version you can specify --release-as
e.g.:
npm run release -- --release-as minor