Skip to content

Latest commit

 

History

History
2098 lines (1358 loc) · 143 KB

File metadata and controls

2098 lines (1358 loc) · 143 KB

@changesets/cli

3.0.0-next.9

Major Changes

  • #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).

Patch Changes

  • #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.

  • #2163 5f8d925 Thanks @Andarist! - Update dependency ranges in the workspace root package.json.

  • Updated dependencies [162419d, 5f8d925]:

    • @changesets/apply-release-plan@8.0.0-next.8
    • @changesets/assemble-release-plan@7.0.0-next.8
    • @changesets/changelog-git@1.0.0-next.7
    • @changesets/errors@1.0.0-next.4
    • @changesets/get-dependents-graph@3.0.0-next.7
    • @changesets/git@4.0.0-next.7
    • @changesets/pre@3.0.0-next.7
    • @changesets/read@1.0.0-next.8
    • @changesets/should-skip-package@1.0.0-next.7
    • @changesets/types@7.0.0-next.7
    • @changesets/write@1.0.0-next.7
    • @changesets/config@4.0.0-next.7

3.0.0-next.8

Patch Changes

  • #2138 3588f18 Thanks @Andarist! - Ensure changeset publish and changeset tag create the CHANGESETS_OUTPUT file even when there is nothing to publish or tag.

3.0.0-next.7

Major Changes

  • #2128 7113c01 Thanks @Andarist! - Renamed the changeset tag command to changeset git-tag.

  • #2117 813bbf3 Thanks @bluwy! - Remove the pre.json initialVersions property and handling as it's unused internally

  • #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.

Minor Changes

  • #1121 ce2095d Thanks @Sh031224! - Added new --major, --minor, --patch flags to the add command.

  • #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.

  • #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

  • #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.

  • #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.

Patch Changes

  • #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.

  • #2065 0598e83 Thanks @Andarist! - The generated publish-plan.json no longer includes a registry field on publish entries.

  • #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 [4c26f2f, 813bbf3, 6c79210, 18bc470, 3aae903]:

    • @changesets/types@7.0.0-next.6
    • @changesets/assemble-release-plan@7.0.0-next.7
    • @changesets/pre@3.0.0-next.6
    • @changesets/git@4.0.0-next.6
    • @changesets/config@4.0.0-next.6
    • @changesets/apply-release-plan@8.0.0-next.7
    • @changesets/changelog-git@1.0.0-next.6
    • @changesets/get-dependents-graph@3.0.0-next.6
    • @changesets/read@1.0.0-next.7
    • @changesets/should-skip-package@1.0.0-next.6
    • @changesets/write@1.0.0-next.6

3.0.0-next.6

Major Changes

  • #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.

Minor Changes

  • #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.

  • #2100 90b4ad0 Thanks @Andarist! - Order releases into dependency-aware chunks so packages are grouped in publish order.

  • #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.

  • #2073 b9cbd80 Thanks @bluwy! - Show if a package is private when selecting packages in changeset add

Patch Changes

  • #2060 11bded4 Thanks @Andarist! - Fixed changeset publish to respect ignored packages for both publishing and private package tagging.

  • #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.

  • #2113 b8222e6 Thanks @Andarist! - Fixed publish error printing for pnpm 11.

  • #2111 124ad07 Thanks @Andarist! - Auto-create the directory for the target publish plan file when executing changeset publish-plan --output <file>

  • #2113 b8222e6 Thanks @Andarist! - Fixed accidental success logs on failed npm publishes

  • #2091 3918fe5 Thanks @bluwy! - Log "New tag: ..." messages when running changeset publish to fix compatibility with the Changesets release GitHub action to create GitHub releases and push the new tags

  • Updated dependencies [694396c, d03ffc1, 01f4da4, c2348fc]:

    • @changesets/apply-release-plan@8.0.0-next.6
    • @changesets/assemble-release-plan@7.0.0-next.6
    • @changesets/read@1.0.0-next.6

3.0.0-next.5

Patch Changes

  • #2041 ce39c72 Thanks @bluwy! - Enable guide line for add command and use box design for dependent patch bump note

  • #2009 44df27d Thanks @bluwy! - Use cac for CLI arg parsing and handling

  • Updated dependencies [6a05002, 88f2abb, 6a05002, 6a05002, 6a05002]:

    • @changesets/config@4.0.0-next.5
    • @changesets/types@7.0.0-next.5
    • @changesets/errors@1.0.0-next.3
    • @changesets/apply-release-plan@8.0.0-next.5
    • @changesets/assemble-release-plan@7.0.0-next.5
    • @changesets/changelog-git@1.0.0-next.5
    • @changesets/get-dependents-graph@3.0.0-next.5
    • @changesets/git@4.0.0-next.5
    • @changesets/pre@3.0.0-next.5
    • @changesets/read@1.0.0-next.5
    • @changesets/should-skip-package@1.0.0-next.5
    • @changesets/write@1.0.0-next.5

3.0.0-next.4

Major Changes

  • #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.

  • #1879 c76b232 Thanks @beeequeue! - Removed warning messages about using v1 configs. They will now be silently ignored.

  • #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.

Minor Changes

  • #1879 c76b232 Thanks @beeequeue! - Packages are now listed in alphabetical order when possible.

  • #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?

Patch Changes

  • #2002 6db2c21 Thanks @Andarist! - Lazy-load CLI commands so changeset only loads the code needed for the command being run.

  • #2004 169b128 Thanks @ghostdevv! - Replace picocolors with node:util's styleText

  • Updated dependencies [062530b, ee10723, c76b232, fc42514, 062530b, 169b128, 062530b]:

    • @changesets/config@4.0.0-next.4
    • @changesets/types@7.0.0-next.4
    • @changesets/apply-release-plan@8.0.0-next.4
    • @changesets/write@1.0.0-next.4
    • @changesets/get-dependents-graph@3.0.0-next.4
    • @changesets/read@1.0.0-next.4
    • @changesets/assemble-release-plan@7.0.0-next.4
    • @changesets/get-release-plan@5.0.0-next.4
    • @changesets/changelog-git@1.0.0-next.4
    • @changesets/git@4.0.0-next.4
    • @changesets/pre@3.0.0-next.4
    • @changesets/should-skip-package@1.0.0-next.4

3.0.0-next.3

Major Changes

  • #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.

  • #1954 ed6728c Thanks @beeequeue! - Bumped supported Node versions to ^22.11 || ^24 || >=26

  • #1961 07278a7 Thanks @beeequeue! - CommitFunctions can now be both sync and async, and the defaultCommitFunctions are now sync.

  • #1652 a0b5326 Thanks @bluwy! - Remove support for the deprecated ___experimentalUnsafeOptions_WILL_CHANGE_IN_PATCH.useCalculatedVersionForSnapshots config. The snapshot.useCalculatedVersion config should be used instead.

Minor Changes

  • #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.

Patch Changes

  • #1667 81832f8 Thanks @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, ed6728c, 03d4479, b9407b3, 2c7c043, 07278a7, ad3edbd, a0b5326]:

    • @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

Major Changes

  • #1655 db46911 Thanks @bluwy! - Update @manypkg/get-packages which drops support for detecting packages in Bolt monorepos and adds support for npm monorepos

Minor Changes

  • #1744 303cacd Thanks @beeequeue! - Bumped the default Prettier version used in the absence of the local installation to v3

Patch Changes

  • #1875 12f20ea Thanks @beeequeue! - Replaced spawndamnit with tinyexec

  • Updated dependencies [c19b112, db46911, 303cacd, 12f20ea]:

    • @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

Minor Changes

  • #1889 96ca062 Thanks @mixelburg! - Error on unsupported flags for individual CLI commands and print the matching command usage to make mistakes easier to spot.

  • #1873 42943b7 Thanks @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 Thanks @Andarist! - Fix npm auth for path-based registries during publish by preserving configured registry URLs instead of normalizing them.

  • #1888 036fdd4 Thanks @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 5c4731f Thanks @Andarist! - Gracefully handle stale npm info data leading to duplicate publish attempts.

  • #1867 f61e716 Thanks @Andarist! - Improved detection for published state of prerelease-only packages without latest dist-tag on GitHub Packages registry.

  • Updated dependencies [036fdd4, 036fdd4, 036fdd4]:

    • @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

2.30.0

