Skip to content

Features ​

  • ✨ No manual steps[1]
    • release from anywhere[2]
  • 🤖 Everything is automated via GH Action Workflows[3]
  • 🔐 No need to give maintainers access to npm[4]
  • đŸ“Ļ PNPM and monorepo support by default
    • also supports non-pnpm repos
  • 🚀 Release preview PR
    • release via merge of the release preview PR
  • 📝 Automatic changelog
    • changelog entries editable by editing PR titles

Comparison ​

Note that we take the stance of reducing friction for new contributors (regardless of how new to GitHub they are), we want to optimize for the contribution, and assume that maintainers can handle a little bit of process -- and with this stance, changesets is the most work out of this comparison.

Additionally, this comparison assumes the recommended configuration for each release tool.

release-planrelease-it (requires computer)changesets (requires computer)
add a label to a PRsamehave the repo cloned
merge the PRsameadd the remote of the PR-submitter to your local git
checkout the branch
run pnpm changeset
write something about the change
push it back up to the PR-submitter's branch
ensure the PR title is what you want in the changelogsame
have the repo cloned
update / sync repo locally
run npx release -it
automation creates a preview PRsame
merging that preview PR does the actual releasesame

Needed Access:

release-planrelease-itchangesets
NPM_TOKENonly cilocalonly ci
GH_TOKENonly cilocalonly ci

Note that while it's recommended to use release-plan with full automation, release-plan can be used locally, as described in the Manual Installation section of this README.

Summary:

release-planrelease-itchangesets
number of steps568
Downsidesn/a
  • maintainers need admin access to both GitHub and NPM
  • requires a computer
  • requires push access to the submitter's PR, or potentially risk losing steam from the contributor to ask them to create the changeset
  • more up-front work required per change/PR
  • hard to go back and add a changeset and have it associated with the PR correctly (maybe impossible), so forgetting to add changesets pre-merge can totally ruin the accuracy of changeset's changelog
  • requires a computer

  1. after initial setup, which is already mostly automated. â†Šī¸Ž

  2. You can release from bed, the mall, the porcelain, anywhere! No need for a computer! (assuming you have a smart phone) â†Šī¸Ž

  3. While GitHub Actions is the default setup via create-release-plan-setup â†Šī¸Ž

  4. The NPM token can be granular, and the package needs to have its "Publishing access" configured to either "Don't require two-factor authentication" or, "Require two-factor authentication or an automation or granular access token" (recommended). This can be configured under https://www.npmjs.com/package/{package-name}/access â†Šī¸Ž