Skip to content

plugin-changeset

@bonvoy/plugin-changeset — Optional plugin

Provides a changesets-compatible workflow. Track changes via markdown files instead of (or in addition to) conventional commits.

Installation

bash
npm install -D @bonvoy/plugin-changeset

Usage

1. Create a changeset file

bash
mkdir -p .changeset  # or .bonvoy
markdown
<!-- .changeset/add-auth.md -->
---
"@scope/core": minor
"@scope/utils": patch
---

Added user authentication to the core package.
Fixed utility helpers for token validation.

2. Release

bash
npx bonvoy shipit

The plugin reads the changeset files, applies the bumps, uses the markdown body as changelog notes, and deletes the files after release.

File Format

YAML frontmatter with package-to-bump mapping, followed by markdown description:

markdown
---
"@scope/core": minor
"@scope/utils": patch
---

Description that goes into the changelog.
Can be multi-line.

Explicit Versions

Unlike standard changesets, bonvoy supports explicit versions:

markdown
---
"@scope/core": "2.0.0"
"@scope/utils": minor
---

Breaking release with explicit version for core.

File Locations

The plugin reads from both directories (for migration compatibility):

  • .changeset/*.md
  • .bonvoy/*.md

Multiple Files

When multiple files reference the same package:

  • Bump: the highest wins (major > minor > patch)
  • Notes: all descriptions are concatenated
markdown
<!-- .changeset/feature-a.md -->
---
"@scope/core": minor
---
Added feature A

<!-- .changeset/feature-b.md -->
---
"@scope/core": patch
---
Fixed bug in feature B

Result: @scope/core gets a minor bump with both notes in the changelog.

Fallback

If a changeset file has no markdown body, the plugin falls back to conventional commits for that package's changelog notes.

Hook

HookAction
beforeShipItReads and parses changeset files
getVersionReturns bump from changeset data

Released under the MIT License.