/release-it-beautiful-changelog

Let's @unjs/changelogen to create a beautiful changelog, while Release-it takes care of all the release stuff.

Primary LanguageTypeScriptMIT LicenseMIT

release-it-beautiful-changelog

A plugin for release-it that uses @unjs/changelogen to generate beautiful change-logs and update your project's CHANGELOG.md file based on conventional commits. Leave all the release-related stuff to release-it and enjoy the beauty of our change-logs.

  • Release-it for version management, release management, publish and so on...
  • @unjs/changelogen for extracting beautiful changelog based on conventional commit

You are free to use release-it and changelogen independently and make any changes or configurations you need to them. During a new release, this plugin only calls the changelogen on-the-fly and adds the generated changelog to the CHANGELOG.md file.

Usage

Important

You must install changelogen independently and add it to your project's dependencies. This plugin will work correctly assuming changelogen is present.

Now, install this plugin using npm or pnpm:

pnpm add -D release-it-beautiful-changelog

In release-it configuration file (.release-it.json) add the release-it-beautiful-changelog plugin:

{
  "git": {
    "commitMessage": "chore: release v${version}",
    "tagName": "v${version}"
  },
  "github": {
    "release": true,
    "releaseName": "v${version}"
  },
  "npm": {
    "release": true
  },
  "plugins": {
    "release-it-beautiful-changelog": {
      "disable": false,                  // default
      "changelogFile": "./CHANGELOG.md"  // default
    }
  }
}

Example

After install plugin and add name of the plugin in release-it plugin section, you can use pnpm release-it and follow release steps to make your release. the generated changelog will be added to our CHANGELOG.md and GitHub's Release-Note (if you release it to github).

For example, the release v1.0.6 of my-typescript-library-starter was made with this command:

pnpm release   // or: pnpm run release-it

The below screenshot shows the release-it's cli interactive commands:

image