Skip to content

Changesets

A tool that tracks package changes, bumps versions, and writes changelogs, mainly for monorepos.

Stars
12.6k
Forks
861
Licence
MIT
Language
TypeScript
Last update
4 days ago
Type
Dev tool

What it is

Changesets helps teams describe their changes and then handles the release work: updating package versions, writing changelogs, and publishing. Contributors add a short changeset file that says how each change should be released. It is built with a focus on monorepos, where several packages depend on each other, and the README says the workflow can also benefit single-package repos.

  • Record a changeset describing a bug fix or feature alongside a code change
  • Bump versions across related packages in a monorepo when one dependency changes
  • Generate changelogs for each package from the recorded changesets
  • Publish updated packages as part of a release process

Great for

  • Teams maintaining a monorepo with several interdependent packages
  • Maintainers who want release notes generated from contributor-written change descriptions
  • Projects that publish packages to a registry and want versioning handled consistently

Not ideal for

  • Projects that do not publish packages and do not need versioning, since the tool is built around releases
  • People who want a fully automatic commit-message-based release flow, because the README describes contributors declaring changes explicitly
  • Anyone needing the stable v2 code, since this branch is the v3 development branch per the README
Step-by-step guide: how to use ChangesetsInstall, first run, examples, tips and FAQs

How to get it

  1. 1

    Install with a package manager

    You'll need: Node.js

    Install the CLI as a dev dependency

    npm install -D @changesets/cli
  2. 2

    Run it

    • Install @changesets/cli in your repository.
    • Run the init command to set up the configuration (see the docs at changesets.dev).
    • Add a changeset when you make a change that should be released.
    • Run the version and publish steps when you are ready to release.
  3. 3

    Get the most out of it

    • Read the documentation at changesets.dev for configuration options
    • Use changesets for both monorepos and single-package repos, as the README suggests
    • Check the package CHANGELOG files for release history before upgrading

Downloads

Strengths

  • Focused on monorepos and keeping dependent packages in sync
  • Changes are declared by contributors, so release notes come from intent rather than guesswork
  • MIT licensed and widely used, with a large star count and active development

Trade-offs

  • The repository's main branch is the v3 development branch, so the v2 maintenance branch is needed for v2 code
  • The README is truncated here, so detailed setup and configuration are not covered in this analysis
  • Requires contributors to remember to add a changeset with each change

How it compares

ProjectStarsTypeLevelUpdatedBest for
changesets (this)12.6kDev toolintermediate4 days agoTeams maintaining a monorepo with several interdependent packages
semantic-release24.1kDev toolintermediate6 days agoMaintainers of JavaScript packages who already use a CI service
lerna36kDev toolintermediate5 days agoJavaScript or TypeScript teams maintaining several related npm packages in one repository

Stats synced from GitHub. The assessment above was drafted with AI from the project's README on 2026-10-29 and may miss recent changes — check the README before relying on a command. MIT licence: free to use, modify and distribute, including commercially, as long as you keep the copyright notice.