Skip to content

chore: upgrade changesets to v3 and action to v2 - #2719

Merged
Patryk Tomczyk (patzick) merged 2 commits into
mainfrom
cursor/upgrade-changesets-v3-8bd7
Sep 10, 2026
Merged

Patryk Tomczyk (patzick) merged 2 commits into
mainfrom
cursor/upgrade-changesets-v3-8bd7

Conversation

@patzick

@patzick Patryk Tomczyk (patzick) commented Sep 10, 2026

Copy link
Copy Markdown
Contributor

Supersedes the Dependabot-only bumps in #2639 (changesets/action v1 → v2) and #2669 (@changesets/cli 2.31.1 → 3.0.2, @changesets/changelog-github 0.7.0 → 1.0.1). Those PRs did not apply the v3/v2 breaking-change adjustments; #2643 started that work and was closed by Dependabot before it landed.

What changed

  • @changesets/cli 3.0.2, @changesets/changelog-github 1.0.1
  • changesets/action v2.1.2 (pinned SHA), with the renamed inputs (version-script, publish-script, commit-message, pr-title) and github-token instead of the GITHUB_TOKEN env var
  • .changeset/config.json: schema @changesets/config@4, format: "oxfmt", and privatePackages: { version: true, tag: false } to keep the v2 default (version docs, tsconfig, and templates/*, do not git-tag them)
  • Canary job skips entirely when .changeset/ has no pending markdown files, because changeset version now exits 1 when there is nothing to release
  • scripts/generateDependencyChangelog.ts updated for the ESM packages: named writeChangeset, manypkg v3 relativeDir/rootDir, and node:child_process instead of the removed spawndamnit transitive
  • Follow-up commit: pnpm overrides so pnpm audit stays green. The Audit check runs on any pnpm-lock.yaml change; the advisories (astro, sharp, vitest 4.1.10, @tiptap/core 3.30.4, js-yaml, svgo, smol-toml) were already in the tree.

Flows still working

Verified locally against the current pending changesets:

Flow Result
changeset status Same plan as today: minor api-client / nuxt-module, patch internal dependents
changeset add --patch <pkg> -m … Non-interactive add works (clack prompts replace enquirer)
changeset version --snapshot canary Still 0.0.0-canary-<UTC-timestamp>; only packages with pending changesets (plus dependents)
Empty .changeset/ + changeset version Exits 1 (this is why canary is gated)
Private package with a changeset docs, vue-starter-template, lumora-demo-store still appear in the release plan
changeset publish --no-git-tag Still maps to gitTag: false
generateDependencyChangelog Runs; no false positives on this branch
pnpm audit Clean after the override pins

pnpm run version / changelog-github still need a GitHub token locally (same as v2). CI already passes CHANGESETS_TOKEN into the canary version step and github-token into the action (which sets GITHUB_TOKEN for the version script).

What could still break

These are the remaining risks after the adjustments — not blockers for merging, but worth knowing:

  1. First canary/release on main is the real integration test. PR CI never runs .github/workflows/release.yml (push: main only). The local checks above cover the CLI; they cannot publish or open the version PR.
  2. Version commits are pushed via the GitHub API (action v2 default), signed as github-actions[bot]. Same GITHUB_TOKEN as before, so follow-up workflows still will not retrigger. If anything required git-CLI committer identity, set push-with-git-cli: true.
  3. Trusted publishing is unchanged (id-token: write, no NPM_TOKEN). Action v2 dropped .npmrc/NPM_TOKEN handling, which we already did not use. The action README now recommends splitting into /version + /publish sub-actions for tighter permissions; that is optional follow-up, not required for this upgrade.
  4. Contributor UX: pnpm changeset prompts look slightly different (clack). Cancellation no longer crashes. Extra flags --patch/--minor/--major/-m work if we want non-interactive adds later.
  5. Peer dependency bumps are now patch, not major. No published package currently declares peerDependencies, so this is a no-op until someone adds one.
  6. Do not merge chore(deps): bump changesets/action from 1 to 2 #2639 or chore(deps-dev): bump the changelog group across 1 directory with 2 updates #2669 on top of this. They only bump versions and would undo the workflow/config fixes. Close them after this lands.
  7. Open chore: next version release #2711 (chore: next version release) will be regenerated by the next push to main after this merges; that is expected.

No changeset file: this is tooling/CI only.

Open in Web Open in Cursor 

Adjust the release workflow and changeset config for the v3 CLI
breaking changes, so canary and private-package versioning keep
working after the Dependabot bumps.
@vercel

vercel Bot commented Sep 10, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
frontends-starter-template-extended Ready Ready Preview Sep 10, 2026 10:19am UTC
frontends-vue-starter-template Ready Ready Preview Sep 10, 2026 10:19am UTC

Request Review

The Audit check runs on any pnpm-lock.yaml change. These advisories
were already in the tree; bump the existing overrides so pnpm audit
passes after the changesets upgrade.

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Stale comment

Security review

No medium, high, or critical vulnerabilities in this update.

Reviewed the Changesets CLI v3 / action v2.1.2 upgrade, the canary pending-changeset gate, generateDependencyChangelog (spawn → execFile), and the audit override pins.

  • changesets/action@ae32849 peels to the official v2.1.2 tag. Moving GITHUB_TOKEN to the github-token input matches action v2; the workflow still runs only on push to main.
  • The canary find step writes static GITHUB_OUTPUT values (no injection).
  • Lockfile integrity hashes match npm for @changesets/cli@3.0.2, @changesets/changelog-github@1.0.1, and the override pins (js-yaml@4.3.2, svgo@4.1.0, smol-toml@1.7.1, sharp@0.35.4, astro@7.2.8, vitest / @vitest/mocker@4.1.11). Those overrides patch known advisories; they do not add a new reachable sink.

No prior security-review threads on this PR.

Open in Web View Automation 

Sent by Cursor Automation: Review pull requests for exploitable security issues and flag only validated findings before merge

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Security review

No medium, high, or critical vulnerabilities in this update.

Re-reviewed on ready_for_review at the same head (c1286c8) as the prior assessment. Scope is the Changesets CLI v3 / action v2.1.2 upgrade, the canary pending-changeset gate, generateDependencyChangelog (spawn → execFile), and the audit override pins.

  • changesets/action@ae32849 peels to the official v2.1.2 tag. Moving GITHUB_TOKEN to the github-token input matches action v2; the workflow still runs only on push to main.
  • The canary find step writes static GITHUB_OUTPUT values (no injection).
  • Lockfile integrity hashes match npm for @changesets/cli@3.0.2, @changesets/changelog-github@1.0.1, and the override pins (js-yaml@4.3.2, svgo@4.1.0, smol-toml@1.7.1, sharp@0.35.4, astro@7.2.8, vitest / @vitest/mocker@4.1.11). Those overrides patch known advisories; they do not add a new reachable sink.

No prior security-review finding threads on this PR.

Open in Web View Automation 

Sent by Cursor Automation: Review pull requests for exploitable security issues and flag only validated findings before merge

@patzick Patryk Tomczyk (patzick) added the domain/framework For x-team workflows and tracking efforts label Sep 10, 2026 — with Cursor
@patzick
Patryk Tomczyk (patzick) merged commit 075605c into main Sep 10, 2026
16 checks passed
@patzick
Patryk Tomczyk (patzick) deleted the cursor/upgrade-changesets-v3-8bd7 branch September 10, 2026 13:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

domain/framework For x-team workflows and tracking efforts

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants