Changesets v3: ESM-Only, Smaller Installs, and Improved Peer Deps

Changesets 3.0 has officially launched, delivering the first major version update for the popular JavaScript monorepo versioning and changelog tool in seven years, according to maintainers Mateusz Burzyński, Bjorn Lu, and Adam Haglund.

Install Size Reductions and Modernized Node Requirements

According to the project release documentation, all packages in Changesets 3.0 are now ECMAScript Modules (ESM) only and require Node.js 22.11 or newer. Furthermore, teams must run pnpm 10, npm 10.9, or Yarn 4.5.2 as a minimum, with Yarn Classic officially dropped by the maintainer team. This cleanup dramatically reduced the total install size from 16.1MB down to 2.1MB, while cutting dependencies from 95 to 39.

Internal tooling also shifted during the v3 development cycle. According to the release notes, the project moved to tsdown, rolldown, vitest, and oxfmt. Changelog formatting no longer pulls in its own dedicated copy of Prettier; instead, the new @changesets/format package automatically detects Prettier, oxfmt, deno, or dprint within the host project.

Pro Tip: Upgrading to Changesets 3.0 requires configuration updates. Prettier settings must be replaced with the new format configuration key, and private packages are no longer versioned by default unless explicitly opted back in.

Peer Dependency Debates and Competitor Analysis

According to the project maintainers, every peer dependency change is now assumed to be non-breaking. However, authors of Bumpy, a recently launched competing tool, note that v3 “hardcodes the opposite extreme” and point out that neither version currently lets developers configure propagation.

Despite these criticisms, the Bumpy team’s public comparison credits Changesets 3.0 with fixing many long-standing community complaints. At the same time, the comparison highlights remaining gaps, such as a lack of pnpm catalog support and an unchanged prerelease design.

Rebuilt CLI Architecture and New Commands

The underlying architecture of the Changesets CLI received a complete rewrite for v3. Argument parsing now relies on cac, while interactive prompts use clack, a change that successfully fixes an issue where cancelled prompts would crash the entire process. New pack and publish-plan commands were added to support the build, pack, and publish sequence recommended by the e18e community.

Did You Know? The changesets/action v2 now exposes sub-actions, allowing teams utilizing npm trusted publishing to tightly restrict and narrow their publish permissions in CI pipelines.

Frequently Asked Questions

What are the minimum environment requirements for Changesets 3.0?

According to the official release details, Changesets 3.0 requires Node.js 22.11 or newer, alongside pnpm 10, npm 10.9, or Yarn 4.5.2.

How has the configuration syntax changed in v3?

Commands and flags have been updated—for example, changeset tag is now changeset git-tag, and --sinceMaster has been replaced by --since=main. Additionally, configuration properties like Prettier have moved to the new format key.

What happens if a release script runs with nothing to release?

The changeset version command now exits with code 1 when there is nothing to release. Release playbooks using set -e will cause scripts running the command unconditionally to fail on empty releases.

Ready to streamline your monorepo release workflow? Explore our latest developer guides, share your upgrade experiences in the comments below, or subscribe to our weekly newsletter for more updates on modern JavaScript tooling.

Leave a Comment