Minor Changes

  • #1840 057cca2 Thanks @wotan-allfather! - Add --since flag to add command

    The add command now supports a --since flag that allows you to specify which branch, tag, or git ref to use when detecting changed packages. This is useful for gitflow workflows where you have multiple target branches and the baseBranch config option doesn't cover all use cases.

    Example: changeset add --since=develop

    If not provided, the command falls back to the baseBranch value in your .changeset/config.json.

  • #1845 2b4a66a Thanks @Andarist! - Delegate OTP prompting to the package manager instead of handling it in-process. This allows Changesets to use the package manager's native web auth support.

  • #1774 667fe5a Thanks @bluwy! - Support importing custom commit option ES module. Previously, it used require() which only worked for CJS modules, however now it uses import() which supports both CJS and ES modules.

  • #1839 73b1809 Thanks @leochiu-a! - Add a --message (-m) flag to changeset add (and default changeset) so the changeset summary can be provided from the command line. When --message is present, the summary prompt is skipped while the final confirmation step is kept.

  • #1806 0e8e01e Thanks @luisadame! - Changeset CLI can now be run from the nested directories in the project, where the .changeset directory has to be found in one of the parent directories

Patch Changes

  • #1849 9dc3230 Thanks @Andarist! - Compute the terminal's size lazily to avoid spurious stderr output in non-interactive mode

  • #1857 2a73025 Thanks @mixelburg! - Fix confusing prompt labels when entering changeset summary after external editor fallback

  • #1842 6df3a5e Thanks @RodrigoHamuy! - Allow private packages to depend on skipped packages without requiring them to also be skipped. Private packages are not published to npm, so it is safe for them to have dependencies on ignored or unversioned packages.

  • #1776 503fcaa Thanks @bluwy! - Support absolute paths in changeset status --output <path>

  • Updated dependencies [667fe5a, 1772598, b6f4c74, 6df3a5e, 6df3a5e, 27fd8f4]:

    • @changesets/apply-release-plan@7.1.0
    • @changesets/config@3.1.3
    • @changesets/get-release-plan@4.0.15
    • @changesets/read@0.6.7

2.29.8

Patch Changes

  • #1437 aa68d54 Thanks @with-heart! - Tweaked a hint text printed when one confirms an empty set of packages to be released

  • Updated dependencies [cc28222, e520bf5, 13dace8]:

    • @changesets/config@3.1.2
    • @changesets/apply-release-plan@7.0.14
    • @changesets/get-release-plan@4.0.14
    • @changesets/read@0.6.6

2.29.7

Patch Changes

  • Updated dependencies [957f24e]:
    • @changesets/apply-release-plan@7.0.13

3.0.0-next.1

Major Changes

  • #1656 268a29f Thanks @bluwy! - Bumps minimum node version to >=20.0.0

  • #1651 e1df862 Thanks @bluwy! - Remove support for the --sinceMaster flag for changeset status. Use --since=master or --since=main instead.

Patch Changes

  • Updated dependencies [268a29f, b83787f]:
    • @changesets/assemble-release-plan@7.0.0-next.1
    • @changesets/get-dependents-graph@3.0.0-next.1
    • @changesets/should-skip-package@1.0.0-next.1
    • @changesets/apply-release-plan@8.0.0-next.1
    • @changesets/get-release-plan@5.0.0-next.1
    • @changesets/changelog-git@1.0.0-next.1
    • @changesets/config@4.0.0-next.1
    • @changesets/errors@1.0.0-next.1
    • @changesets/logger@1.0.0-next.1
    • @changesets/types@7.0.0-next.1
    • @changesets/write@1.0.0-next.1
    • @changesets/read@1.0.0-next.1
    • @changesets/git@4.0.0-next.1
    • @changesets/pre@3.0.0-next.1

2.29.6

Patch Changes

2.29.5

Patch Changes

  • #1693 6352819 Thanks @Andarist! - Fixed an issue with workspace:^ and workspace:~ dependency ranges not being semantically treated as, respectively, ^CURRENT_VERSION and ~CURRENT_VERSION. This led to dependent packages being, at times, bumped too often when their dependencies with those ranges were bumped.

  • Updated dependencies [6352819]:

    • @changesets/assemble-release-plan@6.0.9
    • @changesets/get-release-plan@4.0.13

2.29.4

Patch Changes

  • #1668 65d6632 Thanks @Andarist! - Fixed a crash in pre mode when trying to version private packages when tagging for private package is disabled

  • Updated dependencies [65d6632]:

    • @changesets/assemble-release-plan@6.0.8
    • @changesets/get-release-plan@4.0.12

2.29.3

Patch Changes

  • #1589 de8bebc Thanks @remorses, @vzt7! - Fixed a crash in prerelease mode when a package misses the version field in its package.json

  • #1619 c1e8a78 Thanks @manucorporat! - Support ../ in publishConfig.directory when publishing packages

  • Updated dependencies [de8bebc]:

    • @changesets/assemble-release-plan@6.0.7
    • @changesets/get-release-plan@4.0.11

3.0.0-next.0

Major Changes

  • #1479 7f34a00 Thanks @bluwy! - Add "engines" field for explicit node version support. The supported node versions are >=18.0.0.

  • #1482 df424a4 Thanks @Andarist! - From now on this package is going to be published as ES module.

Patch Changes

  • #1476 e0e1748 Thanks @pralkarz! - Replace fs-extra usage with node:fs

  • #1570 d099e43 Thanks @pralkarz! - Removed extra leftover code related to Changesets v1

  • #1616 609046c Thanks @bluwy! - Remove term-size dependency

  • #1640 2ad65e0 Thanks @bluwy! - Remove deprecated flag warnings, including --updateChangelog, --isPublic, --skipCI, and --commit

  • Updated dependencies [e0e1748, 6d1f384, 7f34a00, 3628cab, 8f7b607, df424a4]:

    • @changesets/apply-release-plan@8.0.0-next.0
    • @changesets/config@4.0.0-next.0
    • @changesets/write@1.0.0-next.0
    • @changesets/read@1.0.0-next.0
    • @changesets/git@4.0.0-next.0
    • @changesets/pre@3.0.0-next.0
    • @changesets/assemble-release-plan@7.0.0-next.0
    • @changesets/get-dependents-graph@3.0.0-next.0
    • @changesets/should-skip-package@1.0.0-next.0
    • @changesets/get-release-plan@5.0.0-next.0
    • @changesets/changelog-git@1.0.0-next.0
    • @changesets/errors@1.0.0-next.0
    • @changesets/logger@1.0.0-next.0
    • @changesets/types@7.0.0-next.0

2.29.2

Patch Changes

  • #1636 f73f84a Thanks @Netail! - Correctly resolve new changesets with since option when the .changeset directory is not directly in the git root

  • Updated dependencies [f73f84a]:

    • @changesets/read@0.6.5
    • @changesets/git@3.0.4
    • @changesets/get-release-plan@4.0.10
    • @changesets/apply-release-plan@7.0.12

2.29.1

Patch Changes

  • #1620 b15e629 Thanks @Netail! - Correctly fetch new changesets with since if the git option diff.relative has been set to true

  • Updated dependencies [b15e629]:

    • @changesets/git@3.0.3
    • @changesets/apply-release-plan@7.0.11
    • @changesets/read@0.6.4
    • @changesets/get-release-plan@4.0.9

2.29.0

Minor Changes

  • #1470 29f34a3 Thanks @JounQin! - Support scoped registries configured using package.json#publishConfig

2.28.1

Patch Changes

  • Updated dependencies [b9df596]:
    • @changesets/config@3.1.1
    • @changesets/apply-release-plan@7.0.10
    • @changesets/get-release-plan@4.0.8

2.28.0

Minor Changes

  • #1453 84a4a1b Thanks @bennypowers! - Added a new config option to opt-out from formatting with Prettier using prettier: false.

Patch Changes

  • Updated dependencies [84a4a1b, 84a4a1b]:
    • @changesets/types@6.1.0
    • @changesets/config@3.1.0
    • @changesets/write@0.4.0
    • @changesets/apply-release-plan@7.0.9
    • @changesets/assemble-release-plan@6.0.6
    • @changesets/changelog-git@0.2.1
    • @changesets/get-dependents-graph@2.1.3
    • @changesets/get-release-plan@4.0.7
    • @changesets/pre@2.0.2
    • @changesets/read@0.6.3
    • @changesets/should-skip-package@0.1.2

2.27.12

Patch Changes

  • #1562 a0f87f1 Thanks @Netail, @cefn! - Fixed changelog application when executing using npx and similar tools

  • Updated dependencies [a0f87f1]:

    • @changesets/apply-release-plan@7.0.8

2.27.11

Patch Changes

  • Updated dependencies [f0270f6]:
    • @changesets/config@3.0.5
    • @changesets/apply-release-plan@7.0.7
    • @changesets/get-release-plan@4.0.6

2.27.10

Patch Changes

2.27.9

Patch Changes

2.27.8

