6.4.0 • Published 4 months ago

@newbish/changelog v6.4.0

Weekly downloads
-
License
MIT
Repository
github
Last release
4 months ago

@newbish/changelog

semantic-release plugin to create or update a changelog file.

Build Status npm latest version npm next version

StepDescription
verifyConditionsVerify the branch, changelogFile and changelogTitle options configuration.
prepareCreate or update a changelog file in the local project directory with the changelog content created in the generate notes step.

Install

$ npm install @newbish/changelog -D

Usage

The plugin can be configured in the semantic-release configuration file:

{
  "plugins": [
    "@semantic-release/commit-analyzer",
    "@semantic-release/release-notes-generator",
    [
      "@newbish/changelog",
      {
        "changelogFile": "docs/CHANGELOG.md",
        "branches": ["main"]
      }
    ],
    [
      "@semantic-release/git",
      {
        "assets": ["docs/CHANGELOG.md"]
      }
    ]
  ]
}

With this example, for each release, a docs/CHANGELOG.md will be created or updated.

Configuration

Options

OptionsDescriptionDefault
changelogFileFile path of the changelog.CHANGELOG.md
changelogTitleTitle of the changelog file (first line of the file).-
branchesA array of branches to write a changelog for.All branches

Examples

When used with the @semantic-release/git or @semantic-release/npm plugins the @newbish/changelog plugin must be called first in order to update the changelog file so the @semantic-release/git and @semantic-release/npm plugins can include it in the release.

{
  "plugins": [
    "@semantic-release/commit-analyzer",
    "@semantic-release/release-notes-generator",
    "@newbish/changelog",
    "@semantic-release/npm",
    "@semantic-release/git"
  ]
}

Advanced

The changelogFile and changelogTitle parameters can be dynamically generated when setup as a template.

{
  "plugins": [
    ...
    [
      "@newbish/changelog",
      {
        "changelogFile": "CHANGELOG<%= branch.name !== 'main' ? `-${branch.name}` : '' %>.md",
        "changelogTitle": "---\ntitle: Changelog<%= branch.name != 'main' ? '- Next Branch' : '' %>\n---",
        "branches": [
          "main",
          "next"
        ]
      }
    ],
    ...
    ]
}