Skip to content

fix: restore changesets/action v1 and split into v1/v2 lines - #68

Open
unional wants to merge 2 commits into
mainfrom
fix/changesets-action-two-lines
Open

fix: restore changesets/action v1 and split into v1/v2 lines#68
unional wants to merge 2 commits into
mainfrom
fix/changesets-action-two-lines

Conversation

@unional

@unional unional commented Aug 13, 2026

Copy link
Copy Markdown
Owner

Same defect, same fix as repobuddy/.github#45. Found while fixing that one — these two repos share these workflows.

What is broken

Renovate bumped changesets/action v1 → v2 (7c50b05) and Mergify auto-merged it. That major renamed every input and added a hard check on the consumer's @changesets/cli major.

All seven changesets workflows here are on @v2.0.0 while still passing the v1 input names, so six of them abort outright:

Error: The following inputs have been renamed:
- "publish" -> "publish-script"
- "version" -> "version-script"
- "commit"  -> "commit-mesage"

and all seven fail for consumers on CLI v2:

This version of the Changesets action is designed to work with Changesets CLI v3.
Changesets CLI v2 is not supported; use Changesets action v1 instead.

Every consumer pins @main, so every changesets release path in the org is broken right now. Most repos have not noticed because they have not released since.

Why two lines, not one fix

changesets/action and @changesets/cli are strictly paired, and the action enforces it:

action works with inputs
v1 CLI v2 version, publish, commit
v2 CLI v3 version-script, publish-script, commit-message

Consumers are split across both majors, so no single workflow serves them:

@changesets/cli Repos Pin
v3 monorepo-template ^3.0.0, stable-context ^3.0.0 @v2
v2 assertron ^2.26.2, async-fp ^2.26.0, iso-error 2.31.1, jest-watch-repeat ^2.25.2, never-fail ^2.25.0, path-equal ^2.26.0, satisfier ^2.26.2, standard-log ^2.25.0, tersify ^2.29.8, type-plus ^2.29.8, unpartial ^2.25.0 @v1

(eslint-plugin-harmony uses the workflow but declares no @changesets/cli dependency at all — worth a look separately; it belongs on @v1 either way.)

What this PR does

main becomes the v1 line: reverts all seven workflows to changesets/action@v1. That alone unbreaks the eleven CLI-v2 consumers, who stay correct on @main in the meantime.

Adds a README section documenting the scheme, the pin-by-CLI-major rule, and the release procedure.

The v2 line is on the pushed v2.x branch: all seven on @v2.0.0 with renamed inputs. yarn2-library-release.yml keeps its commented-out with: block — no live inputs to rename there.

After merge

git checkout main && git pull
git tag -a v1.0.0 -m "v1.0.0" && git push origin v1.0.0
gh release create v1.0.0 --generate-notes
git tag -f v1 v1.0.0 && git push -f origin v1

git checkout v2.x   # rebase onto main first if this PR is squashed
git tag -a v2.0.0 -m "v2.0.0" && git push origin v2.0.0
gh release create v2.0.0 --generate-notes
git tag -f v2 v2.0.0 && git push -f origin v2

Then monorepo-template and stable-context move to @v2 — they are the two that stay broken until they do. The other eleven can move to @v1 at leisure.

Not fixed here

Mergify's head~=^(?!major-) guard is meant to hold majors back, but Renovate does not prefix these branches with major-, so it never matches and majors merge unreviewed. That is how this landed. Separate defect.

unional and others added 2 commits August 12, 2026 23:38
Reverts the Renovate bump in 7c50b05, which moved every changesets
workflow to changesets/action@v2.0.0.

That major renamed the inputs and added a hard check on the consumer's
@changesets/cli major. Six of the seven workflows still pass the v1 names
(commit / version / publish), which v2 rejects outright:

  Error: The following inputs have been renamed:
  - "publish" -> "publish-script"
  - "version" -> "version-script"
  - "commit"  -> "commit-mesage"

and all seven would additionally fail for consumers on CLI v2:

  This version of the Changesets action is designed to work with
  Changesets CLI v3. Changesets CLI v2 is not supported; use Changesets
  action v1 instead.

Eleven of the thirteen consumers of pnpm-release-changeset.yml are on
@changesets/cli v2, so main stays the v1 line. The two on v3
(monorepo-template, stable-context) move to the v2 tag, cut from v2.x.

Same defect and same fix as repobuddy/.github#45.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This repo has never been tagged and every consumer pins @main, so every
change reaches all of them the instant it merges. Combined with Mergify
auto-merging Renovate PRs, that is how a changesets/action major broke
every changesets consumer at once with no human in the loop.

Adopt semver tags plus a moving major alias, and split the changesets
workflows into two lines, because changesets/action and @changesets/cli
are a matched pair the action validates at runtime:

  v1 (main) -> changesets/action@v1 -> @changesets/cli v2
  v2 (v2.x) -> changesets/action@v2 -> @changesets/cli v3

Consumers pick a tag by their CLI major, not by recency.

Mirrors repobuddy/.github's scheme; the two repos share these workflows
and should not diverge on how they are versioned.

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

changeset-bot Bot commented Aug 13, 2026

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: d00f460

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.

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

@mergify

mergify Bot commented Aug 13, 2026

Copy link
Copy Markdown

Tick the box to add this pull request to the merge queue (same as @mergifyio queue).

  • Queue this pull request

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.

1 participant