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.