semantic-release plugin to generate changelog content with conventional-changelog
Step | Description |
---|---|
generateNotes |
Generate release notes for the commits added since the last release with conventional-changelog. |
$ npm install @semantic-release/release-notes-generator -D
The plugin can be configured in the semantic-release configuration file:
{
"plugins": [
[
"@semantic-release/commit-analyzer",
{
"preset": "angular",
"parserOpts": {
"noteKeywords": ["BREAKING CHANGE", "BREAKING CHANGES", "BREAKING"]
}
}
],
[
"@phpboyscout/scoped-release-notes-generator",
{
"preset": "angular",
"scope": "frontend",
"parserOpts": {
"noteKeywords": ["BREAKING CHANGE", "BREAKING CHANGES", "BREAKING"]
},
"writerOpts": {
"commitsSort": ["subject", "scope"]
}
}
]
]
}
With this example:
- the commits that contains
BREAKING CHANGE
,BREAKING CHANGES
orBREAKING
in their body will be considered breaking changes (by default the angular preset checks only forBREAKING CHANGE
andBREAKING CHANGES
) - the commits will be sorted in the changelog by
subject
thenscope
(by default the angular preset sort the commits in the changelog byscope
thensubject
)
Option | Description | Default |
---|---|---|
preset |
conventional-changelog preset (possible values: angular , atom , codemirror , ember , eslint , express , jquery , jshint , conventionalcommits ). |
angular |
config |
NPM package name of a custom conventional-changelog preset. | - |
parserOpts |
Additional conventional-commits-parser options that will extends the ones loaded by preset or config . This is convenient to use a conventional-changelog preset with some customizations without having to create a new module. |
- |
writerOpts |
Additional conventional-commits-writer options that will extends the ones loaded by preset or config . This is convenient to use a conventional-changelog preset with some customizations without having to create a new module. |
- |
host |
The host used to generate links to issues and commits. See conventional-changelog-writer#host. | The host from the repositoryurl option. |
scope |
The scope that commits should be in order to be included in the release notes. | |
linkCompare |
Whether to include a link to compare changes since previous release in the release note. | true |
linkReferences |
Whether to include a link to issues and commits in the release note. See conventional-changelog-writer#linkreferences. | true |
commit |
Keyword used to generate commit links (formatted as <host>/<owner>/<repository>/<commit>/<commit_sha> ). See conventional-changelog-writer#commit. |
commits for Bitbucket repositories, commit otherwise |
issue |
Keyword used to generate issue links (formatted as <host>/<owner>/<repository>/<issue>/<issue_number> ). See conventional-changelog-writer#issue. |
issue for Bitbucket repositories, issues otherwise |
presetConfig |
Additional configuration passed to the conventional-changelog preset. Used for example with conventional-changelog-conventionalcommits. | - |
Notes: in order to use a preset
it must be installed (for example to use the eslint preset you must install it with npm install conventional-changelog-eslint -D
)
Note: config
will be overwritten by the values of preset
. You should use either preset
or config
, but not both.
Note: Individual properties of parserOpts
and writerOpts
will override ones loaded with an explicitly set preset
or config
. If preset
or config
are not set, only the properties set in parserOpts
and writerOpts
will be used.
Note: For presets that expects a configuration object, such as conventionalcommits
, the presetConfig
option must be set.