Patch Changes

  • #1417 bc75c1a Thanks @trivikr! - Replace chalk with picocolors to reduce install size

  • #1419 4efc038 Thanks @bluwy! - Fix logging --version flag

  • #1445 52c302a Thanks @bluwy! - Remove unused @babel/runtime dependency

  • #1446 5150fc1 Thanks @benmccann! - Switched from preferred-pm to package-manager-detector in order to reduce installation size

  • Updated dependencies [bc75c1a, 52c302a]:

    • @changesets/get-dependents-graph@2.1.2
    • @changesets/logger@0.1.1
    • @changesets/read@0.6.1
    • @changesets/assemble-release-plan@6.0.4
    • @changesets/should-skip-package@0.1.1
    • @changesets/apply-release-plan@7.0.5
    • @changesets/get-release-plan@4.0.4
    • @changesets/write@0.3.2
    • @changesets/git@3.0.1
    • @changesets/pre@2.0.1
    • @changesets/config@3.0.3

2.27.7

Patch Changes

  • #1047 d108fa6 Thanks @patzick! - Fixed a crash that could occur when depending on a tagged version of another workspace package.

  • #1400 dd6e5bb Thanks @Andarist! - Fixed a crash that prevented the CLI from running in a scenario when a workspace depends on the root workspace

  • Updated dependencies [d108fa6, dd6e5bb, dd6e5bb]:

    • @changesets/apply-release-plan@7.0.4
    • @changesets/config@3.0.2
    • @changesets/get-dependents-graph@2.1.1
    • @changesets/assemble-release-plan@6.0.3
    • @changesets/get-release-plan@4.0.3

2.27.6

Patch Changes

  • #1392 f295b3e Thanks @bluwy! - Replace meow dependency with mri to reduce the number of transitive dependencies

  • #1390 6a3452e Thanks @bluwy! - Display changeset status --verbose in list form and remove tty-table dependency

2.27.5

Patch Changes

  • #1370 5e9d33a Thanks @Andarist! - Fixed a regression that caused changeset version to fail on packages having a dev dependency on a skipped package.

  • Updated dependencies [5e9d33a]:

    • @changesets/get-dependents-graph@2.1.0
    • @changesets/assemble-release-plan@6.0.2
    • @changesets/config@3.0.1
    • @changesets/get-release-plan@4.0.2
    • @changesets/apply-release-plan@7.0.3

2.27.4

Patch Changes

  • #1361 954a16a Thanks @jakebailey! - Version 2.25.0 introduced the privatePackage configuration option with default { version: false, tag: false }; due to a bug, these options were not respected in all commands, leading to commands like changeset tag still tagging private packages. This has been fixed, and all packages now respect this option.

  • #1369 d729d8c Thanks @Andarist! - changeset tag should now correctly skip tags that exist on the remote

  • Updated dependencies [954a16a]:

    • @changesets/assemble-release-plan@6.0.1
    • @changesets/apply-release-plan@7.0.2
    • @changesets/get-release-plan@4.0.1

2.27.3

Patch Changes

  • #1357 18c966a Thanks @Andarist! - Fixed an issue with changeset status executed without since argument. It should now correctly use the configured base branch as the default value.

2.27.2

Patch Changes

  • #1354 69be7dc Thanks @Andarist! - Fixed an issue with changeset status incorrectly returning an error status in two cases:

    • for changed ignored packages
    • for changed private packages when privatePackage.version was set to false
  • #1351 c6da182 Thanks @TheHolyWaffle! - Fix an issue with not applying a custom .prettierrc configuration with prettier@>= 3.1.1

  • Updated dependencies [c6da182]:

    • @changesets/apply-release-plan@7.0.1
    • @changesets/write@0.3.1

2.27.1

Patch Changes

  • #1267 86cfff1 Thanks @Andarist! - Make ./bin.js available through package.json#exports to fix compatibility with changesets/action.

2.27.0

Minor Changes

Patch Changes

  • #1053 90a870a Thanks @paescuj! - Replace the dependency is-ci with ci-info.

  • Updated dependencies [a971652, dfd4cca]:

    • @changesets/assemble-release-plan@6.0.0
    • @changesets/get-dependents-graph@2.0.0
    • @changesets/apply-release-plan@7.0.0
    • @changesets/get-release-plan@4.0.0
    • @changesets/changelog-git@0.2.0
    • @changesets/config@3.0.0
    • @changesets/errors@0.2.0
    • @changesets/logger@0.1.0
    • @changesets/types@6.0.0
    • @changesets/write@0.3.0
    • @changesets/read@0.6.0
    • @changesets/git@3.0.0
    • @changesets/pre@2.0.0

2.26.2

Patch Changes

  • #1176 41988ce Thanks @joshwooding! - Bump semver dependency to v7.5.3

  • Updated dependencies [41988ce]:

    • @changesets/apply-release-plan@6.1.4
    • @changesets/assemble-release-plan@5.2.4
    • @changesets/get-dependents-graph@1.3.6
    • @changesets/get-release-plan@3.0.17
    • @changesets/config@2.3.1

2.26.1

Patch Changes

  • #1115 feddc88 Thanks @Andarist! - Call pnpm publish directly from the directory of the published package. This allows pnpm to correctly handle configured publishConfig.directory.

2.26.0

Minor Changes

  • #1033 521205d Thanks @Andarist! - A new config-level changedFilePatterns option has been added. You can configure it with an array of glob patterns like here:

    // .changeset/config.json
    {
      "changedFilePatterns": ["src/**"]
    }

    Files that do not match the configured pattern won't contribute to the "changed" status of the package to which they belong. This both affects changesets add and changeset status.

Patch Changes

  • Updated dependencies [598136a, 521205d, 521205d, 598136a, 598136a, 521205d]:
    • @changesets/git@2.0.0
    • @changesets/config@2.3.0
    • @changesets/types@5.2.1
    • @changesets/apply-release-plan@6.1.3
    • @changesets/read@0.5.9
    • @changesets/assemble-release-plan@5.2.3
    • @changesets/get-release-plan@3.0.16
    • @changesets/changelog-git@0.1.14
    • @changesets/get-dependents-graph@1.3.5
    • @changesets/pre@1.0.14
    • @changesets/write@0.2.3

2.25.2

Patch Changes

  • Updated dependencies [6cc4300]:
    • @changesets/apply-release-plan@6.1.2
    • @changesets/write@0.2.2

2.25.1

Patch Changes

  • #997 4d4d67b Thanks @JakeGinnivan! - Add error message when running changesets in a repo with workspaces configured but no packages yet

  • #985 8d0115e Thanks @mino01x! - Fixed an issue with private packages with versions being included in the CLI prompt despite the privatePackages.version: false setting.

2.25.0

Minor Changes

  • #662 8c08469 Thanks @JakeGinnivan! - Private packages can now be tagged in the same way public packages do when they are published to npm.

    To enable set privatePackages: { version: true, tag: true } in your config.json.

    You can also now opt private packages out of versioning entirely by setting privatePackages: false.

Patch Changes

  • #953 98d63e0 Thanks @alexamy! - Add a new line at the end of the default config file generated when invoking changeset init.

  • #949 64585ea Thanks @Andarist, @BPScott! - Fixed the issue that caused transitive dependents of dev dependents to be bumped when a package got bumped and when using ___experimentalUnsafeOptions_WILL_CHANGE_IN_PATCH.updateInternalDependents: "always". To illustrate this with an example:

    pkg-a - version: 1.0.0
    pkg-b - devDependencies['pkg-a']: 1.0.0
    pkg-c - dependencies['pkg-b']: 1.0.0
    

    With a changeset for pkg-a the pkg-c could have been sometimes incorrectly released.

  • Updated dependencies [8c08469, 8c08469, 64585ea]:

    • @changesets/git@1.5.0
    • @changesets/config@2.2.0
    • @changesets/types@5.2.0
    • @changesets/assemble-release-plan@5.2.2
    • @changesets/apply-release-plan@6.1.1
    • @changesets/read@0.5.8
    • @changesets/get-release-plan@3.0.15
    • @changesets/changelog-git@0.1.13
    • @changesets/get-dependents-graph@1.3.4
    • @changesets/pre@1.0.13
    • @changesets/write@0.2.1

2.24.4

Patch Changes

  • Updated dependencies [c140171]:
    • @changesets/apply-release-plan@6.1.0
    • @changesets/write@0.2.0

2.24.3

Patch Changes

  • Updated dependencies [b023e4b]:
    • @changesets/assemble-release-plan@5.2.1
    • @changesets/get-release-plan@3.0.14

2.24.2

