kacl

Keep a Changelog tooling

Usage no npm install needed!

<script type="module">
  import kacl from 'https://cdn.skypack.dev/kacl';
</script>

README

Keep a Changelog tooling

npm (scoped) NPM

Tooling to facilitate the linting and management of a changelog conforming to the Keep a Changelog spec.

Heavily inspired by: @brightcove/kacl.

Commands

kacl add <added | changed | deprecated | removed | fixed | security> [text]

kacl add added [change]

Insert a added change in the unreleased version.

Positionals:
  change  The description of the change                                 [string]

Options:
  --version   Show version number                                      [boolean]
  --help      Show help                                                [boolean]
  --filename  The name of the changelog file to write  [default: "CHANGELOG.md"]

Hint: Make sure that you quote your change as a single shell string (ie: kacl
add added "Change text"). Note that if no change text is provided you will be
prompted to enter such text in your $EDITOR of choice.

kacl init

kacl init

Initialize an empty CHANGELOG.md

Options:
  --version   Show version number                                      [boolean]
  --help      Show help                                                [boolean]
  --filename  The name of the changelog file to write  [default: "CHANGELOG.md"]
  --force     Overwrite an existing file, if it exists.                [boolean]

kacl lint

kacl lint

Check the format of your changelog

Options:
  --version   Show version number                                      [boolean]
  --help      Show help                                                [boolean]
  --filename  The name of the changelog file to write  [default: "CHANGELOG.md"]

Hint: You should consider adding this as your posttest command in package.json.

kacl prerelease

kacl prerelease

Check the requirements for creating a release

Options:
  --version   Show version number                                      [boolean]
  --help      Show help                                                [boolean]
  --filename  The name of the changelog file to write  [default: "CHANGELOG.md"]

Hint: You should consider adding this as your prerelease command in
package.json.

kacl release

kacl release

Create a new release

Options:
  --version   Show version number                                      [boolean]
  --help      Show help                                                [boolean]
  --filename  The name of the changelog file to write  [default: "CHANGELOG.md"]

Hint you should consider adding the following as your version script in
package.json: kacl release && git add CHANGELOG.md

Recommended configuration in package.json

{
  "scripts": {
    "posttest": "kacl lint",
    "preversion": "kacl prerelease",
    "version": "kacl release && git add CHANGELOG.md"
  }
}

This workflow fits will with gh-release. The following is the recommended configuration:

{
  "scripts": {
    "posttest": "kacl lint",
    "preversion": "kacl prerelease",
    "version": "kacl release && git add CHANGELOG.md",
    "postversion": "git push && gh-release"
  }
}