- Updated dependencies [
f0270f6
]:- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
-
#1485
baf5644
Thanks @bluwy! - Ignore error if failed to find changed packages inchangeset add
-
#1489
7bf751c
Thanks @marcalexiei! - Use custom errors when exiting add command due to missing tool -
#1466
ccce743
Thanks @marcalexiei! - Add error message and exit when there are no versionable packages -
#1514
962ab91
Thanks @nicoalonsop! - Update spawndamnit to fix cross-spawn vulnerability -
Updated dependencies [
7323704
,26c8ba9
,82cacb2
,962ab91
]:- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
-
#1458
400ab7b
Thanks @benmccann! - Moved@types/semver
todevDependencies
-
#1462
689e541
Thanks @benmccann! - removeoutdent
dependency
-
#1417
bc75c1a
Thanks @trivikr! - Replacechalk
withpicocolors
to reduce install size -
#1445
52c302a
Thanks @bluwy! - Remove unused@babel/runtime
dependency -
#1446
5150fc1
Thanks @benmccann! - Switched frompreferred-pm
topackage-manager-detector
in order to reduce installation size -
Updated dependencies [
bc75c1a
,52c302a
]:- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
-
#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/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
-
#1392
f295b3e
Thanks @bluwy! - Replacemeow
dependency withmri
to reduce the number of transitive dependencies -
#1390
6a3452e
Thanks @bluwy! - Displaychangeset status --verbose
in list form and removetty-table
dependency
-
#1370
5e9d33a
Thanks @Andarist! - Fixed a regression that causedchangeset version
to fail on packages having a dev dependency on a skipped package. -
Updated dependencies [
5e9d33a
]:- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
-
#1361
954a16a
Thanks @jakebailey! - Version 2.25.0 introduced theprivatePackage
configuration option with default{ version: false, tag: false }
; due to a bug, these options were not respected in all commands, leading to commands likechangeset 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/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- #1357
18c966a
Thanks @Andarist! - Fixed an issue withchangeset status
executed withoutsince
argument. It should now correctly use the configured base branch as the default value.
-
#1354
69be7dc
Thanks @Andarist! - Fixed an issue withchangeset status
incorrectly returning an error status in two cases:- for changed ignored packages
- for changed private packages when
privatePackage.version
was set tofalse
-
#1351
c6da182
Thanks @TheHolyWaffle! - Fix an issue with not applying a custom.prettierrc
configuration withprettier@>= 3.1.1
-
Updated dependencies [
c6da182
]:- @changesets/[email protected]
- @changesets/[email protected]
- #1267
86cfff1
Thanks @Andarist! - Make./bin.js
available throughpackage.json#exports
to fix compatibility withchangesets/action
.
-
#1185
a971652
Thanks @Andarist! -package.json#exports
have been added to limit what (and how) code might be imported from the package. -
#1236
dfd4cca
Thanks @camertron! - Avoid using short commit IDs
-
#1053
90a870a
Thanks @paescuj! - Replace the dependencyis-ci
withci-info
. -
Updated dependencies [
a971652
,dfd4cca
]:- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
-
#1176
41988ce
Thanks @joshwooding! - Bumpsemver
dependency to v7.5.3 -
Updated dependencies [
41988ce
]:- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- #1115
feddc88
Thanks @Andarist! - Callpnpm publish
directly from the directory of the published package. This allowspnpm
to correctly handle configuredpublishConfig.directory
.
-
#1033
521205d
Thanks @Andarist! - A new config-levelchangedFilePatterns
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
andchangeset status
.
- Updated dependencies [
598136a
,521205d
,521205d
,598136a
,598136a
,521205d
]:- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- Updated dependencies [
6cc4300
]:- @changesets/[email protected]
- @changesets/[email protected]
-
#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 theprivatePackages.version: false
setting.
-
#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
.
-
#953
98d63e0
Thanks @alexamy! - Add a new line at the end of the default config file generated when invokingchangeset 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
thepkg-c
could have been sometimes incorrectly released. -
Updated dependencies [
8c08469
,8c08469
,64585ea
]:- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- Updated dependencies [
c140171
]:- @changesets/[email protected]
- @changesets/[email protected]
- Updated dependencies [
b023e4b
]:- @changesets/[email protected]
- @changesets/[email protected]
-
#900
7d998ee
Thanks @sdirosa! - Fixed an issue with generating changelogs not being skipped when thechangelog
config option was set tofalse
. -
#720
0fd56e1
Thanks @bhovhannes! - Private packages without aversion
field are no longer listed when adding a changeset. -
#844
8627ec1
Thanks @Andarist! - Attempt to logstdout
when publish fails ifstderr
is empty and JSON error can't be retrieved from none of those. -
Updated dependencies [
7d998ee
,7d998ee
]:- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- Updated dependencies [
f64bc1b
]:- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
-
#858
dd9b76f
Thanks @dotansimha! - Added a new config flag forchangesets 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.
-
#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 calledsnapshot
.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/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
-
#843
101b1cb
Thanks @caohuilin! - Fixed the printed filename in the verbose output ofchangeset 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/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- #796
745b771
Thanks @JakeGinnivan! - Upgradedtty-table
to fix deprecation warnings coming from its transitive dependency.
-
#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/[email protected]
- @changesets/[email protected]
- #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 containgetAddMessage
and/orgetVersionMessage
. This allows you to configure how the commit message is generated, if[skip ci]
gets included, etc.
-
#776
ad7506d
Thanks @janosh! -changeset init
will now configurebaseBranch: "main"
in the.changeset/config.json
as the default value. -
#770
eb86652
Thanks @alizeait! -changeset add
andchangeset 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/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
-
#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/[email protected]
- @changesets/[email protected]
-
#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.
-
#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 callingchangeset 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/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
-
#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.
-
#740
957e39c
Thanks @akphi! - Fixed an issue with failing to parse changesets containing a completely empty summary. -
#693
1be201f
Thanks @luciaquirke! - Fixed an issue withnone
release type sometimes overriding other release types and thus preventing a release from happening. -
Updated dependencies [
6f9c9d6
,77c1cef
,1be201f
]:- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- #701
b9b6453
Thanks @Andarist! - Added support for a--no-git-tag
CLI flag that can be used withchangeset publish
to skip creating git tags for published packages. This is mostly useful when publishing snapshot releases.
-
#713
82be80e
Thanks @zthxxx! - Fixed an issue with not being able to reenter exited pre mode. -
#708
ab8f2b2
Thanks @Andarist! - Updatedis-ci
dependency that helps us to check if Changesets are executed in the CI environment. -
#710
4272cb0
Thanks @Andarist! - Errors received fromnpm profile get --json
, that is used to check if 2FA is required, will now always be printed. -
Updated dependencies [
82be80e
,e4c4b29
]:- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
-
#676
d8f0e68
Thanks @Andarist! - Improved compatibility with npm 7+ since they've started to print errors to thestderr
(where previously they were printed tostdout
) when usingnpm publish --json
. -
#676
d8f0e68
Thanks @Andarist! - Fixed an internal issue that preventednpm 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/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
-
#634
2b49c39
Thanks @joeldenning! - The newchangeset 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, runningchangeset tag
is not needed.Note that it is expected that
changeset version
is run beforechangeset tag
, so that thepackage.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 respectivepackage.json
.
-
#585
74dda8c
Thanks @javier-garcia-meteologica! - Add support forworkspace:^
andworkspace:~
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 runningchangeset add && changeset version
in a single command and when using the default changelog generator. -
Updated dependencies [
2b49c39
,74dda8c
]:- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- #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.
-
#582
e89e28a
Thanks @Andarist! - Add support for publishConfig.registry -
Updated dependencies [
bc611cf
,e89e28a
]:- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
-
#542
de2b4a5
Thanks @Andarist! - A newupdateInternalDependents
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.
- Updated dependencies [
de2b4a5
,de2b4a5
]:- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- #559
bb7106d
Thanks @Andarist! - Added new--open
flag to theadd
command. It opens the created changeset with an external editor.
- Updated dependencies [
8b9ac07
]:- @changesets/[email protected]
12f9a43
#507 Thanks @zkochan! - New setting added: bumpVersionsWithWorkspaceProtocolOnly. When it is set totrue
, versions are bumped independencies
, only if those versions are prefixed by the workspace protocol. For instance,"foo": "workspace:^1.0.0"
.
- Updated dependencies [
12f9a43
]:- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
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.
-
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 configurefetch-depth: 0
for youractions/checkout
when using Changesets GitHub action.
- Updated dependencies [
24d7bc9
,24d7bc9
]:- @changesets/[email protected]
c6d38b5
#469 Thanks @camdub! - Handle JSON errors for unpublished packages on the github package registry
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.
00e2602
#473 Thanks @zzarcon! - Upgradedmeow
dependency to benefit from itsyarg-parser
dependency upgrade that contains a security fix.
e33e4ca
#458 Thanks @emmenko! - Allow glob expressions to be provided for thelinked
andignore
options
-
a60c0e1
#465 Thanks @Andarist! - Fixed the printed description of howpre
command can be used. -
Updated dependencies [
f4973a2
,e33e4ca
]:- @changesets/[email protected]
- @changesets/[email protected]
-
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/[email protected]
- @changesets/[email protected]
-
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/[email protected]
-
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, usingpublishConfig.directory
field
-
868eb1e
#434 Thanks @mitchellhamilton! - Add--no-git-checks
topnpm publish
inchangeset publish
to resolve issues with publishing on CI -
Updated dependencies [
1dd3117
,a57d163
]:- @changesets/[email protected]
- @changesets/[email protected]
-
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/[email protected]
-
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 theversion
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 theignore
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
- Updated dependencies [
00e768e
,addd725
,9dcc364
,9dcc364
]:- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
-
6d0790a
#359 Thanks @ajaymathur! - Add support for snapshot flag to version command. Usage:changeset version --snapshot [tag]
. The updated version of the packages looks like0.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 whatnpm version
generates, so for examplev2.8.0
.
- Updated dependencies [
6d0790a
]:- @changesets/[email protected]
- @changesets/[email protected]
-
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 withupdateInternalDependencies
set to minor. -
Updated dependencies [
90f3b65
]:- @changesets/[email protected]
-
52a88ce
#361 Thanks @Blasz! - Fix dependency release lines being output when they were skipped via the updateInternalDependencies config option -
Updated dependencies [
52a88ce
]:- @changesets/[email protected]
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.
- Updated dependencies [
89f0c49
,2b49d66
,09f62f9
]:- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
-
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/[email protected]
- Updated dependencies [
1706fb7
]:- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
-
9cdfa36
#318 Thanks @Noviny! - Typo fix in prerelease warning message -
Updated dependencies [
44555b4
,c3cc232
,011d57f
,011d57f
,011d57f
,011d57f
]:- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
-
04ddfd7
#305 Thanks @Noviny! - Add link to changelog in readme -
b49e1cf
#306 Thanks @Andarist! - Ignorenode_modules
when glob searching for packages. This fixes an issue with package cycles. -
Updated dependencies [
04ddfd7
,e56928b
,b49e1cf
]:- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
-
41e2e3d
#292 Thanks @acheronfail! - Use@changesets/write
for writing changesets internally -
cc8c921
#290 Thanks @mitchellhamilton! - Use@manypkg/get-packages
instead ofget-workspaces
internally -
cc8c921
#290 Thanks @mitchellhamilton! - Don't showall packages
in list of selected packages in major and minor questions inadd
command after the question is answered -
Updated dependencies [
41e2e3d
,cc8c921
,cc8c921
,cc8c921
,cc8c921
,cc8c921
,2363366
,41e2e3d
,41e2e3d
,cc8c921
,cc8c921
]:- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
ca934d7
#282 Thanks @tarang9211! - Add all packages option to major and minor selects
-
2adfe66
#288 Thanks @mitchellhamilton! - Stop runningnpm profile get
when using non-npm registries -
Updated dependencies []:
- @changesets/[email protected]
-
184a653
#278 Thanks @mitchellhamilton! - Use a single prompt for the semver version type when there is only a single package in the repo inchangeset add
-
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/[email protected]
- @changesets/[email protected]
-
fe0d9192
#236 Thanks @Andarist! - When in pnpm-managed project use pnpm for publishing. -
fe0d9192
#236 Thanks @Andarist! - Read also pnpm workspace packages when searching for packages.
-
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
]:- [email protected]
- @changesets/[email protected]
- [email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
-
bca8865
#221 Thanks @mitchellhamilton! - Added support forbaseBranch
option which specifies what branch Changesets should use when determining what packages have changed -
bca8865
#221 Thanks @mitchellhamilton! - Added support for--since
option to thestatus
command which shows the release plan since the git ref(branch, tag, commit, etc.) specified with--since
and deprecate--sinceMaster
option
-
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/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
9cd1eaf
#214 Thanks @Noviny! - Remove unused dependencies- Updated dependencies [
9cd1eaf
,b17ed74
]:- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
a0b5dba
#209 Thanks @ryanbraganza! - Skip OTP check during isCI
8f0a1ef
#183 Thanks @mitchellhamilton! - Add support for prereleases. Prereleases work with two new commands,pre enter
andpre exit
along with changes toversion
andexit
. For more information, see the docs on prereleases.
-
8f0a1ef
#183 Thanks @mitchellhamilton! - AddInternalError
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/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- [email protected]
- [email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
-
a679b1d
#204 Thanks @Andarist! - RespectpublishConfig.access
in workspace package.jsonsPreviously, 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.
-
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 packagesPreviously, 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
orrestricted
. -
da11ab8
#205 Thanks @mitchellhamilton! - Don't update ranges set to */x/X when versioning -
Updated dependencies [
51a0d76
,5ababa0
,a679b1d
,5ababa0
,da11ab8
]:- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- [email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- Remove console log
- When 2fa token is wrong (ie, it has expired) reprompt instead of failing
-
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.
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.
-
7e2fc8e
#184 Thanks @Noviny! - Fix message on warning if 'add' command is run before changesets has been initialised. -
Updated dependencies [
8dce96f
]:- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
-
f63b652
#176 Thanks @mitchellhamilton! - Change the log type of the default config writing message fromerror
toinfo
because the message isn't an error -
df35f32
#179 Thanks @ryanbraganza! - Remove dependency on uuid -
94de7c1
#173 Thanks @ajaymathur! - Catch errors from git being absent and continue on as best possible -
72babcb
#178 Thanks @mitchellhamilton! - Fix changelog generator options not being provided -
Updated dependencies [
72babcb
]:- @changesets/[email protected]
- @changesets/[email protected]
-
89c0894 #167 Thanks @Noviny! - Fix broken
--since-master
flag (which was broken by the move to v2 changesets) -
Updated dependencies [89c0894]:
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
-
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/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- [email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
-
62873042 #153 Thanks @mitchellhamilton! - Make init write the default config file if it doesn't exist with a special message if an old config file exists
-
85f837a7 #150 Thanks @mitchellhamilton! - Fix init command from crashing because it was trying to access a config that doesn't exist
-
709493b4 - Fix version always removing legacy changesets even when the commit option is false
-
16cb2ff3 #151 Thanks @mitchellhamilton! - Include changelog directory in published files
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
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.
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.
- Run
yarn changeset init
to create a config file in the new format at.changeset/config.json
- If you're using changelogs, move
getReleaseLine
andgetDependencyReleaseLine
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 tofalse
. In the future, we will be providing packages to write changelogs for common use cases - Set
access
to"public"
ifpublishOptions.public
istrue
, otherwise set it to"private"
- If you use
linked
, copy your linked package groups from the JS config to the the JSON file - If you use
commit
andskipCI
inversionOptions
orpublishOptions
, set commit totrue
, 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. - Delete
.changeset/config.js
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. 😁
bump
has been renamed toversion
release
has been renamed topublish
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.
- 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.
- Updated dependencies [ca8ff585, 296a6731]:
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- [email protected]
- [email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- @changesets/[email protected]
- a15abbf9 - Previous release shipped unbuilt code - fixing that
- 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
-
e55fa3f0 #92 Thanks @highvoltag3! - Catch Promise rejection on SIGINT and exit gracefully
-
94267ff3 #106 Thanks @mitchellhamilton! - Improve 2FA support for publishing:
- Prompt for an OTP code when required
- Add
--otp
option to release command
-
a700de81 #104 Thanks @Noviny! - Fix auto-generated documentation to point outwards to changesets repo to stop it going stale
-
94267ff3 #106 Thanks @mitchellhamilton! - Inline last usages of bolt
-
d4bbab4e #91 Thanks @mitchellhamilton! - Convert some internals to TypeScript
-
Updated dependencies [cbb2c953]:
-
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.
-
20da7747 #66 Thanks @Noviny! - Update package.json field so each links into its own package
-
29ff34ed #82 Thanks @mitchellhamilton! - Limit the number of rows the package selection question takes up so that the question is still visible in repos with a very large number of packages
-
ef9be2df #81 Thanks @mitchellhamilton! - Fix tables in status command from flowing over to the next line
-
91000292 #78 Thanks @mitchellhamilton! - Fix misaligned CLI messages
-
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.
- 6dc510f4 #62 Thanks @mitchellhamilton! - Add butterfly emoji prefix to CLI output
-
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]:
- 67db935d - Fix release without built files
-
c6f1c7b7 #46 Thanks @mitchellhamilton! - Convert a file to TypeScript
-
9fe9ecff #45 Thanks @Noviny! - Print out the last changes.md path in terminal as last step of adding a changeset
-
61ac9ce7 #42 Thanks @mitchellhamilton! - Make "All changed packages" option first in package list
-
Updated dependencies [355b4d00]:
-
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]:
- 6929624b #27 Thanks @mitchellhamilton! - Add linked packages/lockstep
- 9435d886: Fix binary and published files
-
51c8b0d6: Remove
noChangelog
flag in favor ofupdateChangelog
flag (default behaviour remains the same).If you were using this custom flag, you will need to replaces
noChangelog: true
withupdateChangelog: 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 runchangeset 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
fromconst 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.
-
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
-
[patch]c87337f:
- The version command now removes empty folders before it starts. This should prevent a race condition in CI
-
[patch]f7b030a:
- Fixes potential infinite loop in parseChangesetCommit
-
[patch]494c1fe:
- Update git commit message to match previous tooling.
-
[major][44ec8bf" d](https://bitbucket.org/changesets/atlaskit-mk-2/commits/44ec8bf" d):
Changesets now use local file system - this has several effects:
- Changesets will no longer automatically create a commit. You will need to add and commit the files yourself.
- Changesets are easier to modify. You should ONLY modify the changes.md file (Not changes.json).
- 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.
- [patch] Bumps bolt version to get some bug fixes around publishing 493f5f7
- [patch] Pulls in fix in bolt causing publishing to fail when running a yarn subprocess (see boltpkg/bolt #189) 2b36121
- [patch] Fixes bug where empty summaries would cause a changeset to not get found 25b30bf
- [minor] Allows passing --public flag for publishing scoped packages 159c28e
- [minor] Changes changelogs to be opt out rather than opt in f461788
- [major] Completely refactors build-releases to be externally consumable 8458ef7](https://bitbucket.org/changesets/atlaskit-mk-2/commits/8458ef7)
- [patch] Bug fix and better error messages for changeset error 7f09b86
- [patch] update flow dep, fix flow errors 722ad83
- [minor] Adds tagging to releases 34c64fd
- [minor] Splits out and exposes flattenChangesets function 5ee5f74
- [minor] Lots of new features (consider this package unstable and only for use internally) 7cdf2e6