Patch Changes

  • #900 7d998ee Thanks @sdirosa! - Fixed an issue with generating changelogs not being skipped when the changelog config option was set to false.

  • #720 0fd56e1 Thanks @bhovhannes! - Private packages without a version field are no longer listed when adding a changeset.

  • #844 8627ec1 Thanks @Andarist! - Attempt to log stdout when publish fails if stderr is empty and JSON error can't be retrieved from none of those.

  • Updated dependencies [7d998ee, 7d998ee]:

    • @changesets/config@2.1.1
    • @changesets/apply-release-plan@6.0.4
    • @changesets/get-release-plan@3.0.13

2.24.1

Patch Changes

  • Updated dependencies [f64bc1b]:
    • @changesets/git@1.4.1
    • @changesets/apply-release-plan@6.0.3
    • @changesets/read@0.5.7
    • @changesets/get-release-plan@3.0.12

2.24.0

Minor Changes

  • #858 dd9b76f Thanks @dotansimha! - Added a new config flag for changesets version --snapshot mode: --snapshot-prerelease-template

  • #858 dd9b76f Thanks @dotansimha! - Added a new config option: snapshot.prereleaseTemplate for customizing the way snapshot release numbers are being composed.

Patch Changes

  • #858 dd9b76f Thanks @dotansimha! - A possibility to use the calculated version for snapshot releases is now stable 🥳 All snapshot-related config parameters are now grouped under a single config property called snapshot.

    To migrate, make sure to update your config.json.

    Old usage (still works, but comes with a deprecated warning):

    {
      "___experimentalUnsafeOptions_WILL_CHANGE_IN_PATCH": {
        "useCalculatedVersionForSnapshots": true
      }
    }

    New usage:

    {
      "snapshot": {
        "useCalculatedVersion": true
      }
    }
  • Updated dependencies [dd9b76f, dd9b76f, dd9b76f]:

    • @changesets/config@2.1.0
    • @changesets/git@1.4.0
    • @changesets/assemble-release-plan@5.2.0
    • @changesets/types@5.1.0
    • @changesets/apply-release-plan@6.0.2
    • @changesets/get-release-plan@3.0.11
    • @changesets/read@0.5.6
    • @changesets/changelog-git@0.1.12
    • @changesets/get-dependents-graph@1.3.3
    • @changesets/pre@1.0.12
    • @changesets/write@0.1.9

2.23.2

Patch Changes

  • #871 e174172 Thanks @NicoKam! - Fixed filtering of the ignored packages when adding a changeset.

2.23.1

Patch Changes

  • #843 101b1cb Thanks @caohuilin! - Fixed the printed filename in the verbose output of changeset status.

  • #857 7febb59 Thanks @dotansimha! - Fixed an issue with dependency ranges still using pre-existing range modifiers instead of fixed package versions when performing a snapshot release. This ensures that installs of snapshot versions are always reproducible.

  • #744 84e46d1 Thanks @mskelton! - Ignored packages are no longer listed when adding a changeset.

  • Updated dependencies [2827c7a, 7b1c0c1, 7febb59]:

    • @changesets/config@2.0.1
    • @changesets/apply-release-plan@6.0.1
    • @changesets/get-release-plan@3.0.10

2.23.0

Minor Changes

  • #796 745b771 Thanks @JakeGinnivan! - Upgraded tty-table to fix deprecation warnings coming from its transitive dependency.

Patch Changes

  • #811 c54c25d Thanks @samrose3! - Improved accessibility of the CLI prompts by using selected/unselected indicators that don't rely solely on the colors.

  • #767 d6bfcc5 Thanks @Andarist! - Improve the error message when a package referenced in a changeset can't be found. The message will now also include the changeset's ID.

  • Updated dependencies [d6bfcc5]:

    • @changesets/assemble-release-plan@5.1.3
    • @changesets/get-release-plan@3.0.9

2.22.0

Minor Changes

  • #768 c87eba6 Thanks @rohit-gohri! - Allow "commit" option to be more configurable. You can now point to a module (using a module name or a relative path) that might contain getAddMessage and/or getVersionMessage. This allows you to configure how the commit message is generated, if [skip ci] gets included, etc.

Patch Changes

  • #776 ad7506d Thanks @janosh! - changeset init will now configure baseBranch: "main" in the .changeset/config.json as the default value.

  • #770 eb86652 Thanks @alizeait! - changeset add and changeset status should now properly handle the situation where Changesets are managed from a directory different than the root of the repository.

  • Updated dependencies [c87eba6, eb86652, c87eba6, c87eba6]:

    • @changesets/types@5.0.0
    • @changesets/git@1.3.2
    • @changesets/apply-release-plan@6.0.0
    • @changesets/config@2.0.0
    • @changesets/assemble-release-plan@5.1.2
    • @changesets/changelog-git@0.1.11
    • @changesets/get-dependents-graph@1.3.2
    • @changesets/get-release-plan@3.0.8
    • @changesets/pre@1.0.11
    • @changesets/read@0.5.5
    • @changesets/write@0.1.8

2.21.1

Patch Changes

  • #760 5a2a59a Thanks @Andarist! - Fixed an issue with logging non-stringified Buffers in case of publish errors.

  • #769 3e8e672 Thanks @Andarist! - Fixed an infinite loop involving a fixed group of packages and a package within that group that was both ignored and dependent on another package from that group.

  • Updated dependencies [3e8e672]:

    • @changesets/assemble-release-plan@5.1.1
    • @changesets/get-release-plan@3.0.7

2.21.0

Minor Changes

  • #690 27a5a82 Thanks @Andarist! - Added a new .changeset/config.json option: fixed. It can be used to group packages that should always be released together. If any package from a group is going to be released then all packages from that group will be released together (with the same version).

    This is similar to what people often know from Lerna as this is how their fixed/locked mode works.

Patch Changes

  • #706 0812858 Thanks @Andarist! - Fixed an issue with "none" releases causing package versions being bumped during snapshot releases. In addition to when you create "none" release types explicitly Changesets might create them implicitly in some situations, for example under some circumstances this issue caused snapshot releases to be created sometimes for ignored packages.

  • #703 15c461d Thanks @Andarist! - Fixed an issue with * dependency ranges not being replaced in premode. Those have to replaced with exact versions because prereleases don't satisfy wildcard ranges. A published prerelease package with such dependency range left untouched won't install correct prerelease dependency version.

  • #749 d14cf79 Thanks @Andarist! - Fixed an issue that caused created CHANGELOG files not being formatted in the same way as the updated ones (this could happen when calling changeset version for the very first time for a package).

  • #751 59c7ebc Thanks @Rugvip! - Fixed an issue where dependent packages would sometimes not get bumped properly when exiting prerelease mode.

  • #703 15c461d Thanks @Andarist! - Fixed an issue with dependant packages being always bumped when their * dependency was bumped.

  • Updated dependencies [0812858, 15c461d, 27a5a82, 27a5a82, d14cf79, 27a5a82, 0d1debd, 59c7ebc, 15c461d]:

    • @changesets/assemble-release-plan@5.1.0
    • @changesets/apply-release-plan@5.0.5
    • @changesets/types@4.1.0
    • @changesets/config@1.7.0
    • @changesets/changelog-git@0.1.10
    • @changesets/get-release-plan@3.0.6
    • @changesets/get-dependents-graph@1.3.1
    • @changesets/git@1.3.1
    • @changesets/pre@1.0.10
    • @changesets/read@0.5.4
    • @changesets/write@0.1.7

2.20.0

Minor Changes

  • #698 9e14a9a Thanks @zthxxx! - Reworked the CLI output when adding a changeset. This includes fixing broken formatting in certain terminal width, reducing visual noise and making other small adjustments.

  • #704 6f9c9d6 Thanks @Andarist! - Dependencies specified using a tag will no longer result in printing incorrect errors in the console.

Patch Changes

  • #740 957e39c Thanks @akphi! - Fixed an issue with failing to parse changesets containing a completely empty summary.

  • #693 1be201f Thanks @luciaquirke! - Fixed an issue with none release type sometimes overriding other release types and thus preventing a release from happening.

  • Updated dependencies [6f9c9d6, 77c1cef, 1be201f]:

    • @changesets/get-dependents-graph@1.3.0
    • @changesets/git@1.3.0
    • @changesets/assemble-release-plan@5.0.5
    • @changesets/config@1.6.4
    • @changesets/apply-release-plan@5.0.4
    • @changesets/read@0.5.3
    • @changesets/get-release-plan@3.0.5

2.19.0

Minor Changes

  • #701 b9b6453 Thanks @Andarist! - Added support for a --no-git-tag CLI flag that can be used with changeset publish to skip creating git tags for published packages. This is mostly useful when publishing snapshot releases.

