Skip to content

Latest commit

 

History

History
1606 lines (1031 loc) · 100 KB

CHANGELOG.md

File metadata and controls

1606 lines (1031 loc) · 100 KB

@changesets/cli

2.27.11

Patch Changes

2.27.10

Patch Changes

2.27.9

Patch Changes

2.27.8

Patch Changes

2.27.7

Patch Changes

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

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]:

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

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

2.26.2

Patch Changes

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

2.25.2

Patch Changes

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

2.24.4

Patch Changes

2.24.3

Patch Changes

2.24.2

Patch Changes

2.24.1

Patch Changes

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

2.23.2

Patch Changes

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

2.23.1

Patch Changes

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]:

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

2.21.1

Patch Changes

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

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

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

2.18.1

Patch Changes

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

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

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

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

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

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

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]:

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]:

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

2.9.2

Patch Changes

2.9.1

Patch Changes

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

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

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]:

2.7.1

Patch Changes

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

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]:

2.6.4

Patch Changes

2.6.3

Patch Changes

2.6.2

Patch Changes

2.6.1

Patch Changes

2.6.0

Minor Changes

Patch Changes

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

2.5.0

Minor Changes

Patch Changes

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

2.3.3

Patch Changes

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

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

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

2.0.4

Patch Changes

2.0.3

Patch Changes

2.0.2

Patch Changes

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

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]:

1.1.3

Patch Changes

  • 67db935d - Fix release without built files

1.1.2

Patch Changes

1.1.1

Patch Changes

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