Studio Changes
📦 Generate a changelog as part of the npm version command
Usage
- Use
npm version [patch|minor|major]
to create a release - Your editor will open with a generated
CHANGES.md
file - When you're done writing the release notes, save and close the editor to continue
- To abort the release, remove the heading with the new version number
Install
$ npm install @studio/changes --save-dev
Configure
Add this to your package.json
:
{
"scripts": {
"preversion": "npm test",
"version": "changes",
"postversion": "git push --follow-tags && npm publish"
},
"devDependencies": {
"@studio/changes": "^1.0.0"
}
}
The scripts can also be added with changes --init
, if they do not exist yet:
$ node_modules/.bin/changes --init
Or with npx:
$ npx changes --init
If the "version" script already exists, this has no effect. Existing file indentation style will be preserved.
Options
--help
,-h
: Display a help message.--commits
,-c
: Generate links to commits using the given URL as base. If no URL is given it defaults to${homepage}/commit
using the homepage configured in thepackage.json
.--footer
: Generate a footer with the gut author and release date. The author name is taken from$GIT_AUTHOR_NAME
and$GIT_AUTHOR_EMAIL
is used to find the authors GitHub profile page.--file
,-f
: Specify the name of the changelog file. Defaults toCHANGES.md
.--init
: Add version lifecycle scripts topackage.json
. Can be combined with--file
and--commits
to configure thechanges
invocation.--tag
: Use a custom git tag, supports simple replacement ofpackage.json
fields. Defaults tov${version}
.
Configure your preferred editor with the $EDITOR
environment variable.
Preview changes for next release
If the current version in your package.json
is already in the changelog, the
changes
command aborts and shows the unreleased commits. Preview the release
notes for the next release like this:
$ node_modules/.bin/changes
Or with npx
:
$ npx changes
License
MIT
Made with ❤️ on 🌍