Patch Changes

  • #713 82be80e Thanks @zthxxx! - Fixed an issue with not being able to reenter exited pre mode.

  • #708 ab8f2b2 Thanks @Andarist! - Updated is-ci dependency that helps us to check if Changesets are executed in the CI environment.

  • #710 4272cb0 Thanks @Andarist! - Errors received from npm profile get --json, that is used to check if 2FA is required, will now always be printed.

  • Updated dependencies [82be80e, e4c4b29]:

    • @changesets/pre@1.0.9
    • @changesets/assemble-release-plan@5.0.4
    • @changesets/get-release-plan@3.0.4

2.18.1

Patch Changes

  • #676 d8f0e68 Thanks @Andarist! - Improved compatibility with npm 7+ since they've started to print errors to the stderr (where previously they were printed to stdout) when using npm publish --json.

  • #676 d8f0e68 Thanks @Andarist! - Fixed an internal issue that prevented npm publish --json's output to be handled properly. This makes sure that unrelated JSONs printed by lifecycle scripts don't interfere with our logic.

  • #667 fe8db75 Thanks @fz6m! - Upgraded @manypkg/get-packages dependency to fix getting correct packages in pnpm workspaces with exclude rules.

  • Updated dependencies [fe8db75, 9a993ba]:

    • @changesets/apply-release-plan@5.0.3
    • @changesets/assemble-release-plan@5.0.3
    • @changesets/config@1.6.3
    • @changesets/get-dependents-graph@1.2.4
    • @changesets/get-release-plan@3.0.3
    • @changesets/git@1.2.1
    • @changesets/pre@1.0.8
    • @changesets/types@4.0.2
    • @changesets/read@0.5.2
    • @changesets/write@0.1.6

2.18.0

Minor Changes

  • #634 2b49c39 Thanks @joeldenning! - The new changeset tag command has been added. It can be used to create git tags for all packages.

    This is helpful in situations where a different tool is used to publish packages instead of Changesets. For situations where changeset publish is executed, running changeset tag is not needed.

    Note that it is expected that changeset version is run before changeset tag, so that the package.json versions are updated before the git tags are created. This command also doesn't take any configuration into account - it simply create tags for all packages with whatever version that is currently in their respective package.json.

Patch Changes

  • #585 74dda8c Thanks @javier-garcia-meteologica! - Add support for workspace:^ and workspace:~ dependency ranges.

  • #660 5413f3e Thanks @tmkx! - Fixed an issue with adding [undefined] to the generated changelog when the commit adding a changeset file could not be found. This could have happened when running changeset add && changeset version in a single command and when using the default changelog generator.

  • Updated dependencies [2b49c39, 74dda8c]:

    • @changesets/git@1.2.0
    • @changesets/apply-release-plan@5.0.2
    • @changesets/get-dependents-graph@1.2.3
    • @changesets/read@0.5.1
    • @changesets/assemble-release-plan@5.0.2
    • @changesets/config@1.6.2
    • @changesets/get-release-plan@3.0.2

2.17.0

Minor Changes

  • #626 bc611cf Thanks @Andarist! - From now on, changeset files starting with a dot (e.g. .ignored-temporarily.md) will be be ignored and kept around after versioning. This allows you to prepare a changeset for something that isn't supposed to be released immediately. An example use case could involve code hidden behind a feature flag.

Patch Changes

  • #582 e89e28a Thanks @Andarist! - Add support for publishConfig.registry

  • Updated dependencies [bc611cf, e89e28a]:

    • @changesets/read@0.5.0
    • @changesets/types@4.0.1
    • @changesets/get-release-plan@3.0.1
    • @changesets/apply-release-plan@5.0.1
    • @changesets/assemble-release-plan@5.0.1
    • @changesets/config@1.6.1
    • @changesets/get-dependents-graph@1.2.2
    • @changesets/git@1.1.2
    • @changesets/pre@1.0.7
    • @changesets/write@0.1.5

2.16.0

Minor Changes

  • #542 de2b4a5 Thanks @Andarist! - A new updateInternalDependents experimental option has been added. It can be used to add dependent packages to the release (if they are not already a part of it) with patch bumps. To use it you can add this to your config:

    {
      "___experimentalUnsafeOptions_WILL_CHANGE_IN_PATCH": {
        "updateInternalDependents": "always"
      }
    }

    This option accepts two values - "always" and "out-of-range" (the latter matches the current default behavior).

  • #562 6353abf Thanks @Andarist! - Stop asking for changeset confirmation when it has been provided using an external editor.

Patch Changes

  • Updated dependencies [de2b4a5, de2b4a5]:
    • @changesets/config@1.6.0
    • @changesets/types@4.0.0
    • @changesets/apply-release-plan@5.0.0
    • @changesets/assemble-release-plan@5.0.0
    • @changesets/get-release-plan@3.0.0
    • @changesets/get-dependents-graph@1.2.1
    • @changesets/git@1.1.1
    • @changesets/pre@1.0.6
    • @changesets/read@0.4.7
    • @changesets/write@0.1.4

2.15.0

Minor Changes

  • #559 bb7106d Thanks @Andarist! - Added new --open flag to the add command. It opens the created changeset with an external editor.

Patch Changes

  • Updated dependencies [8b9ac07]:
    • @changesets/assemble-release-plan@4.1.1

2.14.1

Patch Changes

2.14.0

Minor Changes

  • 12f9a43 #507 Thanks @zkochan! - New setting added: bumpVersionsWithWorkspaceProtocolOnly. When it is set to true, versions are bumped in dependencies, only if those versions are prefixed by the workspace protocol. For instance, "foo": "workspace:^1.0.0".

Patch Changes

  • Updated dependencies [12f9a43]:
    • @changesets/apply-release-plan@4.2.0
    • @changesets/assemble-release-plan@4.1.0
    • @changesets/config@1.5.0
    • @changesets/get-dependents-graph@1.2.0
    • @changesets/types@3.3.0

2.13.1

Patch Changes

  • 0d5b9e1 #518 Thanks @zkochan! - From now on, to fix issues with some auto-save configurations in IDEs, the editor won't be re-opened if one saves an empty summary. In such a scenario the CLI will prompt again for the summary to be written in the terminal.

2.13.0

Minor Changes

  • 412b4b9 #504 Thanks @vitorbal! - changeset status command no longer errors when no packages have been changed.

  • 24d7bc9 #495 Thanks @RoystonS! - Automatically deepen shallow clones in order to determine the correct commit at which changesets were added. This helps Git-based changelog generators to always link to the correct commit. From now on it's not required to configure fetch-depth: 0 for your actions/checkout when using Changesets GitHub action.

Patch Changes

2.12.0

Minor Changes

  • c6d38b5 #469 Thanks @camdub! - Handle JSON errors for unpublished packages on the github package registry

2.11.2

Patch Changes

  • b4e4b93 #448 Thanks @vlad-zhukov! - Packages are now published from cwd (usually the root of the repository) rather than from the package directories. This respects .npmrc files put in the root directory.

2.11.1

Patch Changes

2.11.0

Minor Changes

  • e33e4ca #458 Thanks @emmenko! - Allow glob expressions to be provided for the linked and ignore options

Patch Changes

  • a60c0e1 #465 Thanks @Andarist! - Fixed the printed description of how pre command can be used.

  • Updated dependencies [f4973a2, e33e4ca]:

    • @changesets/types@3.2.0
    • @changesets/config@1.4.0

2.10.3

Patch Changes

  • d1d987c #455 Thanks @Andarist! - Fixed an issue with linked package being bumped when its dev dependency from the linked set was bumped during the versioning.

  • 9d99bd1 #446 Thanks @Andarist! - Fixed an issue with dependent packages not being updated to their highest bump type in pre mode sometimes. This could happen when dependent packages were only versioned because of their dependencies being upgraded and not because of a dedicated changeset for those dependent packages.

    For the very same reason linked packages were also not always bumped correctly in pre mode to the highest bump type in a linked group.

  • Updated dependencies [ab98fe3, d1d987c, 9d99bd1]:

    • @changesets/assemble-release-plan@4.0.0
    • @changesets/get-release-plan@2.0.1

2.10.2

Patch Changes

  • d531dbd #412 Thanks @Feiyang1! - Fixed an issue with the same package specified as a different dependency type with different range types not being updated correctly for all of them.

  • Updated dependencies [d531dbd]:

    • @changesets/assemble-release-plan@3.0.1

2.10.1

Patch Changes

  • efd01d9 #437 Thanks @Blasz! - Fix version command not committing when commit config option is set

2.10.0

