Releases: iorate/changesette
Release list
7.1.0
Release Notes
Minor Changes
- Fail
versionandstatuswhen a released package depends, directly or through unreleased packages, on a skipped package that has unreleased changes, unless--allow-unreleased-dependenciesis given.
Install changesette 7.1.0
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/iorate/changesette/releases/download/changesette-v7.1.0/changesette-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/iorate/changesette/releases/download/changesette-v7.1.0/changesette-installer.ps1 | iex"Install prebuilt binaries via Homebrew
brew install iorate/tap/changesetteInstall prebuilt binaries into your npm project
npm install @iorate/changesette@7.1.0Download changesette 7.1.0
| File | Platform | Checksum |
|---|---|---|
| changesette-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| changesette-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
| changesette-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| changesette-aarch64-unknown-linux-gnu.tar.xz | ARM64 Linux | checksum |
| changesette-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
Verifying GitHub Artifact Attestations
The artifacts in this release have attestations generated with GitHub Artifact Attestations. These can be verified by using the GitHub CLI:
gh attestation verify <file-path of downloaded artifact> --repo iorate/changesetteYou can also download the attestation from GitHub and verify against that directly:
gh attestation verify <file-path of downloaded artifact> --bundle <file-path of downloaded attestation> --repo iorate/changesette7.0.1
Release Notes
Patch Changes
get-changelog-entryprints a section of a CHANGELOG.md with CRLF line endings as LF, instead of carrying\rinto the output.
Install changesette 7.0.1
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/iorate/changesette/releases/download/changesette-v7.0.1/changesette-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/iorate/changesette/releases/download/changesette-v7.0.1/changesette-installer.ps1 | iex"Install prebuilt binaries via Homebrew
brew install iorate/tap/changesetteInstall prebuilt binaries into your npm project
npm install @iorate/changesette@7.0.1Download changesette 7.0.1
| File | Platform | Checksum |
|---|---|---|
| changesette-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| changesette-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
| changesette-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| changesette-aarch64-unknown-linux-gnu.tar.xz | ARM64 Linux | checksum |
| changesette-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
Verifying GitHub Artifact Attestations
The artifacts in this release have attestations generated with GitHub Artifact Attestations. These can be verified by using the GitHub CLI:
gh attestation verify <file-path of downloaded artifact> --repo iorate/changesetteYou can also download the attestation from GitHub and verify against that directly:
gh attestation verify <file-path of downloaded artifact> --bundle <file-path of downloaded attestation> --repo iorate/changesette7.0.0
Release Notes
Major Changes
-
versionnow manages the dependencies between the packages of a workspace, as changesets does:- A package whose
dependencies,peerDependencies, oroptionalDependenciesrange no longer includes the new version of another package is bumped as a patch, transitively. - Every internal dependency range on a released package, in released and unreleased packages alike, is raised to the new version:
^1.0.0becomes^1.0.1,>=1.0.0 <2.0.0becomes>=1.0.1 <2.0.0, and a range the new version leaves keeps its shape, as in^2.0.0.workspace:*,workspace:^, andworkspace:~are left as they are, and a snapshot release pins the snapshot version. A package rewritten this way without being released appears in the release plan as a release of typenone. - A released package lists the new versions of the released packages in its
dependenciesandpeerDependenciesunder- Updated dependenciesin### Patch Changesof its changelog (aworkspace:range counts even when it is left as it is; a rangeupdateInternalDependenciesleaves alone does not), andstatus --verboselists them as well. updateInternalDependenciesandbumpVersionsWithWorkspaceProtocolOnlyin.changeset/config.jsonare honored, andinitwrites them with their defaults.changesette.manageInternalDependencies: falserestores the previous behavior.- Every release in the release plan carries
dir, the package directory relative to the workspace root, andname,oldVersion, andnewVersionare omitted for a package without them. - The workspace now includes every package it lists, the root and packages without a
nameorversionincluded. A package without anameorversionis skipped like an ignored or private one: it is never versioned,get-packages --alllists it without the missing fields, and a changeset naming only skipped packages is left in place. When several packages share a name, the name resolves to the last of them in directory order, and the others are skipped as well; such a package is reported with a warning unless it is skipped for another reason. - Versions are now read as npm reads them:
v1.0.0and01.0.0are accepted as1.0.0, and so is1.0.0 garbage, whereas a component larger than JavaScript'sNumber.MAX_SAFE_INTEGERis rejected.
- A package whose
Patch Changes
-
When
package.jsonrepeats a key,versionnow rewrites the last occurrence, the one Node.js reads, instead of the first. -
The setup action no longer runs the downloaded binary to compare its
--versionoutput with the expected version, since the version is already fixed by the release tag and the build provenance. -
A changeset with CRLF line endings is read as if it used LF, so its summary no longer carries
\rinto the release plan and the status output.versionnow writes a new changelog section with the line ending of the existing CHANGELOG.md, instead of LF with an extra blank line after the title when the file uses CRLF.
Install changesette 7.0.0
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/iorate/changesette/releases/download/changesette-v7.0.0/changesette-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/iorate/changesette/releases/download/changesette-v7.0.0/changesette-installer.ps1 | iex"Install prebuilt binaries via Homebrew
brew install iorate/tap/changesetteInstall prebuilt binaries into your npm project
npm install @iorate/changesette@7.0.0Download changesette 7.0.0
| File | Platform | Checksum |
|---|---|---|
| changesette-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| changesette-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
| changesette-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| changesette-aarch64-unknown-linux-gnu.tar.xz | ARM64 Linux | checksum |
| changesette-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
Verifying GitHub Artifact Attestations
The artifacts in this release have attestations generated with GitHub Artifact Attestations. These can be verified by using the GitHub CLI:
gh attestation verify <file-path of downloaded artifact> --repo iorate/changesetteYou can also download the attestation from GitHub and verify against that directly:
gh attestation verify <file-path of downloaded artifact> --bundle <file-path of downloaded attestation>6.4.1
Release Notes
Patch Changes
-
Always pretty-print the JSON output of
get-packagesandversion --output -, instead of printing it on a single line when stdout is not a terminal. -
Warn when no workspace is found at the root, and drop the implementation details from the
--roothelp text.
Install changesette 6.4.1
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/iorate/changesette/releases/download/changesette-v6.4.1/changesette-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/iorate/changesette/releases/download/changesette-v6.4.1/changesette-installer.ps1 | iex"Install prebuilt binaries via Homebrew
brew install iorate/tap/changesetteInstall prebuilt binaries into your npm project
npm install @iorate/changesette@6.4.1Download changesette 6.4.1
| File | Platform | Checksum |
|---|---|---|
| changesette-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| changesette-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
| changesette-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| changesette-aarch64-unknown-linux-gnu.tar.xz | ARM64 Linux | checksum |
| changesette-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
Verifying GitHub Artifact Attestations
The artifacts in this release have attestations generated with GitHub Artifact Attestations. These can be verified by using the GitHub CLI:
gh attestation verify <file-path of downloaded artifact> --repo iorate/changesetteYou can also download the attestation from GitHub and verify against that directly:
gh attestation verify <file-path of downloaded artifact> --bundle <file-path of downloaded attestation>6.4.0
Release Notes
Minor Changes
-
A directory without a
package.jsonis now a workspace root with no members instead of an error, soinitcan run before thepackage.jsonexists. Such a directory becomes the root when--rootnames it, or when it is the working directory and nopackage.json,pnpm-workspace.yaml, oryarn.lockis found in it or any parent. -
Semi-breaking: the root package is now always a workspace member candidate under npm, as it already was under Yarn and pnpm, so an npm root whose
package.jsonhas anameand a validversionbecomes a member, and no negative pattern excludes it; a private root is still skipped unlessprivatePackages.versionis set, andignoreexcludes it.
Patch Changes
- Ignore an invalid "workspaces" field in package.json or an invalid pnpm-workspace.yaml with a warning instead of failing. Under Yarn, a "workspaces" array containing a non-string is now ignored as a whole instead of having the non-string skipped.
Install changesette 6.4.0
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/iorate/changesette/releases/download/changesette-v6.4.0/changesette-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/iorate/changesette/releases/download/changesette-v6.4.0/changesette-installer.ps1 | iex"Install prebuilt binaries via Homebrew
brew install iorate/tap/changesetteInstall prebuilt binaries into your npm project
npm install @iorate/changesette@6.4.0Download changesette 6.4.0
| File | Platform | Checksum |
|---|---|---|
| changesette-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| changesette-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
| changesette-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| changesette-aarch64-unknown-linux-gnu.tar.xz | ARM64 Linux | checksum |
| changesette-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
Verifying GitHub Artifact Attestations
The artifacts in this release have attestations generated with GitHub Artifact Attestations. These can be verified by using the GitHub CLI:
gh attestation verify <file-path of downloaded artifact> --repo iorate/changesetteYou can also download the attestation from GitHub and verify against that directly:
gh attestation verify <file-path of downloaded artifact> --bundle <file-path of downloaded attestation>6.3.1
Release Notes
Patch Changes
- The setup action now verifies that the installed binary reports the expected version.
Install changesette 6.3.1
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/iorate/changesette/releases/download/changesette-v6.3.1/changesette-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/iorate/changesette/releases/download/changesette-v6.3.1/changesette-installer.ps1 | iex"Install prebuilt binaries via Homebrew
brew install iorate/tap/changesetteInstall prebuilt binaries into your npm project
npm install @iorate/changesette@6.3.1Download changesette 6.3.1
| File | Platform | Checksum |
|---|---|---|
| changesette-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| changesette-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
| changesette-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| changesette-aarch64-unknown-linux-gnu.tar.xz | ARM64 Linux | checksum |
| changesette-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
Verifying GitHub Artifact Attestations
The artifacts in this release have attestations generated with GitHub Artifact Attestations. These can be verified by using the GitHub CLI:
gh attestation verify <file-path of downloaded artifact> --repo iorate/changesetteYou can also download the attestation from GitHub and verify against that directly:
gh attestation verify <file-path of downloaded artifact> --bundle <file-path of downloaded attestation>6.3.0
Release Notes
Minor Changes
-
Semi-breaking: workspace discovery now follows each package manager more closely, so the workspace root and the members found for an existing repository can differ from those of the previous release.
- A
yarn.lockmarks a Yarn workspace root. The nearestpnpm-workspace.yamloryarn.lockabove the working directory is the root (within one directory the former wins). Without either, npm's own rule applies: the nearestpackage.jsonis the root unless theworkspacesof an ancestor lists it as a member, in which case that ancestor is. So aworkspacesfield below one of those markers, such as in a Yarn worktree child or a leftover{"nohoist": [...]}in a pnpm member, no longer becomes a root of its own; a leftoverworkspacesin an npm member no longer does either, as npm re-roots to the workspace root; and a package the npm root above does not list, such as an example, is a single package, as it is for npm. - While looking for an npm workspace root, a
package.jsonabove the nearest one that fails to parse is passed over with a warning, as npm reads it as{}; the nearest one still has to parse unlesschangesette.packagesreplaces the enumeration. - A falsy
workspacesfield (false,0,"") is now passed over likenull. - Under Yarn, a
workspacesfield that is neither an array nor{"packages": [...]}is ignored with a warning, and a non-string pattern in it is skipped with a warning, as Yarn ignores both; under npm they remain errors, as npm rejects them. - The Yarn root package is always a member candidate, and the
workspacesfield of every Yarn member is expanded in turn, as Yarn does for its worktrees. - An empty pattern matches nothing instead of being an error, and a
/inside a character class is accepted as a class member. A leading Windows drive prefix is no longer an error:C:/xis read likeC:\xandC:*, withC:compared with the directory entries as a name, so it silently matches nothing. A\remains an escape in every dialect; npm's rewriting of\to/is not reproduced. - A literal segment is now compared with the directory entries like a wildcard, so on a case-insensitive filesystem an all-literal pattern such as
A/libno longer matchesa/liband a matched path is always spelled as on disk; only thepackage.jsonname itself is still found however it is spelled, as it is under npm and Yarn. - A symlinked directory matched by a wildcard segment is now entered one level and listed, as one matched by a literal segment already was;
**still never enters a symlinked directory.
- A
-
A brace alternative in a workspace pattern may now contain a
/, sopackages/{a,b/c}listspackages/aandpackages/b/c: braces are expanded before the pattern is split into segments, as npm, Yarn, and pnpm do. As a consequence each alternative is read on its own:{.a,b}now matches the dot directory.a, which the dot rule used to skip, and a**alternative such as{**,a}now reaches any depth, where it used to match a single directory name. A pattern whose braces expand into more than 100,000 alternatives is an error. -
Add two ways around the workspace detection:
--root <DIR>names the workspace root directly, so no ancestor of the working directory is looked at: only thepnpm-workspace.yaml,yarn.lock, orworkspacesfield in that directory decides how its members are enumerated, and a directory with none of them is a single package. A relativeDIRis taken relative to the working directory; symlinks inDIRare resolved, so the root is the physical directory and paths in messages are spelled that way. The option is also read fromCHANGESETTE_ROOT; it wins over the variable, and an empty value counts as unset.- The
changesette.packagessetting of.changeset/config.json—{"changesette": {"packages": ["packages/a", "."]}}— replaces the member enumeration entirely with the listed directories, each of which must hold apackage.json. Each entry is a/-separated path relative to the root, taken literally: a*is a directory named*, not a wildcard..and empty segments are dropped and..climbs lexically from the root, so an entry may name a directory outside the root, and the package is reported with the resulting relative path:./packages/aaspackages/a,./as.,../root/packages/aaspackages/a. On Windows, a segment holding a drive prefix, such asC:orC:x, is an error; elsewhere such a segment is an ordinary directory name. Neither the markers nor the workspace patterns are read, and the rootpackage.jsonis read only when listed, so a pattern the built-in dialect rejects can be worked around by listing the directories. The listed packages still take the usual member qualification and theignore/privatePackagessettings.
-
A workspace pattern may now start with
..to reach outside the root, as it does under npm, Yarn, and pnpm, including in theworkspacesfield of a Yarn member; a..after the first segment remains an error.get-packagesreports such a member with adirstarting with... Thediris always the path relative to the root: a member found through theworkspacesfield of a Yarn member is reported from the root rather than from the declaring member, and a pattern that climbs back into the root, such as../root/packages/*, lists its members with the direct spelling,packages/a. A negation is matched against that samedir, so!packages/bexcludespackages/bhowever it was reached, and!../ext/oexcludes only a member that stays outside the root. -
Paths in messages are now printed as the operating system spells them:
\is no longer rewritten to/on Windows, and paths are no longer shortened relative to the working directory.
Install changesette 6.3.0
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/iorate/changesette/releases/download/changesette-v6.3.0/changesette-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/iorate/changesette/releases/download/changesette-v6.3.0/changesette-installer.ps1 | iex"Install prebuilt binaries via Homebrew
brew install iorate/tap/changesetteInstall prebuilt binaries into your npm project
npm install @iorate/changesette@6.3.0Download changesette 6.3.0
| File | Platform | Checksum |
|---|---|---|
| changesette-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| changesette-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
| changesette-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| changesette-aarch64-unknown-linux-gnu.tar.xz | ARM64 Linux | checksum |
| changesette-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
Verifying GitHub Artifact Attestations
The artifacts in this release have attestations generated with GitHub Artifact Attestations. These can be verified by using the GitHub CLI:
gh attestation verify <file-path of downloaded artifact> --repo iorate/changesetteYou can also download the attestation from GitHub and verify against that directly:
gh attestation verify <file-path of downloaded artifact> --bundle <file-path of downloaded attestation>6.2.1
Release Notes
Patch Changes
- Document a workflow recipe adding commit, pull request, and author attributions in the style of
@changesets/changelog-github.
Install changesette 6.2.1
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/iorate/changesette/releases/download/changesette-v6.2.1/changesette-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/iorate/changesette/releases/download/changesette-v6.2.1/changesette-installer.ps1 | iex"Install prebuilt binaries via Homebrew
brew install iorate/tap/changesetteInstall prebuilt binaries into your npm project
npm install @iorate/changesette@6.2.1Download changesette 6.2.1
| File | Platform | Checksum |
|---|---|---|
| changesette-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| changesette-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
| changesette-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| changesette-aarch64-unknown-linux-gnu.tar.xz | ARM64 Linux | checksum |
| changesette-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
Verifying GitHub Artifact Attestations
The artifacts in this release have attestations generated with GitHub Artifact Attestations. These can be verified by using the GitHub CLI:
gh attestation verify <file-path of downloaded artifact> --repo iorate/changesetteYou can also download the attestation from GitHub and verify against that directly:
gh attestation verify <file-path of downloaded artifact> --bundle <file-path of downloaded attestation>6.2.0
Release Notes
Minor Changes
- Migrate the interactive prompts of the add command from dialoguer to inquire. Pressing Esc or Ctrl-C during a prompt now cancels the command with exit code 0 instead of killing the process and leaving the cursor hidden.
Install changesette 6.2.0
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/iorate/changesette/releases/download/changesette-v6.2.0/changesette-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/iorate/changesette/releases/download/changesette-v6.2.0/changesette-installer.ps1 | iex"Install prebuilt binaries via Homebrew
brew install iorate/tap/changesetteInstall prebuilt binaries into your npm project
npm install @iorate/changesette@6.2.0Download changesette 6.2.0
| File | Platform | Checksum |
|---|---|---|
| changesette-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| changesette-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
| changesette-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| changesette-aarch64-unknown-linux-gnu.tar.xz | ARM64 Linux | checksum |
| changesette-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
Verifying GitHub Artifact Attestations
The artifacts in this release have attestations generated with GitHub Artifact Attestations. These can be verified by using the GitHub CLI:
gh attestation verify <file-path of downloaded artifact> --repo iorate/changesetteYou can also download the attestation from GitHub and verify against that directly:
gh attestation verify <file-path of downloaded artifact> --bundle <file-path of downloaded attestation>6.1.0
Release Notes
Minor Changes
- The new
set-summary <id> <summary>subcommand rewrites the summary of the changeset with the given id, leaving its releases unchanged; the file is rewritten in the canonical formaddwrites, and an empty summary leaves only the frontmatter.
Install changesette 6.1.0
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/iorate/changesette/releases/download/changesette-v6.1.0/changesette-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/iorate/changesette/releases/download/changesette-v6.1.0/changesette-installer.ps1 | iex"Install prebuilt binaries via Homebrew
brew install iorate/tap/changesetteInstall prebuilt binaries into your npm project
npm install @iorate/changesette@6.1.0Download changesette 6.1.0
| File | Platform | Checksum |
|---|---|---|
| changesette-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| changesette-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
| changesette-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| changesette-aarch64-unknown-linux-gnu.tar.xz | ARM64 Linux | checksum |
| changesette-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
Verifying GitHub Artifact Attestations
The artifacts in this release have attestations generated with GitHub Artifact Attestations. These can be verified by using the GitHub CLI:
gh attestation verify <file-path of downloaded artifact> --repo iorate/changesetteYou can also download the attestation from GitHub and verify against that directly:
gh attestation verify <file-path of downloaded artifact> --bundle <file-path of downloaded attestation>