GitHub - semantic-release/release-notes-generator: 📋 semantic-release plugin to generate changelog content with conventional-changelog (original) (raw)
release-notes-generator
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. |
Install
Tip
You do not need to directly depend on this package if you are using semantic-release
.semantic-release
already depends on this package, and defining your own direct dependency can result in conflicts when you update semantic-release
.
$ npm install @semantic-release/release-notes-generator -D
Usage
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"] } } ], [ "@semantic-release/release-notes-generator", { "preset": "angular", "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
)
Configuration
Options
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. |
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 ////<commit_sha>). See conventional-changelog-writer#commit. | commits for Bitbucket repositories, commit otherwise |
issue | Keyword used to generate issue links (formatted as ////<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.