Minor Changes

  • dca4a91 #357 Thanks @zkochan! - Open an editor when no message is given when creating a changeset

  • a57d163 #428 Thanks @dotansimha! - Added support for publishing from a subdirectory of packages, using publishConfig.directory field

Patch Changes

  • 868eb1e #434 Thanks @mitchellhamilton! - Add --no-git-checks to pnpm publish in changeset publish to resolve issues with publishing on CI

  • Updated dependencies [1dd3117, a57d163]:

    • @changesets/git@1.0.6
    • @changesets/types@3.1.1

2.9.2

Patch Changes

2.9.1

Patch Changes

  • 377f5c3 #393 Thanks @Andarist! - Fixed an issue with experimental flags being written to disk as part of the default config when initializing Changesets.

  • Updated dependencies [377f5c3, 377f5c3]:

    • @changesets/config@1.3.0

2.9.0

Minor Changes

  • 9006375 #392 Thanks @Andarist! - Changed condition based on which single-package repositories are identified when creating tags after successful publish. It is now based on whether we have recognized the repository to be managed by monorepo tooling or not.

  • 9dcc364 #371 Thanks @Feiyang1! - Added support for ignoring packages in the version command. The version of ignored packages will not be bumped, but their dependencies will still be bumped normally. This is useful when you have private packages, e.g. packages under development. It allows you to make releases for the public packages without changing the version of your private packages. To use the feature, you can define the ignore array in the config file with the name of the packages:

    {
      ...
      "ignore": ["pkg-a", "pkg-b"]
      ...
    }
    

    or you can pass the package names to the --ignore flag when using cli:

    yarn changeset version --ignore pkg-a --ignore --pkg-b
    

Patch Changes

  • Updated dependencies [00e768e, addd725, 9dcc364, 9dcc364]:
    • @changesets/assemble-release-plan@3.0.0
    • @changesets/apply-release-plan@4.0.0
    • @changesets/get-release-plan@2.0.0
    • @changesets/config@1.2.0
    • @changesets/types@3.1.0

2.8.0

Minor Changes

  • 6d0790a #359 Thanks @ajaymathur! - Add support for snapshot flag to version command. Usage: changeset version --snapshot [tag]. The updated version of the packages looks like 0.0.0[-tag]-YYYYMMDDHHMMSS where YYYY, MM, DD, HH, MM, and SS is the date and time of when the snapshot version is created. You can use this feature with the tag option in the publish command to publish packages under experimental tags from feature branches. To publish a snapshot version of a package under an experimental tag you can do:

    # Version packages to snapshot version
    changeset version --snapshot
    # Publish packages under experimental tag, keeping next and latest tag clean
    changeset publish --tag experimental
    
  • 6d0790a #359 Thanks @ajaymathur! - Add support for tag flag to publish command. Usage: changeset publish --tag <tag>. This will publish the packages under passed npm tag.

  • 5dc389f #376 Thanks @Andarist! - Changed what git tag is generated for single-package repositories after successful publish. The package name is being skipped and the scheme matches what npm version generates, so for example v2.8.0.

Patch Changes

  • Updated dependencies [6d0790a]:
    • @changesets/apply-release-plan@3.1.0
    • @changesets/assemble-release-plan@2.1.0

2.7.2

Patch Changes

  • 8040173 #368 Thanks @Andarist! - When logging successful releases and creating tags include an information about those being git tags.

  • 90f3b65 #373 Thanks @Blasz! - Fix patch bumped dependencies not being updated in dependents package.json when leaving semver range with updateInternalDependencies set to minor.

  • Updated dependencies [90f3b65]:

    • @changesets/apply-release-plan@3.0.3

2.7.1

Patch Changes

  • 52a88ce #361 Thanks @Blasz! - Fix dependency release lines being output when they were skipped via the updateInternalDependencies config option

  • Updated dependencies [52a88ce]:

    • @changesets/apply-release-plan@3.0.1

2.7.0

Minor Changes

  • 2b49d66 #358 Thanks @Blasz! - Add new config option 'updateInternalDependencies' that can be set to 'minor' to only update internal dependencies in the same release if the dependency was minor released or above. Defaults to 'patch' which is the existing behaviour.

Patch Changes

  • Updated dependencies [89f0c49, 2b49d66, 09f62f9]:
    • @changesets/git@1.0.5
    • @changesets/apply-release-plan@3.0.0
    • @changesets/types@3.0.0
    • @changesets/config@1.1.0
    • @changesets/assemble-release-plan@2.0.4
    • @changesets/get-release-plan@1.0.4
    • @changesets/pre@1.0.4
    • @changesets/read@0.4.6
    • @changesets/write@0.1.3

2.6.5

Patch Changes

  • d570a24 #328 Thanks @zkochan! - Use pnpm inside a pnpm workspace. Previously, pnpm was detected properly only in projects that use one lockfile per project. However, by default pnpm creates a single lockfile per workspace.

  • Updated dependencies [d678da5]:

    • @changesets/assemble-release-plan@2.0.2

2.6.4

Patch Changes

  • Updated dependencies [1706fb7]:
    • @changesets/apply-release-plan@2.0.1
    • @changesets/assemble-release-plan@2.0.1
    • @changesets/config@1.0.3
    • @changesets/errors@0.1.4
    • @changesets/get-release-plan@1.0.3
    • @changesets/git@1.0.3
    • @changesets/logger@0.0.5
    • @changesets/pre@1.0.3
    • @changesets/read@0.4.5
    • @changesets/types@2.0.1
    • @changesets/write@0.1.2

2.6.3

Patch Changes

  • 9cdfa36 #318 Thanks @Noviny! - Typo fix in prerelease warning message

  • Updated dependencies [44555b4, c3cc232, 011d57f, 011d57f, 011d57f, 011d57f]:

    • @changesets/apply-release-plan@2.0.0
    • @changesets/assemble-release-plan@2.0.0
    • @changesets/types@2.0.0
    • @changesets/get-release-plan@1.0.2
    • @changesets/config@1.0.2
    • @changesets/git@1.0.2
    • @changesets/pre@1.0.2
    • @changesets/read@0.4.4
    • @changesets/write@0.1.1

2.6.2

Patch Changes

  • 04ddfd7 #305 Thanks @Noviny! - Add link to changelog in readme

  • b49e1cf #306 Thanks @Andarist! - Ignore node_modules when glob searching for packages. This fixes an issue with package cycles.

  • Updated dependencies [04ddfd7, e56928b, b49e1cf]:

    • @changesets/apply-release-plan@1.0.1
    • @changesets/assemble-release-plan@1.0.1
    • @changesets/config@1.0.1
    • @changesets/errors@0.1.3
    • @changesets/get-release-plan@1.0.1
    • @changesets/git@1.0.1
    • @changesets/logger@0.0.4
    • @changesets/parse@0.3.3
    • @changesets/pre@1.0.1
    • @changesets/read@0.4.3
    • @changesets/test-utils@0.0.4
    • @changesets/types@1.0.1

2.6.1

Patch Changes

2.6.0

Minor Changes

Patch Changes

  • 2adfe66 #288 Thanks @mitchellhamilton! - Stop running npm profile get when using non-npm registries

  • Updated dependencies []:

    • @changesets/apply-release-plan@0.4.2

2.5.2

Patch Changes

  • 184a653 #278 Thanks @mitchellhamilton! - Use a single prompt for the semver version type when there is only a single package in the repo in changeset add

    changeset add command with single package repo

2.5.1

Patch Changes

  • 1282ef6 #263 Thanks @mitchellhamilton! - Fixed a bug where only the unreleased pre-release changesets were taken into account when calculating the new version, not previously released changesets.

  • Updated dependencies [1282ef6]:

    • @changesets/assemble-release-plan@0.3.1
    • @changesets/apply-release-plan@0.4.1

2.5.0

Minor Changes

Patch Changes

  • cc64ad52 #254 Thanks @Andarist! - Added GitHub Actions support to CI detection.

  • 4af2a78b #232 Thanks @harrysolovay! - Change format of the automatic commit messages to be in line with conventional commits.

  • ef6402c9 #252 Thanks @Andarist! - Avoid trailing newline for single-line changesets to avoid double newline between release lines when generating final markdown for changelog.

  • Updated dependencies [fe0d9192, ef6402c9, fe0d9192, 503154db]:

    • get-workspaces@0.6.0
    • @changesets/apply-release-plan@0.4.0
    • get-dependents-graph@0.2.0
    • @changesets/get-release-plan@0.4.0
    • @changesets/git@0.4.0
    • @changesets/pre@0.2.0
    • @changesets/read@0.4.1

2.4.1

Patch Changes

2.4.0

