# Changesets changelog > Versioning and changelog tooling for multi-package repositories. - Vendor: Changesets - Category: Developer Tools - Official site: https://github.com/changesets/changesets - Tracked by: What's New (https://whatsnew.fyi/product/changesets) - Harvested from: GitHub (changesets/changesets) - Entries below: 9 (newest first) What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. Reuse: the summaries, labels and curation here are © What's New. Quote freely with attribution and a link back; wholesale republication of the corpus is not permitted — terms: https://whatsnew.fyi/terms. The vendors' own release notes remain their publishers'. ## Releases ### 3.0.1 - Date: 2026-08-19 - Version: 3.0.1 - Original notes: https://github.com/changesets/changesets/releases/tag/%40changesets/cli%403.0.1 - Permalink: https://whatsnew.fyi/product/changesets/releases/3.0.1 - **changed** — Update links in default generated .changeset/README.md file - **changed** — Updated @changesets/write to 1.0.1 ###### Patch Changes - [#2239](https://github.com/changesets/changesets/pull/2239) [`fdfdc93`](https://github.com/changesets/changesets/commit/fdfdc93efeff2034a6211db13a69b3487d00a3dd) Thanks [@bluwy](https://github.com/bluwy)! - Update links in default generated `.changeset/README.md` file - Updated dependencies [[`d0386b6`](https://github.com/changesets/changesets/commit/d0386b69c8a8bd14a702e7636ab01c1e83b1914e)]: - @changesets/write@1.0.1 ### 3.0.0 - Date: 2026-08-11 - Version: 3.0.0 - Original notes: https://github.com/changesets/changesets/releases/tag/%40changesets/cli%403.0.0 - Permalink: https://whatsnew.fyi/product/changesets/releases/3.0.0 - **changed** — Rename the `changeset tag` command to `changeset git-tag` - **changed** — Set supported package manager versions in `engines` field to npm >=10.9.0, pnpm >=10.0.0, and yarn >=4.5.2 - **changed** — Make `changeset version` exit with code 1 when there are no unreleased changesets instead of exiting with code 0 - **changed** — Bump supported Node versions to ^22.11 || ^24 || >=26 - **removed** — Remove the `prettier` option in `.changeset/config.json` in favor of `format` which supports `auto`, `prettier`, `oxfmt`, `deno`, `dprint`, and `false` - **changed** — Move versioned prerelease changesets to `.changeset/pre/` folder instead of tracking them in `.changeset/pre.json` with auto-migration on next run - **removed** — Remove Yarn Classic support - **changed** — Publish packages with only prerelease versions with the prerelease tag in prerelease mode if the target registry doesn't auto-assign `latest` tag - **removed** — Remove warning messages about using v1 configs - **changed** — Update `@manypkg/get-packages` to drop support for Bolt monorepos and add support for npm monorepos - **removed** — Remove support for the `--sinceMaster` flag for `changeset status` in favor of `--since=master` or `--since=main` - **removed** — Remove the `pre.json` `initialVersions` property - **changed** — Allow `CommitFunctions` to be both sync and async, with `defaultCommitFunctions` now being sync - **changed** — Publish this package as ES module - **removed** — Remove support for the deprecated `___experimentalUnsafeOptions_WILL_CHANGE_IN_PATCH.useCalculatedVersionForSnapshots` config in favor of `snapshot.useCalculatedVersion` ###### Major Changes - [#2128](https://github.com/changesets/changesets/pull/2128) [`7113c01`](https://github.com/changesets/changesets/commit/7113c014330b3f972e54ece8e67731613193958f) Thanks [@Andarist](https://github.com/Andarist)! - Renamed the `changeset tag` command to `changeset git-tag`. - [#2074](https://github.com/changesets/changesets/pull/2074) [`3599e47`](https://github.com/changesets/changesets/commit/3599e47217d2ed2dd60da628fe4d1d3fc4b849c7) Thanks [@bluwy](https://github.com/bluwy)! - Set supported package manager versions in `"engines"` field, including npm >=10.9.0, pnpm >=10.0.0, and yarn >=4.5.2. - [#1860](https://github.com/changesets/changesets/pull/1860) [`92b1c1b`](https://github.com/changesets/changesets/commit/92b1c1b6b1733b1f1799a73828d378646b068798) Thanks [@mixelburg](https://github.com/mixelburg)! - `changeset version` now exits with code 1 when there are no unreleased changesets, instead of silently exiting with code 0. This makes it easier to detect when a version step is a no-op — for example, to prevent accidentally publishing packages with incorrect version tags when using `--snapshot` mode. - [#1482](https://github.com/changesets/changesets/pull/1482) [`df424a4`](https://github.com/changesets/changesets/commit/df424a4a09eea15b0fa9159ee0b98af0d95f58a7) Thanks [@Andarist](https://github.com/Andarist)! - Bumped supported Node versions to `^22.11 || ^24 || >=26` - [#1994](https://github.com/changesets/changesets/pull/1994) [`062530b`](https://github.com/changesets/changesets/commit/062530b825d53abc9d8934f3a50cc61ff3ff82b8) Thanks [@bluwy](https://github.com/bluwy)! - The `prettier` option in `.changeset/config.json` has been removed in favor of `format`. `format` supports `"auto"`, `"prettier"`, `"oxfmt"`, `"deno"`, and `"dprint"`, and `false` disables formatting. If you previously used `prettier: false`, migrate to `format: false` or remove the option to use automatic formatter detection. - [#2190](https://github.com/changesets/changesets/pull/2190) [`96b65ee`](https://github.com/changesets/changesets/commit/96b65eec4af2c58301a11cd7dff42a6bde9c9f8a) Thanks [@bluwy](https://github.com/bluwy)! - Move versioned prerelease changesets to `.changeset/pre/` folder instead of accumulating in the root and tracking the versioned changeset ids in the `.changeset/pre.json` file. Existing `pre.json` will auto-migrate to this new structure on the next run of `changeset version` or when calling `changeset status`. This change allows easier management of versioned prerelease changesets (for the final stable release) and current queued changesets (for the next prerelease). Changesets in `.changeset/pre/` can be edited or deleted depending if it's still relevant for the final stable release of a package. There's no need to synchronize the changeset ids in `pre.json` if certain changesets are deleted. - [#2145](https://github.com/changesets/changesets/pull/2145) [`f5887ff`](https://github.com/changesets/changesets/commit/f5887ff54a6b78eae87ae85fdac3294c4464da78) Thanks [@Andarist](https://github.com/Andarist)! - Removed Yarn Classic support - [#2097](https://github.com/changesets/changesets/pull/2097) [`8c88f6a`](https://github.com/changesets/changesets/commit/8c88f6a3362628ca580835a1a1f2310056ee5743) Thanks [@Andarist](https://github.com/Andarist)! - Packages with only prerelease versions published will now be published with the prerelease tag in the prerelease mode _if_ the target registry doesn't auto-assign `latest` tag. npm registry itself does that and such packages will continue to be released with `latest` tag (and not with the configured prerelease tag). - [#1879](https://github.com/changesets/changesets/pull/1879) [`c76b232`](https://github.com/changesets/changesets/commit/c76b232abc76f73592a21f0d5df9cc89406a31dc) Thanks [@beeequeue](https://github.com/beeequeue)! - Removed warning messages about using v1 configs. They will now be silently ignored. - [#1655](https://github.com/changesets/ _[Truncated at 4000 characters — full notes: https://github.com/changesets/changesets/releases/tag/%40changesets/cli%403.0.0]_ ### 3.0.0-next.12 - Date: 2026-08-10 - Version: 3.0.0-next.12 - Original notes: https://github.com/changesets/changesets/releases/tag/%40changesets/cli%403.0.0-next.12 - Permalink: https://whatsnew.fyi/product/changesets/releases/3.0.0-next.12 - Labels: Pre-release - **changed** — Updated @changesets/config to 4.0.0-next.10 - **changed** — Updated @changesets/assemble-release-plan to 7.0.0-next.11 - **changed** — Updated @changesets/apply-release-plan to 8.0.0-next.11 ###### Patch Changes - Updated dependencies [[`68ea6ec`](https://github.com/changesets/changesets/commit/68ea6ecc70f48dc4f5f0dbec7fd92ce30d8d2527), [`c98af4c`](https://github.com/changesets/changesets/commit/c98af4c33d8ee307c6229023ea6907fb0df4bf26)]: - @changesets/config@4.0.0-next.10 - @changesets/assemble-release-plan@7.0.0-next.11 - @changesets/apply-release-plan@8.0.0-next.11 ### 3.0.0-next.11 - Date: 2026-08-03 - Version: 3.0.0-next.11 - Original notes: https://github.com/changesets/changesets/releases/tag/%40changesets/cli%403.0.0-next.11 - Permalink: https://whatsnew.fyi/product/changesets/releases/3.0.0-next.11 - Labels: Pre-release - **changed** — Move versioned prerelease changesets to .changeset/pre/ folder instead of accumulating in the root and tracking versioned changeset ids in .changeset/pre.json file, with auto-migration of existing pre.json on next run of changeset version or changeset status - **changed** — Private packages are no longer versioned by default; set privatePackages to true to opt into versioning and tagging them, or set privatePackages.version to true to version them without tagging - **added** — Allow comma-separated values in array-valued CLI flags: the --major, --minor, and --patch flags of the add command, and the --ignore flag of the version command ###### Major Changes - [#2190](https://github.com/changesets/changesets/pull/2190) [`96b65ee`](https://github.com/changesets/changesets/commit/96b65eec4af2c58301a11cd7dff42a6bde9c9f8a) Thanks [@bluwy](https://github.com/bluwy)! - Move versioned prerelease changesets to `.changeset/pre/` folder instead of accumulating in the root and tracking the versioned changeset ids in the `.changeset/pre.json` file. Existing `pre.json` will auto-migrate to this new structure on the next run of `changeset version` or when calling `changeset status`. This change allows easier management of versioned prerelease changesets (for the final stable release) and current queued changesets (for the next prerelease). Changesets in `.changeset/pre/` can be edited or deleted depending if it's still relevant for the final stable release of a package. There's no need to synchronize the changeset ids in `pre.json` if certain changesets are deleted. - [#2186](https://github.com/changesets/changesets/pull/2186) [`3910adf`](https://github.com/changesets/changesets/commit/3910adf3ebaef14196093715228885c4819d0cbf) Thanks [@Andarist](https://github.com/Andarist)! - Private packages are no longer versioned by default. Set `privatePackages` to `true` to opt into versioning and tagging them, or set `privatePackages.version` to `true` to version them without tagging. ###### Minor Changes - [#2135](https://github.com/changesets/changesets/pull/2135) [`fd7724a`](https://github.com/changesets/changesets/commit/fd7724ad63cee56f6868d3e7f140d51cd8f88932) Thanks [@youdie006](https://github.com/youdie006)! - Allow comma-separated values in array-valued CLI flags: the `--major`, `--minor`, and `--patch` flags of the `add` command, and the `--ignore` flag of the `version` command. For example, `--minor pkg-a,pkg-b` is now equivalent to `--minor pkg-a --minor pkg-b`. Surrounding whitespace is trimmed and empty entries are ignored. ###### Patch Changes - Updated dependencies [[`96b65ee`](https://github.com/changesets/changesets/commit/96b65eec4af2c58301a11cd7dff42a6bde9c9f8a), [`3910adf`](https://github.com/changesets/changesets/commit/3910adf3ebaef14196093715228885c4819d0cbf), [`96b65ee`](https://github.com/changesets/changesets/commit/96b65eec4af2c58301a11cd7dff42a6bde9c9f8a)]: - @changesets/apply-release-plan@8.0.0-next.10 - @changesets/assemble-release-plan@7.0.0-next.10 - @changesets/git@4.0.0-next.9 - @changesets/pre@3.0.0-next.9 - @changesets/read@1.0.0-next.10 - @changesets/types@7.0.0-next.9 - @changesets/config@4.0.0-next.9 - @changesets/changelog-git@1.0.0-next.9 - @changesets/get-dependents-graph@3.0.0-next.9 - @changesets/should-skip-package@1.0.0-next.9 - @changesets/write@1.0.0-next.9 ### 2.31.1 - Date: 2026-07-15 - Version: 2.31.1 - Original notes: https://github.com/changesets/changesets/releases/tag/%40changesets/cli%402.31.1 - Permalink: https://whatsnew.fyi/product/changesets/releases/2.31.1 - **fixed** — Fix already-published version detection with npm 12, which wraps successful npm info --json output in an array, preventing changeset publish from treating every package as unpublished and attempting to republish existing versions ###### Patch Changes - [#2159](https://github.com/changesets/changesets/pull/2159) [`15cf592`](https://github.com/changesets/changesets/commit/15cf5928fb9968ba20b59ed6c794013c52c92d09) Thanks [@ingvaldlorentzen](https://github.com/ingvaldlorentzen)! - Fixed already-published version detection with npm 12, which always wraps successful `npm info --json` output in an array. The unwrapped output made `changeset publish` treat every package as unpublished and fail attempting to republish existing versions. ### 3.0.0-next.6 - Date: 2026-06-24 - Version: 3.0.0-next.6 - Original notes: https://github.com/changesets/changesets/releases/tag/%40changesets/cli%403.0.0-next.6 - Permalink: https://whatsnew.fyi/product/changesets/releases/3.0.0-next.6 - Labels: Pre-release - **added** — Support {commit-short} placeholder for the snapshot.prereleaseTemplate config, which is a 7 character variant of {commit} - **added** — Add a changeset publish-plan command to inspect which packages would be published or tagged, with optional JSON output - **added** — Add a changeset pack command that writes publishable package tarballs plus an enriched publish-plan.json into a directory - **added** — Add changeset publish --from-pack-dir to publish packages from a previously created pack output directory - **changed** — Set supported package manager versions in engines field, including npm >=10.9.0, pnpm >=10.0.0, and yarn >=4.5.2 - **changed** — Order releases into dependency-aware chunks so packages are grouped in publish order - **changed** — Show if a package is private when selecting packages in changeset add - **changed** — For pnpm projects, match pnpm's native registry behavior more closely during unpublished package checks by ignoring both scope-based publishConfig registry overrides and publishConfig.registry - **fixed** — Fix changeset publish to respect ignored packages for both publishing and private package tagging - **fixed** — Fix publish error printing for pnpm 11 - **fixed** — Auto-create the directory for the target publish plan file when executing changeset publish-plan --output - **fixed** — Fix accidental success logs on failed npm publishes - **fixed** — Log New tag: ... messages when running changeset publish to fix compatibility with the Changesets release GitHub action ###### Major Changes - [#2074](https://github.com/changesets/changesets/pull/2074) [`3599e47`](https://github.com/changesets/changesets/commit/3599e47217d2ed2dd60da628fe4d1d3fc4b849c7) Thanks [@bluwy](https://github.com/bluwy)! - Set supported package manager versions in `"engines"` field, including npm >=10.9.0, pnpm >=10.0.0, and yarn >=4.5.2. ###### Minor Changes - [#2068](https://github.com/changesets/changesets/pull/2068) [`d03ffc1`](https://github.com/changesets/changesets/commit/d03ffc1d11fb486328734e52767379646062f5c1) Thanks [@bluwy](https://github.com/bluwy)! - Support `{commit-short}` placeholder for the `snapshot.prereleaseTemplate` config, which is a 7 character variant of `{commit}` - [#2061](https://github.com/changesets/changesets/pull/2061) [`c2db1dd`](https://github.com/changesets/changesets/commit/c2db1dd5d2da6c6eb514d86bbe05cbb7227b067f) Thanks [@Andarist](https://github.com/Andarist)! - Added a `changeset publish-plan` command to inspect which packages would be published or tagged, with optional JSON output. - [#2100](https://github.com/changesets/changesets/pull/2100) [`90b4ad0`](https://github.com/changesets/changesets/commit/90b4ad0d1e0c41fab982f065f9f9ab522838499b) Thanks [@Andarist](https://github.com/Andarist)! - Order releases into dependency-aware chunks so packages are grouped in publish order. - [#2063](https://github.com/changesets/changesets/pull/2063) [`ed77176`](https://github.com/changesets/changesets/commit/ed771766183df240ff1dbedc6eaf6c0064b0c850) Thanks [@Andarist](https://github.com/Andarist)! - Added `changeset publish --from-pack-dir ` to publish packages from a previously created pack output directory. - [#2062](https://github.com/changesets/changesets/pull/2062) [`830443c`](https://github.com/changesets/changesets/commit/830443c757d2a685cc76f36ebebb081cb531b3c2) Thanks [@Andarist](https://github.com/Andarist)! - Added a `changeset pack` command that requires `--out-dir` and writes publishable package tarballs plus an enriched `publish-plan.json` into that directory, either from the current workspace or from a saved publish plan via `--from-plan`. - [#2073](https://github.com/changesets/changesets/pull/2073) [`b9cbd80`](https://github.com/changesets/changesets/commit/b9cbd804d68ac43af3b3ada32bed6217da0af81c) Thanks [@bluwy](https://github.com/bluwy)! - Show if a package is private when selecting packages in `changeset add` ###### Patch Changes - [#2060](https://github.com/changesets/changesets/pull/2060) [`11bded4`](https://github.com/changesets/changesets/commit/11bded4bd38e4ced3dfa4c428c50e2284c458ae3) Thanks [@Andarist](https://github.com/Andarist)! - Fixed `changeset publish` to respect ignored packages for both publishing and private package tagging. - [#2064](https://github.com/changesets/changesets/pull/2064) [`ffd65fc`](https://github.com/changesets/changesets/commit/ffd65fc6110a5ac6dfb27eac7a28a8b26751acc7) Thanks [@Andarist](https://github.com/Andarist)! - For pnpm projects, Changesets now match pnpm's native registry behavior more closely during unpublished package checks. Both scope-based `publishConfig` registry overrides and `publishConfig.registry` are now ignored. - [#2113](https://github.com/changesets/changesets/pull/2113) [`b8222e6`](https://github.com/changesets/changesets/commit/b8222e688b11e53c2e6b3fab811ccfb50038007b) Thanks [@Andarist](https://github.com/Andarist)! - Fixed publish error printing for pnpm 11. - [#2111](https://github.com/changesets/changesets/pull/2111) [`124ad07`](https://github.com/changesets/changesets/commit/124ad077c1361b00efa838c0400dc8a835645036) Thanks [@Andarist](https://github.com/Andarist)! - Auto-create the directory for the target publish plan file when executing `changeset publish-plan --output ` - [#2113](https://github.com/changesets/changesets/pull/2113) [`b8222e6`](https://github.com/changesets/changesets/commit/b8222e688b11e53c2e6b3fab811ccfb50038007b) Thanks [@Andarist](https://github.com/Andarist)! - _[Truncated at 4000 characters — full notes: https://github.com/changesets/changesets/releases/tag/%40changesets/cli%403.0.0-next.6]_ ### 3.0.0-next.3 - Date: 2026-05-07 - Version: 3.0.0-next.3 - Original notes: https://github.com/changesets/changesets/releases/tag/%40changesets/cli%403.0.0-next.3 - Permalink: https://whatsnew.fyi/product/changesets/releases/3.0.0-next.3 - Labels: Pre-release - **changed** — changeset version now exits with code 1 when there are no unreleased changesets, instead of silently exiting with code 0 - **changed** — Bumped supported Node versions to ^22.11 || ^24 || >=26 - **changed** — CommitFunctions can now be both sync and async, and the defaultCommitFunctions are now sync - **removed** — Remove support for the deprecated ___experimentalUnsafeOptions_WILL_CHANGE_IN_PATCH.useCalculatedVersionForSnapshots config - **added** — Add a named export that mirrors the current default export - **fixed** — Fixed resolution of changelog and commit generator modules so built-in modules can still be loaded when they are not installed in the target project ###### Major Changes - [#1860](https://github.com/changesets/changesets/pull/1860) [`92b1c1b`](https://github.com/changesets/changesets/commit/92b1c1b6b1733b1f1799a73828d378646b068798) Thanks [@mixelburg](https://github.com/mixelburg)! - `changeset version` now exits with code 1 when there are no unreleased changesets, instead of silently exiting with code 0. This makes it easier to detect when a version step is a no-op — for example, to prevent accidentally publishing packages with incorrect version tags when using `--snapshot` mode. - [#1954](https://github.com/changesets/changesets/pull/1954) [`ed6728c`](https://github.com/changesets/changesets/commit/ed6728ce3c089caaee19f71194a0cd7029480069) Thanks [@beeequeue](https://github.com/beeequeue)! - Bumped supported Node versions to `^22.11 || ^24 || >=26` - [#1961](https://github.com/changesets/changesets/pull/1961) [`07278a7`](https://github.com/changesets/changesets/commit/07278a726343388eb6dfc56e7a8213872d4c8857) Thanks [@beeequeue](https://github.com/beeequeue)! - `CommitFunctions` can now be both sync and async, and the `defaultCommitFunctions` are now sync. - [#1652](https://github.com/changesets/changesets/pull/1652) [`a0b5326`](https://github.com/changesets/changesets/commit/a0b5326570e8e7bf5e35c1cefe8f70d9a51a5cd7) Thanks [@bluwy](https://github.com/bluwy)! - Remove support for the deprecated `___experimentalUnsafeOptions_WILL_CHANGE_IN_PATCH.useCalculatedVersionForSnapshots` config. The `snapshot.useCalculatedVersion` config should be used instead. ###### Minor Changes - [#1969](https://github.com/changesets/changesets/pull/1969) [`2c7c043`](https://github.com/changesets/changesets/commit/2c7c043d7071440009f8a69eff0b0c6746ac7625) Thanks [@marcalexiei](https://github.com/marcalexiei)! - Add a named export that mirrors the current `default` export The `default` export is slated for removal in the next major release, so this ensures a smoother transition path. ###### Patch Changes - [#1667](https://github.com/changesets/changesets/pull/1667) [`81832f8`](https://github.com/changesets/changesets/commit/81832f855029f4093b2142ba22b747ba0de92425) Thanks [@Andarist](https://github.com/Andarist)! - Fixed resolution of changelog and commit generator modules so built-in modules can still be loaded when they are not installed in the target project. - Updated dependencies \[[`81832f8`](https://github.com/changesets/changesets/commit/81832f855029f4093b2142ba22b747ba0de92425), [`ed6728c`](https://github.com/changesets/changesets/commit/ed6728ce3c089caaee19f71194a0cd7029480069), [`03d4479`](https://github.com/changesets/changesets/commit/03d44794fedd24ae9eb053b28624c1fd8fe6fe6f), [`b9407b3`](https://github.com/changesets/changesets/commit/b9407b39a458bab106d0e23a3afab01d07d8482f), [`2c7c043`](https://github.com/changesets/changesets/commit/2c7c043d7071440009f8a69eff0b0c6746ac7625), [`07278a7`](https://github.com/changesets/changesets/commit/07278a726343388eb6dfc56e7a8213872d4c8857), [`ad3edbd`](https://github.com/changesets/changesets/commit/ad3edbdc78c7b2ba451577969b6137df275ec430), [`a0b5326`](https://github.com/changesets/changesets/commit/a0b5326570e8e7bf5e35c1cefe8f70d9a51a5cd7)]: - @changesets/apply-release-plan@8.0.0-next.3 - @changesets/assemble-release-plan@7.0.0-next.3 - @changesets/get-dependents-graph@3.0.0-next.3 - @changesets/should-skip-package@1.0.0-next.3 - @changesets/get-release-plan@5.0.0-next.3 - @changesets/changelog-git@1.0.0-next.3 - @changesets/config@4.0.0-next.3 - @changesets/errors@1.0.0-next.2 - @changesets/logger@1.0.0-next.2 - @changesets/types@7.0.0-next.3 - @changesets/write@1.0.0-next.3 - @changesets/read@1.0.0-next.3 - @changesets/git@4.0.0-next.3 - @changesets/pre@3.0.0-next.3 ### 3.0.0-next.2 - Date: 2026-05-04 - Version: 3.0.0-next.2 - Original notes: https://github.com/changesets/changesets/releases/tag/%40changesets/cli%403.0.0-next.2 - Permalink: https://whatsnew.fyi/product/changesets/releases/3.0.0-next.2 - Labels: Pre-release - **changed** — Update @manypkg/get-packages which drops support for detecting packages in Bolt monorepos and adds support for npm monorepos - **changed** — Bump the default Prettier version used in the absence of the local installation to v3 - **changed** — Replace spawndamnit with tinyexec ###### Major Changes - [#1655](https://github.com/changesets/changesets/pull/1655) [`db46911`](https://github.com/changesets/changesets/commit/db46911e57603f20a158a47bbbebd112272c84e2) Thanks [@bluwy](https://github.com/bluwy)! - Update `@manypkg/get-packages` which drops support for detecting packages in Bolt monorepos and adds support for npm monorepos ###### Minor Changes - [#1744](https://github.com/changesets/changesets/pull/1744) [`303cacd`](https://github.com/changesets/changesets/commit/303cacdde85c94f2ef4d1408b401165ff25d263d) Thanks [@beeequeue](https://github.com/beeequeue)! - Bumped the default Prettier version used in the absence of the local installation to v3 ###### Patch Changes - [#1875](https://github.com/changesets/changesets/pull/1875) [`12f20ea`](https://github.com/changesets/changesets/commit/12f20ea75fb5a440a378bd2bf6072a6bd749fd57) Thanks [@beeequeue](https://github.com/beeequeue)! - Replaced `spawndamnit` with `tinyexec` - Updated dependencies \[[`c19b112`](https://github.com/changesets/changesets/commit/c19b1123d27986da0e14e99d65b0f9a408def35c), [`db46911`](https://github.com/changesets/changesets/commit/db46911e57603f20a158a47bbbebd112272c84e2), [`303cacd`](https://github.com/changesets/changesets/commit/303cacdde85c94f2ef4d1408b401165ff25d263d), [`12f20ea`](https://github.com/changesets/changesets/commit/12f20ea75fb5a440a378bd2bf6072a6bd749fd57)]: - @changesets/types@7.0.0-next.2 - @changesets/assemble-release-plan@7.0.0-next.2 - @changesets/get-dependents-graph@3.0.0-next.2 - @changesets/apply-release-plan@8.0.0-next.2 - @changesets/get-release-plan@5.0.0-next.2 - @changesets/config@4.0.0-next.2 - @changesets/git@4.0.0-next.2 - @changesets/pre@3.0.0-next.2 - @changesets/changelog-git@1.0.0-next.2 - @changesets/read@1.0.0-next.2 - @changesets/should-skip-package@1.0.0-next.2 - @changesets/write@1.0.0-next.2 ### 2.31.0 - Date: 2026-04-17 - Version: 2.31.0 - Original notes: https://github.com/changesets/changesets/releases/tag/%40changesets/cli%402.31.0 - Permalink: https://whatsnew.fyi/product/changesets/releases/2.31.0 - **added** — Error on unsupported flags for individual CLI commands and print the matching command usage - **changed** — Respond to --help on all subcommands, including when passed alongside a subcommand like changeset version --help - **fixed** — Fix npm auth for path-based registries during publish by preserving configured registry URLs instead of normalizing them - **fixed** — Fix several changeset version issues with workspace protocol dependencies, including preventing unnecessary rewrites of valid explicit workspace ranges and aliases - **fixed** — Gracefully handle stale npm info data leading to duplicate publish attempts - **fixed** — Improve detection for published state of prerelease-only packages without latest dist-tag on GitHub Packages registry ###### Minor Changes - [#1889](https://github.com/changesets/changesets/pull/1889) [`96ca062`](https://github.com/changesets/changesets/commit/96ca062272605c14f77a64043f50a0a3a278c57f) Thanks [@mixelburg](https://github.com/mixelburg)! - Error on unsupported flags for individual CLI commands and print the matching command usage to make mistakes easier to spot. - [#1873](https://github.com/changesets/changesets/pull/1873) [`42943b7`](https://github.com/changesets/changesets/commit/42943b74d7a455ed03b93dd85e1c0a15f45db37f) Thanks [@mixelburg](https://github.com/mixelburg)! - Respond to `--help` on all subcommands. Previously, `--help` was only handled when it was the sole argument; passing it alongside a subcommand (e.g. `changeset version --help`) would silently execute the command instead. Now `--help` always exits early and prints per-command usage when a known subcommand is provided, or the general help text otherwise. ###### Patch Changes - [`d2121dc`](https://github.com/changesets/changesets/commit/d2121dc3d86b55f76de6022ccfcde843ed4b884a) Thanks [@Andarist](https://github.com/Andarist)! - Fix npm auth for path-based registries during publish by preserving configured registry URLs instead of normalizing them. - [#1888](https://github.com/changesets/changesets/pull/1888) [`036fdd4`](https://github.com/changesets/changesets/commit/036fdd451367226d0f2cd8af1e0a7f37a65e3464) Thanks [@mixelburg](https://github.com/mixelburg)! - Fix several `changeset version` issues with workspace protocol dependencies. Valid explicit `workspace:` ranges and aliases are no longer rewritten unnecessarily, and workspace path references are handled correctly during versioning. - [#1903](https://github.com/changesets/changesets/pull/1903) [`5c4731f`](https://github.com/changesets/changesets/commit/5c4731fea82ce880500ac5e1c55ff372f7a4efe2) Thanks [@Andarist](https://github.com/Andarist)! - Gracefully handle stale `npm info` data leading to duplicate publish attempts. - [#1867](https://github.com/changesets/changesets/pull/1867) [`f61e716`](https://github.com/changesets/changesets/commit/f61e7166c349d4934e4acc9b47f3d028c212ecc1) Thanks [@Andarist](https://github.com/Andarist)! - Improved detection for `published` state of prerelease-only packages without `latest` dist-tag on GitHub Packages registry. - Updated dependencies \[[`036fdd4`](https://github.com/changesets/changesets/commit/036fdd451367226d0f2cd8af1e0a7f37a65e3464), [`036fdd4`](https://github.com/changesets/changesets/commit/036fdd451367226d0f2cd8af1e0a7f37a65e3464), [`036fdd4`](https://github.com/changesets/changesets/commit/036fdd451367226d0f2cd8af1e0a7f37a65e3464)]: - @changesets/assemble-release-plan@6.0.10 - @changesets/get-dependents-graph@2.1.4 - @changesets/apply-release-plan@7.1.1 - @changesets/get-release-plan@4.0.16 - @changesets/config@3.1.4