chore: upgrade changesets to v3 and action to v2 - #2719
Conversation
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.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
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.
There was a problem hiding this comment.
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@ae32849peels to the officialv2.1.2tag. MovingGITHUB_TOKENto thegithub-tokeninput matches action v2; the workflow still runs only onpushtomain.- The canary
findstep writes staticGITHUB_OUTPUTvalues (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.
Sent by Cursor Automation: Review pull requests for exploitable security issues and flag only validated findings before merge
There was a problem hiding this comment.
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@ae32849peels to the officialv2.1.2tag. MovingGITHUB_TOKENto thegithub-tokeninput matches action v2; the workflow still runs only onpushtomain.- The canary
findstep writes staticGITHUB_OUTPUTvalues (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.
Sent by Cursor Automation: Review pull requests for exploitable security issues and flag only validated findings before merge


Supersedes the Dependabot-only bumps in #2639 (
changesets/actionv1 → v2) and #2669 (@changesets/cli2.31.1 → 3.0.2,@changesets/changelog-github0.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/cli3.0.2,@changesets/changelog-github1.0.1changesets/actionv2.1.2 (pinned SHA), with the renamed inputs (version-script,publish-script,commit-message,pr-title) andgithub-tokeninstead of theGITHUB_TOKENenv var.changeset/config.json: schema@changesets/config@4,format: "oxfmt", andprivatePackages: { version: true, tag: false }to keep the v2 default (versiondocs,tsconfig, andtemplates/*, do not git-tag them).changeset/has no pending markdown files, becausechangeset versionnow exits 1 when there is nothing to releasescripts/generateDependencyChangelog.tsupdated for the ESM packages: namedwriteChangeset, manypkg v3relativeDir/rootDir, andnode:child_processinstead of the removedspawndamnittransitivepnpm auditstays green. The Audit check runs on anypnpm-lock.yamlchange; the advisories (astro, sharp, vitest 4.1.10,@tiptap/core3.30.4, js-yaml, svgo, smol-toml) were already in the tree.Flows still working
Verified locally against the current pending changesets:
changeset statusapi-client/nuxt-module, patch internal dependentschangeset add --patch <pkg> -m …changeset version --snapshot canary0.0.0-canary-<UTC-timestamp>; only packages with pending changesets (plus dependents).changeset/+changeset versiondocs,vue-starter-template,lumora-demo-storestill appear in the release planchangeset publish --no-git-taggitTag: falsegenerateDependencyChangelogpnpm auditpnpm run version/ changelog-github still need a GitHub token locally (same as v2). CI already passesCHANGESETS_TOKENinto the canary version step andgithub-tokeninto the action (which setsGITHUB_TOKENfor the version script).What could still break
These are the remaining risks after the adjustments — not blockers for merging, but worth knowing:
mainis the real integration test. PR CI never runs.github/workflows/release.yml(push: mainonly). The local checks above cover the CLI; they cannot publish or open the version PR.github-actions[bot]. SameGITHUB_TOKENas before, so follow-up workflows still will not retrigger. If anything required git-CLI committer identity, setpush-with-git-cli: true.id-token: write, noNPM_TOKEN). Action v2 dropped.npmrc/NPM_TOKENhandling, which we already did not use. The action README now recommends splitting into/version+/publishsub-actions for tighter permissions; that is optional follow-up, not required for this upgrade.pnpm changesetprompts look slightly different (clack). Cancellation no longer crashes. Extra flags--patch/--minor/--major/-mwork if we want non-interactive adds later.patch, notmajor. No published package currently declarespeerDependencies, so this is a no-op until someone adds one.chore: next version release) will be regenerated by the next push tomainafter this merges; that is expected.No changeset file: this is tooling/CI only.