Minor Changes

  • bca8865 #221 Thanks @mitchellhamilton! - Added support for baseBranch option which specifies what branch Changesets should use when determining what packages have changed

  • bca8865 #221 Thanks @mitchellhamilton! - Added support for --since option to the status command which shows the release plan since the git ref(branch, tag, commit, etc.) specified with --since and deprecate --sinceMaster option

Patch Changes

  • bca8865 #221 Thanks @mitchellhamilton! - Moved error advising users to run changeset init when a .changeset directory from the add command to all commands except init

  • bca8865 #221 Thanks @mitchellhamilton! - Fixed old changesets not being read in status command

  • Updated dependencies [bca8865, bca8865, bca8865, bca8865]:

    • @changesets/get-release-plan@0.3.0
    • @changesets/read@0.4.0
    • @changesets/config@0.3.0
    • @changesets/git@0.3.0
    • @changesets/apply-release-plan@0.3.1

2.3.3

Patch Changes

  • 9cd1eaf #214 Thanks @Noviny! - Remove unused dependencies
  • Updated dependencies [9cd1eaf, b17ed74]:
    • @changesets/logger@0.0.3
    • @changesets/pre@0.1.1
    • @changesets/test-utils@0.0.3
    • @changesets/git@0.2.5
    • @changesets/config@0.2.4

2.3.2

Patch Changes

  • 7c1269de Thanks @Noviny! - Fix previous version not having correctly built dists

2.3.1

Patch Changes

2.3.0

Minor Changes

Patch Changes

  • 8f0a1ef #183 Thanks @mitchellhamilton! - Add InternalError for errors which are unexpected and if they occur, an issue should be opened. The CLI catches the error and logs a link for users to open an issue with the error and versions of Node and Changesets filled in

  • 8f0a1ef #183 Thanks @mitchellhamilton! - Always publish packages if they don't exist on npm rather than only if they are a greater version than the latest version on npm

  • Updated dependencies [8f0a1ef, 8f0a1ef, 8f0a1ef, 8f0a1ef, 8f0a1ef]:

    • @changesets/assemble-release-plan@0.3.0
    • @changesets/apply-release-plan@0.3.0
    • @changesets/get-release-plan@0.2.0
    • @changesets/types@0.4.0
    • @changesets/errors@0.1.2
    • @changesets/pre@0.1.0
    • @changesets/config@0.2.3
    • get-dependents-graph@0.1.2
    • get-workspaces@0.5.2
    • @changesets/git@0.2.4
    • @changesets/logger@0.0.2
    • @changesets/parse@0.3.1
    • @changesets/read@0.3.1
    • @changesets/test-utils@0.0.2

2.2.0

Minor Changes

  • a679b1d #204 Thanks @Andarist! - Respect publishConfig.access in workspace package.jsons

    Previously, every package in your repository had one 'public' or 'restricted' setting.

    Now, if a workspace has publishConfig.access in its package.json, we will prioritize it over the global changesets config.

  • 51a0d76 #182 Thanks @ajaymathur! - Updated the package to use the new @changesets/logger for logging.

Patch Changes

  • 5ababa0 #201 Thanks @ajaymathur! - Updated to use the Error classes from the @changesets/errors package

  • a679b1d #204 Thanks @Andarist! - Correctly handle the 'access' flag for packages

    Previously, we had access as "public" or "private", access "private" isn't valid. This was a confusing because there are three states for publishing a package:

    • private: true - the package will not be published to npm (worked)
    • access: public - the package will be publicly published to npm (even if it uses a scope) (worked)
    • access: restricted - the package will be published to npm, but only visible/accessible by those who are part of the scope. This technically worked, but we were passing the wrong bit of information in.

    Now, we pass the correct access options public or restricted.

  • da11ab8 #205 Thanks @mitchellhamilton! - Don't update ranges set to */x/X when versioning

  • Updated dependencies [51a0d76, 5ababa0, a679b1d, 5ababa0, da11ab8]:

    • @changesets/logger@0.0.1
    • @changesets/test-utils@0.0.1
    • @changesets/config@0.2.2
    • @changesets/apply-release-plan@0.2.3
    • get-workspaces@0.5.1
    • @changesets/types@0.3.1
    • @changesets/errors@0.1.1

2.1.2

Patch Changes

  • Remove console log
  • When 2fa token is wrong (ie, it has expired) reprompt instead of failing

2.1.1

Patch Changes

  • 71a0193 #197 Thanks @Noviny! - Close off error when running publish where individual packages have pre or post hooks.

    Under the previous behaviour, JSON parsing the response to publish failed, causing git tags to not be created.

2.1.0

Minor Changes

  • 8dce96f #187 Thanks @gardnerjack! - Added --empty flag to the add command for empty changeset files. New tests for adding, writing, parsing, and reading empty changesets.

Patch Changes

  • 7e2fc8e #184 Thanks @Noviny! - Fix message on warning if 'add' command is run before changesets has been initialised.

  • Updated dependencies [8dce96f]:

    • @changesets/parse@0.3.0
    • @changesets/read@0.3.0
    • @changesets/get-release-plan@0.1.3

2.0.4

Patch Changes

2.0.3

Patch Changes

  • 89c0894 #167 Thanks @Noviny! - Fix broken --since-master flag (which was broken by the move to v2 changesets)

  • Updated dependencies [89c0894]:

    • @changesets/git@0.2.2
    • @changesets/get-release-plan@0.1.2
    • @changesets/read@0.2.2

2.0.2

Patch Changes

  • 1ff73b7 #156 Thanks @mitchellhamilton! - Fix commits not being obtained for old changesets

  • 0320391 #163 Thanks @Noviny! - Reordered dependencies in the package json (this should have no impact)

  • Updated dependencies [3dd003c, 1ff73b7, 8c43fa0, 0320391, 1ff73b7]:

    • @changesets/get-release-plan@0.1.1
    • @changesets/apply-release-plan@0.2.1
    • @changesets/assemble-release-plan@0.2.1
    • get-dependents-graph@0.1.1
    • @changesets/git@0.2.1
    • @changesets/parse@0.2.1
    • @changesets/read@0.2.1
    • @changesets/types@0.3.0
    • @changesets/config@0.2.1

2.0.1

Patch Changes

2.0.0

Welcome to version 2 🎉🦋

Quickest summary of the most exciting changes:

🦋 Changesets (the written files) have a new format! They are now human readable/writeable

🦋 The config options have been completely rethought to be clearer and more concise

🦋 Changesets has been significantly decomposed, allowing an easier time building tools on top of it

Major Changes

Changed command line argument names

We have removed command line arguments that overrwrite the config. The following commands can no longer be passed in:

  • updateChangelog
  • isPublic
  • skipCI
  • commit

This has been done to avoid overloading the number of ways you can pass options, as within any single repository, there should be a single consistent way in which these values are always provided.

Changed how Config works

The Changesets config is now written in JSON with fewer options. The new defaults are shown below.

{
  "$schema": "https://unpkg.com/@changesets/config/schema.json",
  "changelog": "@changesets/cli/changelog",
  "commit": false,
  "linked": [],
  "access": "private"
}

Reasoning: Having a JSON config makes it easier to build other tools on changesets because the config can be read without executing user code that could potentially be unsafe. It also means we can have easy autocompletion and descriptions in editors that don't go out of date like the comments in the JS config along with being able to packagise changelog entry generators.

Migrating
  1. Run yarn changeset init to create a config file in the new format at .changeset/config.json
  2. If you're using changelogs, move getReleaseLine and getDependencyReleaseLine to their own module and set the changelog option to the path to the module. If you're not using changelogs, set the changelog option to false. In the future, we will be providing packages to write changelogs for common use cases
  3. Set access to "public" if publishOptions.public is true, otherwise set it to "private"
  4. If you use linked, copy your linked package groups from the JS config to the the JSON file
  5. If you use commit and skipCI in versionOptions or publishOptions, set commit to true, all commits will include a skip ci message. if you have a use case for only using commit on one command or not including a skip ci message by default, contact us and we will talk about re-implementing these features.
  6. Delete .changeset/config.js

Changelog generation functions have minor changes

In addition to how these functions are defined (see changes to config), the data that is passed through to these functions is notably different to what it was before. For the most part, the changelog functions simply receive richer information, based on the new changelog format.

BREAKING: The release objects and dependency release objects now use release.newVersion for the latest version, instead of the previous release.version.

The @changesets/types package includes exports for both GetReleaseLine as well as GetDependencyReleaseLine.

If you were using the default changelog generation scripts, you won't need to worry. Otherwise, we recommend updating your command and manually running version to ensure you are still getting the changelogs you expect.

