5.0.0 • Published 6 months ago

@release-it/keep-a-changelog v5.0.0

Weekly downloads
827
License
MIT
Repository
github
Last release
6 months ago

Keep-a-changelog plugin for release-it

This release-it plugin maintains your CHANGELOG.md file according to the Keep A Changelog standards.

It updates the changelog automatically by:

  • replacing the ## [Unreleased] header with the current version and release date.
  • optionally adding a new ## [Unreleased] header as preparation for future changes.

It does not automatically populate the changelog with commit messages from the git history!

The idea and initial implementation comes from @eMarek.

npm install --save-dev @release-it/keep-a-changelog

In release-it config:

"plugins": {
  "@release-it/keep-a-changelog": {
    "filename": "CHANGELOG.md"
  }
}

Options

optiondefault valuedescription
filename'CHANGELOG.md'File with changelogs.
strictLatesttrueEntry of latest version must be present in order to get correct changelog. Set this option to false if you expect latest version without logs.
addUnreleasedfalseIt leaves "Unreleased" title row if set to true.
keepUnreleasedfalseIt leaves "Unreleased" title row unchanged if set to true.
addVersionUrlfalseLinks the version to the according changeset. Uses GitHub-compatible URLs by default, see other options to configure the URL format.
versionUrlFormatsSee below.Determines the version URL format when addVersionUrl is set to true. Uses GitHub-compatible URLs by default.
head'HEAD'The git revision the new version tag is compared to in the Unreleased URL.

versionUrlFormats

The URL formats used when addVersionUrl is set to true. Example configuration for a repository in Azure DevOps:

"plugins": {
  "@release-it/keep-a-changelog": {
    "filename": "CHANGELOG.md",
    "head": "main",
    "addVersionUrl": true,
    "versionUrlFormats": {
      "repositoryUrl": "https://dev.azure.com/...",
      "unreleasedUrl": "{repositoryUrl}/branchCompare?baseVersion=GT{tagName}&targetVersion=GB{head}",
      "versionUrl": "{repositoryUrl}/branchCompare?baseVersion=GT{previousTag}&targetVersion=GT{tagName}",
      "firstVersionUrl": "{repositoryUrl}?version=GT{tagName}"
    }
  }
}
optiondefault valuedescription
repositoryUrl'https://{host}/{repository}'The format of the repository URL.
unreleasedUrl'{repositoryUrl}/compare/{tagName}...{head}'The format of the [unreleased] section URL.
versionUrl'{repositoryUrl}/compare/{previousTag}...{tagName}'The format of a release version URL.
firstVersionUrl'{repositoryUrl}/releases/tag/{tagName}'The format of the first release version URL, i.e. when no previous tags have been released.