1. @release-it/keep-a-changelog
Keep-a-changelog plugin for release-it
@release-it/keep-a-changelog
Package: @release-it/keep-a-changelog
Created by: release-it
Last modified: Sat, 11 Nov 2023 14:57:19 GMT
Version: 5.0.0
License: MIT
Downloads: 35,557
Repository: https://github.com/release-it/keep-a-changelog

Install

npm install @release-it/keep-a-changelog
yarn add @release-it/keep-a-changelog

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

option default value description
filename 'CHANGELOG.md' File with changelogs.
strictLatest true Entry of latest version must be present in order to get correct changelog. Set this option to false if you expect latest version without logs.
addUnreleased false It leaves "Unreleased" title row if set to true.
keepUnreleased false It leaves "Unreleased" title row unchanged if set to true.
addVersionUrl false Links the version to the according changeset. Uses GitHub-compatible URLs by default, see other options to configure the URL format.
versionUrlFormats See 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}"
    }
  }
}
option default value description
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.

RELATED POST

10 Must-Know Windows Shortcuts That Will Save You Time

10 Must-Know Windows Shortcuts That Will Save You Time

Arrays vs Linked Lists: Which is Better for Memory Management in Data Structures?

Arrays vs Linked Lists: Which is Better for Memory Management in Data Structures?

Navigating AWS Networking: Essential Hacks for Smooth Operation

Navigating AWS Networking: Essential Hacks for Smooth Operation

Achieving Stunning Visuals with Unity's Global Illumination

Achieving Stunning Visuals with Unity's Global Illumination

Nim's Hidden Gems: Lesser-known Features for Writing Efficient Code

Nim's Hidden Gems: Lesser-known Features for Writing Efficient Code