Repository navigation
ci: move to changesets 3, changesets/action v2 and checkout v7 - #17
Merged
Merged
Conversation
Bump @changesets/cli to ^3.0.3 and @changesets/changelog-github to ^1.0.1, point the config schema at @changesets/config 4.0.1 and set "format": false so CHANGELOG entries stay unformatted instead of going through an auto-detected formatter. Pin changesets/action to v2.1.2 and rename its inputs (commit-message, pr-title, publish-script). Drop commitMode and setupGitUser, both removed in v2 (pushing through the GitHub API is now the default), and the GITHUB_TOKEN env, which v2 derives from github-token. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BR6x3TNrgMhtDABYaH6hx8
Pin actions/checkout to v7.0.1 in the CI, Release (release and preview jobs) and Workflow audit workflows. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BR6x3TNrgMhtDABYaH6hx8
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Moves the release stack to Changesets 3 and bumps the two actions that still ran on old majors. Job ids, job names and workflow names stay the same, so the required checks (Test, Audit workflows) do not move. jdx/mise-action is already v4.3.0 since #16 and is not touched here.
Every third-party action stays pinned by full commit SHA with a matching
# vX.Y.Zcomment, and thewithvariablelab/*refs stay at@main. TheMint vland-bot tokenandConfigure git usersteps are unchanged. The lockfile diff is whatpnpm add -D @changesets/cli@^3.0.3 @changesets/changelog-github@^1.0.1 --lockfile-onlyproduces on main: it swaps the changesets v2 tree (prettier 2.8.8, fs-extra, enquirer, @manypkg v1, ...) for the v3 tree, and no vite or vitest version changes. This PR adds no changeset: it changes CI only and ships nothing in the package.What changes in the next release
The first Release run after merge is not a release. main has no pending changesets and no "chore: update versions" PR is open, so the action finds no changesets and runs
pnpm changeset publish. That is now v3, and on this branch v3 already says "No projects to publish or tag": 2.0.1 is on npm and tag v2.0.1 exists. So nothing is published, nothing is tagged and no PR is opened. This PR carries no changeset, so it does not cause a release by itself.From the next real changeset on:
push-with-git-cli: false) and the same as the removedcommitMode: github-api, so bot commits are GitHub-signed. The action injects GITHUB_TOKEN itself from github-token, and the "Configure git user" step stays. The action also checks that the root package.json declares @changesets/cli v3.[#N](pull) [`sha`](commit) Thanks [@user]! - summaryshape (checked with changelog-github 1.0.1 against real commit 6cc642d). Because of"format": false, the entry is written as changelog-github generates it: it is no longer run through the bundled prettier 2.8.8, nor through biome or oxfmt.pnpm changeset publishpublishes @variablelab/theme-toggle over npm OIDC trusted publishing as before. It runspnpm publish --json --access public --tag latest --no-git-checks, the same command as CLI 2.x; v3 only strips the OTP env vars, so OIDC still works, andprepublishOnly(rr pack) still runs insidepnpm publish. The tag staysv<version>(e.g. v2.0.2), because manypkg v3 still detects this repo as a single-package 'root' tool; existing tags are v1.0.0, v2.0.0 and v2.0.1. The tag and the GitHub release come from theCHANGESETS_OUTPUTfile the action sets (create-github-releasesdefaults to true).The same single-package stack already shipped in brand: brand#12 then brand#10 released @variablelab/brand@0.3.1 with OIDC trusted publishing, provenance, tag v0.3.1 and a GitHub release. The registry took about 6 minutes to show it.
The Preview job is unaffected by changesets (it uses
withvariablelab/gh-actionspreview-release); it only gets checkout v7. This branch uses thechore/prefix, so Preview does not run on this PR.checkout v4.4.0 -> v7.0.1 moves the action runtime from Node 20 to Node 24. Its main behaviour change blocks checking out fork PRs on
pull_request_target/workflow_run; none of these workflows use those triggers, andpersist-credentialsis alreadyfalseeverywhere.Not exercised locally: the action's own API push of the version commit when the config has
commit: true(changeset versioncommits locally first). v1 did the same in github-api mode and PR #15 worked that way. I am only noting it as unverified.The real test is the next "chore: update versions" PR, and only the user merges that one.
Evidence
Local checks on this branch:
pnpm changeset statusexits 1 with "Some packages have been changed but no changesets were found". The only cause is this branch's own devDependency change, which by design has no changeset; CI does not runchangeset status, and earlier CI PRs (#10, #11, #12, #16) carried none either.Release simulation in a throwaway worktree, with a test patch changeset on @variablelab/theme-toggle committed first:
## 2.0.1/### Patch Changes/ one bullet), package.json one line (2.0.0 -> 2.0.1).GITHUB_TOKEN=... pnpm changeset versionmadeRELEASING: Releasing 1 package(s) / @variablelab/theme-toggle@2.0.2 / [skip ci]with the same 3 files: the changeset deleted, CHANGELOG.md +6 (## 2.0.2/### Patch Changes/- test, normal spacing) and package.json with only the version line changed (2.0.1 -> 2.0.2, formatting preserved).publish-planthen listed@variablelab/theme-toggle@2.0.2 (latest), and manypkg reported toolroot, so the tag would be v2.0.2.Nothing was published or pushed from the simulation.
Merge Danger
Door: two-way
Reverting this PR puts back changesets 2, changesets/action v1.9.0 and checkout v4. The one step that cannot be undone is an npm publish, and that only happens when the user merges the next "chore: update versions" PR.
Blast Radius: release
If the new action or CLI misbehaves, the risk is a broken or wrong "chore: update versions" PR, or a publish that fails to create the tag or release. Package consumers are not affected until a release is merged. CI (Test, Audit workflows) runs on the same job names, so the rulesets keep matching.
🤖 Generated with Claude Code
https://claude.ai/code/session_01BR6x3TNrgMhtDABYaH6hx8