Skip to content

Single Package Guide ​

bonvoy works great for single-package repos too.

Setup ​

bash
npm install -D bonvoy

No config file needed.

Release ​

bash
# Automatic bump from commits
npx bonvoy shipit

# Or force a bump
npx bonvoy shipit patch
npx bonvoy shipit minor
npx bonvoy shipit 1.0.0

What Happens ​

  1. Reads commits since the last git tag
  2. Determines the bump from conventional commits
  3. Updates package.json version
  4. Generates/updates CHANGELOG.md
  5. Commits, tags, pushes
  6. Publishes to npm
  7. Creates a GitHub release

Tag Format ​

For single packages, you might prefer simpler tags:

javascript
// bonvoy.config.js
export default {
  tagFormat: 'v{version}',  // v1.2.0 instead of my-package@1.2.0
};

GitHub Actions ​

yaml
name: Release
on:
  workflow_dispatch:
    inputs:
      bump:
        description: 'Version bump'
        required: false

jobs:
  release:
    runs-on: ubuntu-latest
    permissions:
      contents: write
      id-token: write
    steps:
      - uses: actions/checkout@v6
        with:
          fetch-depth: 0
      - uses: actions/setup-node@v6
        with:
          node-version: 22
          registry-url: 'https://registry.npmjs.org'
      - run: npm ci
      - run: npx bonvoy shipit ${{ github.event.inputs.bump }}
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

Released under the MIT License.