Skip to content

Migration Guide

Moving to bonvoy from another release tool? Here's how.

From Changesets

What Changes

Changesetsbonvoy
npx changeset to create change fileConventional commits (no files needed)
npx changeset version to bumpnpx bonvoy shipit does everything
npx changeset publish to publishIncluded in shipit
.changeset/ directory requiredNo change files by default
PR workflow mandatoryDirect release or PR — your choice

Steps

  1. Install bonvoy:

    bash
    npm install -D bonvoy
    npm uninstall @changesets/cli @changesets/changelog-github
  2. Remove changeset config:

    bash
    rm -rf .changeset
  3. Update CI workflow — replace changeset commands with:

    bash
    npx bonvoy shipit
  4. Start using conventional commits:

    bash
    git commit -m "feat: add new feature"   # instead of creating a changeset file

Want to Keep Change Files?

Install @bonvoy/plugin-changeset — it reads .changeset/*.md files in the same format:

bash
npm install -D @bonvoy/plugin-changeset

bonvoy reads both .changeset/ and .bonvoy/ directories.

From semantic-release

What Changes

semantic-releasebonvoy
Fully automatic on every pushYou decide when to release
Complex plugin configSensible defaults, minimal config
.releaserc with plugin chainsbonvoy.config.js (optional)
No monorepo supportMonorepo-native

Steps

  1. Install bonvoy:

    bash
    npm install -D bonvoy
    npm uninstall semantic-release @semantic-release/*
  2. Remove semantic-release config:

    bash
    rm .releaserc .releaserc.json .releaserc.yml
  3. Update CI — replace npx semantic-release with:

    bash
    npx bonvoy shipit

Your conventional commits work the same way. No changes to your commit workflow.

From release-it

What Changes

release-itbonvoy
Interactive promptsNon-interactive (CI-friendly)
No monorepo supportMonorepo-native
.release-it.json configbonvoy.config.js (optional)
Manual version selectionAutomatic from commits or forced

Steps

  1. Install bonvoy:

    bash
    npm install -D bonvoy
    npm uninstall release-it @release-it/*
  2. Remove release-it config:

    bash
    rm .release-it.json .release-it.js
  3. Update CI and scripts:

    bash
    npx bonvoy shipit          # automatic bump
    npx bonvoy shipit minor    # force minor (like release-it prompt)

From release-please

What Changes

release-pleasebonvoy
PR-only workflowDirect or PR — your choice
GitHub App or ActionSimple CLI
release-please-config.jsonbonvoy.config.js (optional)
Complex manifest configZero config for common cases

Steps

  1. Install bonvoy:

    bash
    npm install -D bonvoy
  2. Remove release-please config:

    bash
    rm release-please-config.json .release-please-manifest.json
  3. Remove the release-please GitHub Action and replace with:

    yaml
    - run: npx bonvoy shipit
      env:
        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

If you want to keep the PR workflow:

javascript
// bonvoy.config.js
export default {
  workflow: 'pr',
};

Released under the MIT License.