Looking further forward We are already aware that we want to change how people write these generation functions, including opening up more flexibility, and access to things such as the underlying release plan. This will likely require a breaking change in the future, but we thought we were changing enough this release that we didn't want too much turmoil. 😁

Renamed commands

  • bump has been renamed to version
  • release has been renamed to publish

This is a reversion to the changes made in 1.0.0.

Reasoning: We switched the names because we wanted to avoid confusion with the related tasks in npm. While technically it removed confusion that this was doing the same thing as npm version, or npm publish, the new terms did not convey easily grokkable meanings. As we weren't benefiting from the new names, we have decided to revert to names that have more meaning within the community, even though these commands do slightly more than this.

Minor Changes

  • 296a6731 - Safety bump: Towards the end of preparing changesets v2, there was a lot of chaos - this bump is to ensure every package on npm matches what is found in the repository.

Patch Changes

  • Updated dependencies [ca8ff585, 296a6731]:
    • @changesets/get-release-plan@0.1.0
    • @changesets/apply-release-plan@0.2.0
    • @changesets/assemble-release-plan@0.2.0
    • @changesets/config@0.2.0
    • get-dependents-graph@0.1.0
    • get-workspaces@0.5.0
    • @changesets/git@0.2.0
    • @changesets/parse@0.2.0
    • @changesets/read@0.2.0
    • @changesets/types@0.2.0

1.3.3

Patch Changes

  • a15abbf9 - Previous release shipped unbuilt code - fixing that

1.3.1

Patch Changes

  • c46e9ee7 - Use 'spawndamnit' package for all new process spawning
  • 5b28c527 - Fix 2FA check on release
  • 6f8eb05a - Updated readme
  • 6d119893 - Move git module to be its own external module

1.3.0

Minor Changes

Patch Changes

1.2.0

Minor Changes

  • 16fde2e0 #75 Thanks @mitchellhamilton! - Use enquirer instead of inquirer for asking questions because it's smaller, faster and prettier. Change bump type questions from asking for each bump type individually per package to asking users to two questions where the user selects what packages should have major and minor bumps and the packages left are assumed to be patch bumps. This dramatically cuts down the amount of time it takes to create a changeset with a large number of packages.

    example of using the CLI with the new questions

Patch Changes

1.1.5

Patch Changes

  • 7fa42641 #61 Thanks @Noviny! - When bumping, run prettier over the changelog file.

    If you want this option turned off, add `disabledLanguage: ["markdown"] to your prettier config.

1.1.4

Patch Changes

  • 83ba6d3f - Convert various modules to TypeScript

  • a966701d - Add repository information to package.json

  • c00e65ef - Fix bug where unprovided command line options overrode the config file, leading to incorrect states

  • 8d2e700c - Remove unused function parseChangesetCommit

  • 7399648d - Make ids human readable

  • Updated dependencies [83ba6d3f]:

    • get-workspaces@0.3.0

1.1.3

Patch Changes

  • 67db935d - Fix release without built files

1.1.2

Patch Changes

1.1.1

Patch Changes

  • b93d04a2 - Consume get-workspaces as dependency

  • 079eabae #33 Thanks @mitchellhamilton! - Fix a bug with linked packages where it would break if there was a linked package that didn't have a changeset

  • Updated dependencies [b93d04a2]:

    • get-workspaces@0.1.0

1.1.0

Minor Changes

1.0.1

Patch Changes

  • 9435d886: Fix binary and published files

1.0.0

Major Changes

  • 51c8b0d6: Remove noChangelog flag in favor of updateChangelog flag (default behaviour remains the same).

    If you were using this custom flag, you will need to replaces noChangelog: true with updateChangelog: false

  • 51c8b0d6: Rename commands from @atlaskit/build-releases

    We are no longer mirroring the names from npm/yarn commands, so it is easy to write package scripts for each command without footguns. The functionality of the commands remains the same. In addition, the binary has been changed to changeset.

    The new names are:

    • build-releases initialize => changeset init (for ecosystem consistency)
    • build-releases changeset => changeset (default command). You can also run changeset add
    • build-releases version => changeset bump
    • build-releases publish => changeset release

    The function of these commands remains unchanged.

    • 51c8b0d6: Change format of changelog entries

    Previously changelog entries were in the form of:

    ## 2.1.0
    
    - [patch] Allows passing --public flag for publishing scoped packages [159c28e](https://bitbucket.org/changesets/atlaskit-mk-2/commits/159c28e)
    - [minor] Changes changelogs to be opt out rather than opt in [f461788](https://bitbucket.org/changesets/atlaskit-mk-2/commits/f461788)

    which doesn't take into account the importance of particular entries. We are moving to an ordered system for changelog entries, and to match this, we are updating the headings we use to the following format:

    ## 2.1.0
    
    ### Minor
    
    - Allows passing --public flag for publishing scoped packages [159c28e](https://bitbucket.org/changesets/atlaskit-mk-2/commits/159c28e)
    
    ### Patch
    
    - [minor] Changes changelogs to be opt out rather than opt in [f461788](https://bitbucket.org/changesets/atlaskit-mk-2/commits/f461788)

    This changes the format of the default getReleaseLine from

    const getReleaseLine = async (changeset, versionType) => {
      const indentedSummary = changeset.summary
        .split("\n")
        .map((l) => `  ${l}`.trimRight())
        .join("\n");
    
      return `- [${versionType}] ${changeset.commit}:\n\n${indentedSummary}`;
    };

    to

    const getReleaseLine = async (changeset, type) => {
      const [firstLine, ...futureLines] = changeset.summary
        .split("\n")
        .map((l) => l.trimRight());
    
      return `- ${changeset.commit}: ${firstLine}\n${futureLines
        .map((l) => `  ${l}`)
        .join("\n")}`;
    };

    You will end up with some odd changelog entries if you do not update your release line.

Minor Changes

  • 51c8b0d6: Support non-bolt repositories

    Changesets have been expanded to support:

    • bolt repositories
    • yarn workspaces-based repositories
    • single package repositories.

    Currently not supported: bolt repositories with nested workspaces.

    To do this, functions that call out to bolt have been inlined, and obviously marked within the file-system. In addition, the get-workspaces function has undergone significant change, and will be extracted out into its own package soon.

    This is to support other tools wanting this level of interoperability.

    If plans to modularize bolt proceed, we may go back to relying on its functions.

    This should have no impact on use.

    • 51c8b0d6: Add 'select all' and 'select all changed' options, to make mass-bumping easier.
    • eeb4d5c6: Add new command: status - see Readme for more information

@atlaskit/build-releases - legacy changelog

3.0.3

  • [patch]c87337f:
    • The version command now removes empty folders before it starts. This should prevent a race condition in CI

3.0.2

  • [patch]f7b030a:
    • Fixes potential infinite loop in parseChangesetCommit

3.0.1

  • [patch]494c1fe:
    • Update git commit message to match previous tooling.

3.0.0

  • [major][44ec8bf" d](https://bitbucket.org/changesets/atlaskit-mk-2/commits/44ec8bf" d):

    Changesets now use local file system - this has several effects:

    1. Changesets will no longer automatically create a commit. You will need to add and commit the files yourself.
    2. Changesets are easier to modify. You should ONLY modify the changes.md file (Not changes.json).
    3. There will be a new directory which is .changeset, which will hold all the changesets.

    Apart from these changes, your process using this should not have changed.

    Changeset now accepts skipCI flag, where previously release commits automatically skipped CI. i.e.

    yarn build-releases version --skipCI
    

    Breaking: Changeset and version commands now accept --commit flag which makes them commit automatically (previously this was the default behaviour). Otherwise, these commands simply make the file-system changes.

    yarn build-releases changeset --commit
    

    We also introduce the intitialize command. See the package README.md for more details about this.

2.1.3

  • [patch] Bumps bolt version to get some bug fixes around publishing 493f5f7

2.1.2

  • [patch] Pulls in fix in bolt causing publishing to fail when running a yarn subprocess (see boltpkg/bolt #189) 2b36121

2.1.1

  • [patch] Fixes bug where empty summaries would cause a changeset to not get found 25b30bf

2.1.0

  • [minor] Allows passing --public flag for publishing scoped packages 159c28e
  • [minor] Changes changelogs to be opt out rather than opt in f461788

2.0.0

1.28.2

  • [patch] Bug fix and better error messages for changeset error 7f09b86

1.28.1

  • [patch] update flow dep, fix flow errors 722ad83

1.28.0

  • [minor] Adds tagging to releases 34c64fd

1.27.0

  • [minor] Splits out and exposes flattenChangesets function 5ee5f74

1.26.0

  • [minor] Lots of new features (consider this package unstable and only for use internally) 7cdf2e6