Customizable release-notes-generator plugin for semantic-release based on conventional-changelog
By default release-notes-generator
uses the angular
format described in Angular convention.
Additional options can be set within the plugin definition in package.json
to use a different commit format and to customize it:
{
"release": {
"generateNotes": {
"preset": "angular",
"parserOpts": {
"noteKeywords": ["BREAKING CHANGE", "BREAKING CHANGES", "BREAKING"]
},
"writerOpts": {
"commitsSort": ["subject", "scope"],
}
}
}
}
Option | Description | Default |
---|---|---|
preset |
conventional-changelog preset (Possible values: angular , atom , codemirror , ember , eslint , express , jquery , jscs , jshint ). |
angular |
config |
NPM package name of a custom conventional-changelog preset. | - |
parserOpts |
Additional conventional-commits-parser options that will extends ones loaded by preset or config . See Parser options. |
- |
writerOpts |
Additional conventional-commits-writer options that will extends ones loaded by preset or config . See Writer options. |
- |
NOTE: options.config
will be overwritten by the values of preset. You should use either preset
or config
, but not both. Individual properties of parserOpts
and writerOpts
will overwrite ones loaded with preset
or config
.
Allow to overwrite specific conventional-commits-parser options. This is convenient to use a conventional-changelog preset with some customizations without having to create a new module.
The following example uses Angular convention but will consider a commit to be a breaking change if it's body contains BREAKING CHANGE
, BREAKING CHANGES
or BREAKING
. By default the preset checks only for BREAKING CHANGE
and BREAKING CHANGES
.
{
"release": {
"generateNotes": {
"preset": "angular",
"parserOpts": {
"noteKeywords": ["BREAKING CHANGE", "BREAKING CHANGES", "BREAKING"],
}
}
}
}
Allow to overwrite specific conventional-commits-writer options. This is convenient to use a conventional-changelog preset with some customizations without having to create a new module.
The following example uses Angular convention but will sort the commits in the changelog by subject
then scope
. By default the preset sort the commits in the changelog by scope
then subject
.
{
"release": {
"generateNotes": {
"preset": "angular",
"writerOpts": {
"commitsSort": ["subject", "scope"],
}
}
}
}
The plugin is used by default by semantic-release so installing it is not necessary and all configuration are optionals.