NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #3635 most downloaded on npm
Common types shared between changeset packages
Last release 1 months ago
11 Aug 2026
Release timing varies
gaps range from 9 days to 1.2 years
Most releases are documented
notes for 22 of 26 stable releases
Nothing withdrawn
no release was ever pulled
7 years old
37 releases · first in 2019
This change allows easier management of versioned prerelease changesets (for the final stable release) and current queued changesets (for the next pre
#1994 062530b Thanks @bluwy! - Replaced the prettier config option with format. format supports "auto", "prettier", "oxfmt", "deno", "dprint", and false. If you previously used prettier: false, migrate to format: false.
#2040 88f2abb Thanks @bluwy! - Use stricter types for the options parameter for CommitFunctions, ChangelogFunctions, Config & WrittenConfig's commit and changelog properties, to null | Record<string, unknown> instead of any or Record<string, any>
#1482 df424a4 Thanks @Andarist! - Bumped supported Node versions to ^22.11 || ^24 || >=26
#2133 4c26f2f Thanks @bluwy! - Remove "private" type support for WrittenConfig.access. Only "public" and "restricted" are valid values. This change was also already made in #2015 in the runtime.
#2190 96b65ee Thanks @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.
#2117 813bbf3 Thanks @bluwy! - Remove the pre.json initialVersions property and handling as it's unused internally
#1482 df424a4 Thanks @Andarist! - From now on this package is going to be published as ES module.
#1652 a0b5326 Thanks @bluwy! - Remove support for the deprecated ___experimentalUnsafeOptions_WILL_CHANGE_IN_PATCH.useCalculatedVersionForSnapshots config. The snapshot.useCalculatedVersion config should be used instead.
c19b112 Thanks @marcalexiei! - Export Package and Packages from @changesets/types. They are meant to be used instead of the types from @manypkg/get-packages.One column per quarter.
#1482 df424a4 Thanks @Andarist! - Bumped supported Node versions to ^22.11 || ^24 || >=26
#1956 03d4479 Thanks @Andarist! - Drop the legacy compatibility shim in assembleReleasePlan that accepted older config and snapshot argument shapes.
#2190 96b65ee Thanks @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.
#1655 db46911 Thanks @bluwy! - Update @manypkg/get-packages which drops support for detecting packages in Bolt monorepos and adds support for npm monorepos
#2117 813bbf3 Thanks @bluwy! - Remove the pre.json initialVersions property and handling as it's unused internally
#1482 df424a4 Thanks @Andarist! - From now on this package is going to be published as ES module.
#1652 a0b5326 Thanks @bluwy! - Remove support for the deprecated ___experimentalUnsafeOptions_WILL_CHANGE_IN_PATCH.useCalculatedVersionForSnapshots config. The snapshot.useCalculatedVersion config should be used instead.
#2090 3aae903 Thanks @beeequeue! - Peer dependencies now bump packages that depend on them by patch instead of major.
This means a peer dependency update is no longer assumed (forced) to be a breaking change.
If the dependent package is not compatible with the peer's new release you should manually add a major changeset describing why and how to migrate.
#2068 d03ffc1 Thanks @bluwy! - Support {commit-short} placeholder for the snapshot.prereleaseTemplate config, which is a 7 character variant of {commit}
#1969 2c7c043 Thanks @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.
#2160 162419d Thanks @beeequeue! - Added or modified the files property in the manifest. This should not change any behavior.
#2092 c98af4c Thanks @chatman-media! - Fixed a bug where exiting prerelease mode could incorrectly patch-bump ignored or otherwise skipped packages.
Updated dependencies [062530b, 88f2abb, 6a05002, df424a4, b5e1762, c19b112, 162419d, 4c26f2f, 96b65ee, db46911, 2c7c043, 813bbf3, df424a4, a0b5326, 169b128, 6a05002]:
a971652 Thanks @Andarist! - package.json#exports have been added to limit what (and how) code might be imported from the package.dfd4cca Thanks @camertron! - Avoid using short commit IDsa971652]:
This change allows easier management of versioned prerelease changesets (for the final stable release) and current queued changesets (for the next pre
#2190 96b65ee Thanks @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.
Nothing published for this version
Nothing published for this version
### Minor Changes - #2068 `d03ffc1` Thanks @bluwy! - Support {commit-short} placeholder for the snapshot.prereleaseTemplate config, which is a 7 chara
Nothing published for this version
Nothing published for this version
### Major Changes - #1954 `ed6728c` Thanks @beeequeue! - Bumped supported Node versions to ^22.11 || ^24 || >=26 - #1652 `a0b5326` Thanks @bluwy! - Re
#1954 ed6728c Thanks @beeequeue! - Bumped supported Node versions to ^22.11 || ^24 || >=26
#1652 a0b5326 Thanks @bluwy! - Remove support for the deprecated ___experimentalUnsafeOptions_WILL_CHANGE_IN_PATCH.useCalculatedVersionForSnapshots config. The snapshot.useCalculatedVersion config should be used instead.
#1954 ed6728c Thanks @beeequeue! - Bumped supported Node versions to ^22.11 || ^24 || >=26
#1956 03d4479 Thanks @Andarist! - Drop the legacy compatibility shim in assembleReleasePlan that accepted older config and snapshot argument shapes.
#1652 a0b5326 Thanks @bluwy! - Remove support for the deprecated ___experimentalUnsafeOptions_WILL_CHANGE_IN_PATCH.useCalculatedVersionForSnapshots config. The snapshot.useCalculatedVersion config should be used instead.
#1969 2c7c043 Thanks @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.
### Minor Changes - #1872 `c19b112` Thanks @marcalexiei! - Export Package and Packages from @changesets/types. They are meant to be used instead of th
c19b112 Thanks @marcalexiei! - Export Package and Packages from @changesets/types. They are meant to be used instead of the types from @manypkg/get-packages.db46911 Thanks @bluwy! - Update @manypkg/get-packages which drops support for detecting packages in Bolt monorepos and adds support for npm monoreposNothing published for this version
### Major Changes - #1479 `7f34a00` Thanks @bluwy! - Add "engines" field for explicit node version support. The supported node versions are >=18.0.0.
### Minor Changes - #1453 `84a4a1b` Thanks @bennypowers! - Added a new config option to opt-out from formatting with Prettier using prettier: false.
84a4a1b Thanks @bennypowers! - Added a new config option to opt-out from formatting with Prettier using prettier: false.### Major Changes - #1185 `a971652` Thanks @Andarist! - package.json#exports have been added to limit what (and how) code might be imported from the p
a971652 Thanks @Andarist! - package.json#exports have been added to limit what (and how) code might be imported from the package.a971652]:
### Patch Changes - #1033 `521205d` Thanks @Andarist! - Added changedFilePatterns property to Config and WrittenConfig types.
b023e4b Thanks @Andarist! - Fixed an issue with the assembleReleasePlan's signature not being compatible with the old shape of the config and snapshot parameters. This could have caused runtime errors during snapshot releases when only some of the Changesets transitive dependencies were updated without other ones.### Minor Changes - #662 `8c08469` Thanks @JakeGinnivan! - Added support for the privatePackages property in the config.
8c08469 Thanks @JakeGinnivan! - Added support for the privatePackages property in the config.Nothing published for this version
The default export is slated for removal in the next major release, so this ensures a smoother transition path.
#1482 df424a4 Thanks @Andarist! - Bumped supported Node versions to ^22.11 || ^24 || >=26
#1655 db46911 Thanks @bluwy! - Update @manypkg/get-packages which drops support for detecting packages in Bolt monorepos and adds support for npm monorepos
#1482 df424a4 Thanks @Andarist! - From now on this package is going to be published as ES module.
#1969 2c7c043 Thanks @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.
162419d Thanks @beeequeue! - Added or modified the files property in the manifest. This should not change any behavior.e0e1748, 6d1f384, 062530b, 6a05002, 88f2abb, c76b232, d03ffc1, df424a4, b5e1762, c19b112, 03d4479, 162419d, b9407b3, 4c26f2f, 96b65ee, db46911, b83787f, 2c7c043, 813bbf3, 6a05002, c2348fc, c98af4c, df424a4, a0b5326, 3910adf, 169b128, 18bc470, 3aae903]:
Nothing published for this version
Nothing published for this version
@changesets/assemble-release-plan@6.0.2
Updated dependencies \[`954a16a`]:
954a16a]:
This change allows easier management of versioned prerelease changesets (for the final stable release) and current queued changesets (for the next pre
#1482 df424a4 Thanks @Andarist! - Bumped supported Node versions to ^22.11 || ^24 || >=26
#2190 96b65ee Thanks @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.
#1655 db46911 Thanks @bluwy! - Update @manypkg/get-packages which drops support for detecting packages in Bolt monorepos and adds support for npm monorepos
#1482 df424a4 Thanks @Andarist! - From now on this package is going to be published as ES module.
#1969 2c7c043 Thanks @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.
#2190 96b65ee Thanks @bluwy! - Follow file renames for getCommitsThatAddFiles so it returns the commit that added the file first, instead of the commit that renamed it, if it was renamed
#1476 e0e1748 Thanks @pralkarz! - Replace fs-extra usage with node:fs
#2169 a736a20 Thanks @Andarist! - Preserve the caller's path spelling when resolving the Git repository root on Windows.
#2160 162419d Thanks @beeequeue! - Added or modified the files property in the manifest. This should not change any behavior.
#1953 b9407b3 Thanks @beeequeue! - Refactored from micromatch to picomatch for globbing patterns
#1476 e0e1748 Thanks @pralkarz! - Replaced spawndamnit with tinyexec
#584 6c79210 Thanks @Andarist! - Avoid an infinite loop when git commands fail to execute when Changesets try to retrieve commits that added files.
Updated dependencies [062530b, 88f2abb, 6a05002, df424a4, b5e1762, c19b112, 162419d, 4c26f2f, 96b65ee, 813bbf3, df424a4, a0b5326, 6a05002]:
#1994 062530b Thanks @bluwy! - Replaced the prettier config option with format. format supports "auto", "prettier", "oxfmt", "deno", "dprint", and false. If you previously used prettier: false, migrate to format: false.
#2015 6a05002 Thanks @beeequeue! - Removed read and parse functions in favor of readConfig, which returns { config, warnings, errors } instead of throwing on issues.
// before.ts
import { parse } from "@changesets/config";
import { getPackages } from "@manypkg/get-packages";
const config = parse({ commit: true }, await getPackages());
try {
return parse({ commit: true }, packages);
} catch (err) {
if (err instanceof ValidationError) {
console.error(`Invalid config: ${err.message}`);
} else {
throw err;
}
}
// after.ts
import { readConfig } from "@changesets/config";
import { getPackages } from "@manypkg/get-packages";
// both arguments are optional
const { config, warnings, errors } = readConfig(
process.cwd(),
await getPackages(),
);
if (warnings.length !== 0) {
console.warn(warnings.join("\n"));
}
if (config == null) {
console.error(errors.join("\n"));
}
#1482 df424a4 Thanks @Andarist! - Bumped supported Node versions to ^22.11 || ^24 || >=26
#1655 db46911 Thanks @bluwy! - Update @manypkg/get-packages which drops support for detecting packages in Bolt monorepos and adds support for npm monorepos
#1650 b83787f Thanks @bluwy! - Change the defaultWrittenConfig baseBranch value from "master" to "main"
#1482 df424a4 Thanks @Andarist! - From now on this package is going to be published as ES module.
#1652 a0b5326 Thanks @bluwy! - Remove support for the deprecated ___experimentalUnsafeOptions_WILL_CHANGE_IN_PATCH.useCalculatedVersionForSnapshots config. The snapshot.useCalculatedVersion config should be used instead.
#2186 3910adf Thanks @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.
#2015 6a05002 Thanks @beeequeue! - Refactored config parsing to use Valibot and validation rules.
#2130 18bc470 Thanks @beeequeue! - Allow unmatched glob patterns in the ignore config option.
#1476 e0e1748 Thanks @pralkarz! - Replace fs-extra usage with node:fs
#1879 c76b232 Thanks @beeequeue! - Removed @changesets/logger.
#1953 b9407b3 Thanks @beeequeue! - Refactored from micromatch to picomatch for globbing patterns
Updated dependencies [062530b, 88f2abb, df424a4, b5e1762, c19b112, 162419d, 4c26f2f, 96b65ee, db46911, 2c7c043, 813bbf3, df424a4, a0b5326, 169b128]:
a971652 Thanks @Andarist! - package.json#exports have been added to limit what (and how) code might be imported from the package.a971652]:
Nothing published for this version
Nothing published for this version
### Patch Changes - #1590 `b9df596` Thanks @bennypowers! - Prevent fatal error when using the newly-introduced prettier option
b9df596 Thanks @bennypowers! - Prevent fatal error when using the newly-introduced prettier optionUpdated dependencies \[`84a4a1b`]:
84a4a1b Thanks @bennypowers! - Added a new config option to opt-out from formatting with Prettier using prettier: false.84a4a1b]:
This change allows easier management of versioned prerelease changesets (for the final stable release) and current queued changesets (for the next pre
#1482 df424a4 Thanks @Andarist! - Bumped supported Node versions to ^22.11 || ^24 || >=26
#2190 96b65ee Thanks @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.
#1655 db46911 Thanks @bluwy! - Update @manypkg/get-packages which drops support for detecting packages in Bolt monorepos and adds support for npm monorepos
#2117 813bbf3 Thanks @bluwy! - Remove the pre.json initialVersions property and handling as it's unused internally
#1482 df424a4 Thanks @Andarist! - From now on this package is going to be published as ES module.
#1476 e0e1748 Thanks @pralkarz! - Replace fs-extra usage with node:fs
#2160 162419d Thanks @beeequeue! - Added or modified the files property in the manifest. This should not change any behavior.
Updated dependencies [062530b, 88f2abb, 6a05002, df424a4, b5e1762, c19b112, 162419d, 4c26f2f, 96b65ee, 813bbf3, df424a4, a0b5326, 6a05002]:
#1482 df424a4 Thanks @Andarist! - Bumped supported Node versions to ^22.11 || ^24 || >=26
#1655 db46911 Thanks @bluwy! - Update @manypkg/get-packages which drops support for detecting packages in Bolt monorepos and adds support for npm monorepos
#1482 df424a4 Thanks @Andarist! - From now on this package is going to be published as ES module.
#1969 2c7c043 Thanks @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.
#2160 162419d Thanks @beeequeue! - Added or modified the files property in the manifest. This should not change any behavior.
#2004 169b128 Thanks @ghostdevv! - Replace picocolors with node:util's styleText
Updated dependencies [062530b, 88f2abb, df424a4, b5e1762, c19b112, 162419d, 4c26f2f, 96b65ee, 813bbf3, df424a4, a0b5326]:
#2128 7113c01 Thanks @Andarist! - Renamed the changeset tag command to changeset git-tag.
#2074 3599e47 Thanks @bluwy! - Set supported package manager versions in "engines" field, including npm >=10.9.0, pnpm >=10.0.0, and yarn >=4.5.2.
#1860 92b1c1b Thanks @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 df424a4 Thanks @Andarist! - Bumped supported Node versions to ^22.11 || ^24 || >=26
#1994 062530b Thanks @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 96b65ee Thanks @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 f5887ff Thanks @Andarist! - Removed Yarn Classic support
#2097 8c88f6a Thanks @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 c76b232 Thanks @beeequeue! - Removed warning messages about using v1 configs. They will now be silently ignored.
#1655 db46911 Thanks @bluwy! - Update @manypkg/get-packages which drops support for detecting packages in Bolt monorepos and adds support for npm monorepos
#1651 e1df862 Thanks @bluwy! - Remove support for the --sinceMaster flag for changeset status. Use --since=master or --since=main instead.
#2117 813bbf3 Thanks @bluwy! - Remove the pre.json initialVersions property and handling as it's unused internally
#1961 07278a7 Thanks @beeequeue! - CommitFunctions can now be both sync and async, and the defaultCommitFunctions are now sync.
#1482 df424a4 Thanks @Andarist! - From now on this package is going to be published as ES module.
#1652 a0b5326 Thanks @bluwy! - Remove support for the deprecated ___experimentalUnsafeOptions_WILL_CHANGE_IN_PATCH.useCalculatedVersionForSnapshots config. The snapshot.useCalculatedVersion config should be used instead.
#2186 3910adf Thanks @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.
#1879 c76b232 Thanks @beeequeue! - Migrated from enquirer + @inquirer/launch-editor to @clack/prompts + launch-editor.
This means the CLI flows will have minor changes, but they are largely the same.
This change also fixes various issues related to enquirer like cancelling prompts crashing the CLI.
#2090 3aae903 Thanks @beeequeue! - Peer dependencies now bump packages that depend on them by patch instead of major.
This means a peer dependency update is no longer assumed (forced) to be a breaking change.
If the dependent package is not compatible with the peer's new release you should manually add a major changeset describing why and how to migrate.
#1121 ce2095d Thanks @Sh031224! - Added new --major, --minor, --patch flags to the add command.
#2135 fd7724a Thanks @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.
#2068 d03ffc1 Thanks @bluwy! - Support {commit-short} placeholder for the snapshot.prereleaseTemplate config, which is a 7 character variant of {commit}
#2061 c2db1dd Thanks @Andarist! - Added a changeset publish-plan command to inspect which packages would be published or tagged, with optional JSON output.
#2087 edc30c8 Thanks @trueberryless! - Made the init command interactive. Running changeset init will now guide you through a set of intuitive prompts to configure your changelog generator, commit preferences, publish access, and base branch, rather than silently writing the default configuration file.
#1969 2c7c043 Thanks @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.
#1879 c76b232 Thanks @beeequeue! - Packages are now listed in alphabetical order when possible.
#2129 369eb0b Thanks @Andarist! - Commands supporting --output (such as status and publish-plan) can now be invoked with CHANGESETS_OUTPUT=path/to/file environment variable. This has the same effect as calling them with --output=path/to/file
#2100 90b4ad0 Thanks @Andarist! - Order releases into dependency-aware chunks so packages are grouped in publish order.
#2136 2f9ca42 Thanks @bluwy! - Remove confirmation prompt when adding a changeset. It will always add a changeset instead, and if the changeset is not desired, the user can edit or delete the file directly.
#2155 5a8119b Thanks @beeequeue! - Improved changeset publish failure handling. Errors are reported per package, successful publishes are still tagged when another package fails, and authentication retries avoid republishing completed packages.
#2063 ed77176 Thanks @Andarist! - Added changeset publish --from-pack-dir <dir> to publish packages from a previously created pack output directory.
#2062 830443c Thanks @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.
#1879 c76b232 Thanks @beeequeue! - Choosing a change type now shows a preview of which part of the version it affects.
Which packages should have a major (X.X.X) bump?
#2129 369eb0b Thanks @Andarist! - changeset publish and changeset tag can now be invoked with CHANGESETS_OUTPUT=path/to/file environment variable. They produce output in the NDJSON format.
#2130 18bc470 Thanks @beeequeue! - Allow unmatched glob patterns in the ignore config option.
#2073 b9cbd80 Thanks @bluwy! - Show if a package is private when selecting packages in changeset add
#1476 e0e1748 Thanks @pralkarz! - Replace fs-extra usage with node:fs
#2060 11bded4 Thanks @Andarist! - Fixed changeset publish to respect ignored packages for both publishing and private package tagging.
#2041 ce39c72 Thanks @bluwy! - Enable guide line for add command and use box design for dependent patch bump note
#2064 ffd65fc Thanks @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.
#2002 6db2c21 Thanks @Andarist! - Lazy-load CLI commands so changeset only loads the code needed for the command being run.
#2097 8c88f6a Thanks @Andarist! - Route package manager calls through their respective CLIs during publish (npm, pnpm, yarn). Notably, Yarn Berry publishes now let Yarn update workspace protocol ranges as part of the publish process.
#2132 d35bb77 Thanks @cyphercodes! - Improve publish error handling for npm and pnpm JSON errors. Changesets now skips npm 11 already-published errors that omit code, correctly skips pnpm 11 already-published errors, and retries pnpm 11 ERR_PNPM_OTP_NON_INTERACTIVE publish failures in delegated interactive mode.
#2160 162419d Thanks @beeequeue! - Added or modified the files property in the manifest. This should not change any behavior.
#2009 44df27d Thanks @bluwy! - Use cac for CLI arg parsing and handling
#2113 b8222e6 Thanks @Andarist! - Fixed publish error printing for pnpm 11.
#2065 0598e83 Thanks @Andarist! - Improved changeset publish auth handling by removing the preflight OTP requirement check and falling back to interactive auth when the package manager reports that authentication is required.
#2065 0598e83 Thanks @Andarist! - changeset publish now reads initial OTP values from npm and pnpm environment variables.
#2171 3257f57 Thanks @beeequeue! - Enabled Node's Compile Cache to improve CLI startup speed.
#1570 d099e43 Thanks @pralkarz! - Removed extra leftover code related to Changesets v1
#2113 b8222e6 Thanks @Andarist! - Fixed accidental success logs on failed npm publishes
#1476 e0e1748 Thanks @pralkarz! - Replaced spawndamnit with tinyexec
#584 6c79210 Thanks @Andarist! - Avoid an infinite loop when git commands fail to execute when Changesets try to retrieve commits that added files.
#2177 b5e1762 Thanks @Andarist! - Avoid writing an undefined version when updating dependencies in unversioned private packages.
#2163 5f8d925 Thanks @Andarist! - Update dependency ranges in the workspace root package.json.
#2004 169b128 Thanks @ghostdevv! - Replace picocolors with node:util's styleText
#1640 2ad65e0 Thanks @bluwy! - Remove deprecated flag warnings, including --updateChangelog, --isPublic, --skipCI, and --commit
Updated dependencies [e0e1748, 6d1f384, a736a20, 062530b, 6a05002, ee10723, 88f2abb, c76b232, 6a05002, 694396c, d03ffc1, df424a4, b5e1762, c19b112, 03d4479, 162419d, b9407b3, 4c26f2f, 96b65ee, 3628cab, 8f7b607, db46911, b83787f, 2c7c043, 01f4da4, 813bbf3, 6a05002, c2348fc, fc42514, 062530b, 07278a7, c98af4c, df424a4, a0b5326, e0e1748, 6c79210, b5e1762, 3910adf, 5f8d925, 169b128, 18bc470, 6a05002, 3aae903, 062530b, 96b65ee]:
a971652 Thanks @Andarist! - package.json#exports have been added to limit what (and how) code might be imported from the package.a971652]:
a971652 Thanks @Andarist! - package.json#exports have been added to limit what (and how) code might be imported from the package.a971652]:
### Patch Changes - #1445 `52c302a` Thanks @bluwy! - Remove unused @babel/runtime dependency
Updated dependencies \[`a971652`]:
#1029 598136a Thanks @Andarist! - getCommitsThatAddFiles accepts an options object argument now where you can use cwd option.
-getCommitsThatAddFiles(paths, cwd);
+getCommitsThatAddFiles(paths, { cwd });
#1029 598136a Thanks @Andarist! - getCurrentCommitId and getCommitsThatAddFiles return full commit hashes now instead of short ones. You can get short ones by using the short: true option.
#1029 598136a Thanks @Andarist! - Previously deprecated getCommitThatAddsFile has been removed while getCommitsThatAddFiles is still available.
521205d Thanks @Andarist! - getChangedPackagesSinceRef accepts now a new changedFilePatterns option. It can be used to determine which packages should be classified as changed. You can pass an array of glob patterns to it.521205d]:
### Patch Changes - #2251 `d0386b6` Thanks @trueberryless! - Remove two spaces from last line of generated changeset file.
d0386b6 Thanks @trueberryless! - Remove two spaces from last line of generated changeset file.The default export is slated for removal in the next major release, so this ensures a smoother transition path.
#1482 df424a4 Thanks @Andarist! - Bumped supported Node versions to ^22.11 || ^24 || >=26
#1482 df424a4 Thanks @Andarist! - From now on this package is going to be published as ES module.
#1969 2c7c043 Thanks @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.
#1994 062530b Thanks @bluwy! - Changeset files are now formatted with @changesets/format instead of depending on Prettier directly. Formatter selection can be auto-detected from the project configuration or controlled via the format config option.
#1476 e0e1748 Thanks @pralkarz! - Replace fs-extra usage with node:fs
#2160 162419d Thanks @beeequeue! - Added or modified the files property in the manifest. This should not change any behavior.
Updated dependencies [062530b, 88f2abb, df424a4, b5e1762, c19b112, 162419d, 4c26f2f, 96b65ee, 813bbf3, df424a4, a0b5326]:
#1875 12f20ea Thanks @beeequeue! - Removed execWithOutput and spawnWithOutput.
They were never intended to be used externally, but are now removed either way.
If you used them, we recommend using tinyexec or node:child_process#exec directly.
#1875 12f20ea Thanks @beeequeue! - Changed runPublish() signature.
Now requires passing separate command and args parameters:
runPublish({
- script: `node -e 'console.log("test")'`
+ command: "node",
+ args: ["-e", `console.log("test")`]
cwd: import.meta.dirname,
})
#1482 df424a4 Thanks @Andarist! - Bumped supported Node versions to ^22.11 || ^24 || >=26
#2190 96b65ee Thanks @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.
#2106 ea8ca75 Thanks @beeequeue! - Dropped support for v1 changeset bump command in runVersion()
#1655 db46911 Thanks @bluwy! - Update @manypkg/get-packages which drops support for detecting packages in Bolt monorepos and adds support for npm monorepos
#1482 df424a4 Thanks @Andarist! - From now on this package is going to be published as ES module.
#1962 cda03f7 Thanks @bluwy! - Replace markdown parsing with regex
#1969 2c7c043 Thanks @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.
#1476 e0e1748 Thanks @pralkarz! - Replace fs-extra usage with node:fs
#2160 162419d Thanks @beeequeue! - Added or modified the files property in the manifest. This should not change any behavior.
#1476 e0e1748 Thanks @pralkarz! - Replaced spawndamnit with tinyexec
#1948 d165b4e Thanks @beeequeue! - Removed the unused signal-exit dependency
Updated dependencies [e0e1748, 6d1f384, 062530b, 88f2abb, df424a4, b5e1762, c19b112, 162419d, 4c26f2f, 96b65ee, db46911, 2c7c043, 813bbf3, c2348fc, df424a4, a0b5326, 169b128]:
#1482 df424a4 Thanks @Andarist! - Bumped supported Node versions to ^22.11 || ^24 || >=26
#2190 96b65ee Thanks @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.
#1482 df424a4 Thanks @Andarist! - From now on this package is going to be published as ES module.
#1494 6d1f384 Thanks @bluwy! - Remove support for reading changesets from version 1
#1969 2c7c043 Thanks @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.
#2066 c2348fc Thanks @bluwy! - Ignore more markdown files in the .changeset directory when reading changesets, including AGENTS.md, CLAUDE.md, and GEMINI.md
#1476 e0e1748 Thanks @pralkarz! - Replace fs-extra usage with node:fs
#2160 162419d Thanks @beeequeue! - Added or modified the files property in the manifest. This should not change any behavior.
#2004 169b128 Thanks @ghostdevv! - Replace picocolors with node:util's styleText
Updated dependencies [e0e1748, a736a20, 062530b, 88f2abb, df424a4, b5e1762, c19b112, 162419d, b9407b3, 4c26f2f, 96b65ee, 3628cab, db46911, 2c7c043, 813bbf3, df424a4, 1c1ded3, a0b5326, e0e1748, 6c79210, 96b65ee]:
#1482 df424a4 Thanks @Andarist! - Bumped supported Node versions to ^22.11 || ^24 || >=26
#1482 df424a4 Thanks @Andarist! - From now on this package is going to be published as ES module.
#1969 2c7c043 Thanks @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.
#2160 162419d Thanks @beeequeue! - Added or modified the files property in the manifest. This should not change any behavior.
#2083 1c1ded3 Thanks @bluwy! - Refactor yaml parsing to use the yaml package
Updated dependencies [062530b, 88f2abb, df424a4, b5e1762, c19b112, 162419d, 4c26f2f, 96b65ee, 813bbf3, df424a4, a0b5326]:
#1482 df424a4 Thanks @Andarist! - Bumped supported Node versions to ^22.11 || ^24 || >=26
#1482 df424a4 Thanks @Andarist! - From now on this package is going to be published as ES module.
#2160 162419d Thanks @beeequeue! - Added or modified the files property in the manifest. This should not change any behavior.
#2004 169b128 Thanks @ghostdevv! - Replace picocolors with node:util's styleText
#2121 dae394c Thanks @bluwy! - Rename getInfo to getCommitInfo, and getInfoFromPullRequest to getPullRequestInfo. They may now return undefined if the commit or pull request is not found in the GitHub repository.
The return types are also slightly changed but should contain the same information as before. To migrate:
const info = await getCommitInfo({ commit, repo });
if (info == null) return;
// Before:
const authorLogin = info.user;
const authorLink = info.links.author;
const pullNumber = info.pull;
const pullLink = info.links.pull;
const commitLink = info.links.commit;
// After:
const authorLogin = info.author.login;
const authorLink = info.author.markdownLink;
const pullNumber = info.pull.number;
const pullLink = info.pull.markdownLink;
const commitLink = info.commit.markdownLink;
getPullRequestInfo also has a similar migration path.
#1482 df424a4 Thanks @Andarist! - Bumped supported Node versions to ^22.11 || ^24 || >=26
#1482 df424a4 Thanks @Andarist! - From now on this package is going to be published as ES module.
dae394c Thanks @bluwy! - Improve data fetching by using GraphQL fragments to reduce the query size, and set a maximum batch size of 50 to avoid hitting rate limits#1482 df424a4 Thanks @Andarist! - Bumped supported Node versions to ^22.11 || ^24 || >=26
#1482 df424a4 Thanks @Andarist! - From now on this package is going to be published as ES module.
#2015 6a05002 Thanks @beeequeue! - Removed ValidationError.
6a05002 Thanks @beeequeue! - Added cause option to ExitError to help surface the cause behind exiting.162419d Thanks @beeequeue! - Added or modified the files property in the manifest. This should not change any behavior.#1482 df424a4 Thanks @Andarist! - Bumped supported Node versions to ^22.11 || ^24 || >=26
#1482 df424a4 Thanks @Andarist! - From now on this package is going to be published as ES module.
#2059 070f531 Thanks @jycouet! - Add an opt-in, experimental template option to render changelog lines from tokens ({summary}, {ref}, {pull}, {commit}, {authors}). Default output is unchanged. The token syntax may change in a patch release; pin the version if you rely on it.
#1871 dfefc4e Thanks @mihkeleidast! - Use GITHUB_REPOSITORY as the default repo when no repo option is configured
#1969 2c7c043 Thanks @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.
#2040 88f2abb Thanks @bluwy! - Improve type-check for options object
#2160 162419d Thanks @beeequeue! - Added or modified the files property in the manifest. This should not change any behavior.
#1947 492b0ca Thanks @bluwy! - Use parseEnv instead of dotenv to load the .env file and avoid loading them to process.env
Updated dependencies [5b02e2f, 062530b, 88f2abb, dae394c, dae394c, df424a4, b5e1762, c19b112, 162419d, 4c26f2f, 96b65ee, 813bbf3, df424a4, a0b5326, 492b0ca]:
#1482 df424a4 Thanks @Andarist! - Bumped supported Node versions to ^22.11 || ^24 || >=26
#1961 07278a7 Thanks @beeequeue! - ChangelogFunctions can now be both sync and async, and the defaultChangelogFunctions are now sync.
#1482 df424a4 Thanks @Andarist! - From now on this package is going to be published as ES module.
#1969 2c7c043 Thanks @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.
Updated dependencies \[`84a4a1b`]:
84a4a1b Thanks @bennypowers! - Added a new option to opt-out from formatting with Prettier using prettier: false.84a4a1b]:
a971652 Thanks @Andarist! - package.json#exports have been added to limit what (and how) code might be imported from the package.a971652]:
### Patch Changes - #1351 `c6da182` Thanks @TheHolyWaffle! - Fix an issue with not applying a custom .prettierrc configuration with prettier@>= 3.1.1
c6da182 Thanks @TheHolyWaffle! - Fix an issue with not applying a custom .prettierrc configuration with prettier@>= 3.1.1Updated dependencies \[`a971652`]:
Updated dependencies \[`a971652`]:
Updated dependencies \[`84a4a1b`]:
84a4a1b]:
### Minor Changes - #1185 `a971652` Thanks @Andarist! - package.json#exports have been added to limit what (and how) code might be imported from the p
Your coding agent can read these notes before it upgrades. Set up the MCP server →