Skip to content

chore: upgrade Changesets CLI to v3 with changesets/action v2 - #355

Merged
abstrakt8 merged 1 commit into
mainfrom
chore/changesets-v3
Sep 25, 2026
Merged

abstrakt8 merged 1 commit into
mainfrom
chore/changesets-v3

Conversation

@willeastcott

Copy link
Copy Markdown
Contributor

Summary

The Changesets CLI and changesets/action majors have to move together:

This PR does both at once. It's also the last reason #348 isn't safe to merge: #348 bumps the CLI to v3 on its own.

Changes

  • @changesets/cli 2.31.1 → 3.0.3, and changesets/action v1 → v2.
  • Renamed action inputs for v2: commit-message, pr-title, publish-script and create-github-releases. v2.1.2 fails outright on the old names.
  • Dropped the GITHUB_TOKEN env var from the release step. v2 takes its token from the github-token input (the default GitHub token) and passes it to the publish script itself. It also fails if the env var ever differs from that input.
  • Removed the Renovate hold on changesets/action.
  • .changeset/config.json: $schema now points at @changesets/config 4.0.1, the version CLI v3 uses. The config validates against it unchanged.

Verification (local)

  • Tags and GitHub releases: action v2 reads the published packages from an NDJSON file named by CHANGESETS_OUTPUT. That variable reaches the CLI through pnpm -w changeset on pnpm 12, and the CLI wrote the file. If it didn't, v2 would only log a warning and skip tags and releases.
  • Publishing: CLI v3 publishes with pnpm publish --json --access … --tag … --no-git-checks, the same command already dry-run on pnpm 12 in chore: upgrade pnpm to v12 #349. changeset publish-plan, which uses pnpm 12's pnpm info, correctly reports nothing new to publish.
  • Version PR: changeset version produces the same bumps (@playcanvas/react 0.11.6, @playcanvas/blocks 0.3.10), changelog entries and formatting under CLI v2 and v3 for the pending changeset.
  • Other checks: build, lint, test and the Prettier check pass. The lockfile only swaps CLI v2's dependency tree for v3's, all from the npm registry with integrity hashes.

After merging

The next push to main runs action v2 for real. Because a changeset is pending, it will update the open version PR #339, which uses the same changeset-release/main branch. Merging #339 is then the first publish on the new setup. Check that npm shows provenance for both packages, and that the git tags and GitHub releases were created.

Merge this before #348. Renovate will then drop @changesets/cli from #348.

No changeset: release tooling only.

🤖 Generated with Claude Code

The two have to move together. Action v2 refuses CLI v2 (#340, reverted
in #342), and action v1 can't handle CLI v3: v1 finds what was
published by matching `New tag:` in the publish output, which v3 no
longer prints. Releases would still reach npm, but no git tags would be
pushed and no GitHub releases created.

- Bump @changesets/cli to 3.0.3 and changesets/action to v2.
- Rename the action inputs for v2 (commit-message, pr-title,
  publish-script, create-github-releases). v2.1.2 fails on the old
  names.
- Drop the GITHUB_TOKEN env from the release step. v2 takes the token
  from its github-token input (the default GitHub token), passes it to
  the publish script itself, and fails if the env var differs.
- Remove the Renovate hold on changesets/action.
- Point .changeset/config.json's $schema at @changesets/config 4.0.1,
  the version CLI v3 uses. The config validates against it unchanged.

Action v2 reads the published packages from an NDJSON file named by
CHANGESETS_OUTPUT. Verified locally that the variable reaches the CLI
through `pnpm -w changeset`, that `changeset publish-plan` works
against npm with pnpm 12, and that `changeset version` produces the
same version bumps and changelog entries as CLI v2 for the pending
changeset.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@changeset-bot

changeset-bot Bot commented Sep 24, 2026

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: 7ea35ea

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@pkg-pr-new

pkg-pr-new Bot commented Sep 24, 2026

Copy link
Copy Markdown

Open in StackBlitz

npm i https://pkg.pr.new/@playcanvas/blocks@355
npm i https://pkg.pr.new/@playcanvas/react@355

commit: 7ea35ea

@abstrakt8 abstrakt8 self-assigned this Sep 25, 2026
@abstrakt8
abstrakt8 merged commit 582a2bb into main Sep 25, 2026
6 checks passed
@abstrakt8
abstrakt8 deleted the chore/changesets-v3 branch September 25, 2026 13:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants