fix(release): bump changesets/action to v2, and pin the checkout - #6
Merged
Conversation
Closes #5. **v1 breaks any repository that keeps agent guidance in `.changeset/`.** It bundles `@changesets/read@^0.6.7`, which parses EVERY `.changeset/*.md` as a changeset, so a `.changeset/CLAUDE.md` fails the whole release with could not parse changeset - missing or invalid frontmatter That is not hypothetical: it is btravstack/btravstack's release pipeline right now, red on every merge to main since it added one. `@changesets/read@1.0.0` — what v2 bundles — ignores `README.md`, `AGENTS.md`, `CLAUDE.md` and `GEMINI.md`, which is the ecosystem acknowledging exactly this. The consumer's own `pnpm run version` was never affected, since a repository installs a current `@changesets/read`; only the action's bundled copy is old. v2 renamed every input, so this is not a version bump alone: `version`→`version-script`, `publish`→`publish-script`, `commit`→ `commit-message`, `title`→`pr-title`. **`github-token` is an input now, not just the env var**, and getting this wrong would be silent: v2 defaults it to `${{ github.token }}`, so passing the PAT through the environment alone falls back to the bot token — and a release PR opened by that starts no workflow runs, which is the one thing the PAT exists to prevent. Closes #5 in the same file: an optional `ref` input, defaulting to "" so omitting it keeps today's behaviour. A caller on `workflow_run` passes `github.event.workflow_run.head_sha`, the exact commit the green run measured — otherwise the checkout takes the default branch's CURRENT tip, which a push landing after CI went green can have moved, and a permanent tarball is cut from a commit no CI run validated. This repository's own `release.yml` pins it directly. Also moves both workflows off `pnpm/action-setup@v4` and `actions/setup-node@v4`, which are forced onto Node 24 with a deprecation warning on every run; v6 and v7 are what the composite action here already uses.
This was referenced Aug 25, 2026
btravers
added a commit
to btravstack/amqp-contract
that referenced
this pull request
Aug 25, 2026
btravstack/tools#6 added a `ref` input to the shared release workflow, and `workflows-v1` now points at it. Passing `github.event.workflow_run.head_sha` checks out the exact commit the green run measured; without it a `workflow_run` checkout takes the default branch's CURRENT tip, which a push landing after CI went green can have moved — cutting a permanent npm tarball from a commit no CI run validated. The window is small and the newer commit gets its own CI run, but a tarball cannot be unpublished after 72 hours. btravstack/btravstack's `deploy-docs.yml` has guarded the identical hazard all along for a redeployable site. Nothing else changes here: the same tag move already brought `changesets/action@v2` to this repository, which is what stops a `.changeset/CLAUDE.md` from failing every release.
btravers
added a commit
to btravstack/temporal-contract
that referenced
this pull request
Aug 25, 2026
btravstack/tools#6 added a `ref` input to the shared release workflow, and `workflows-v1` now points at it. Passing `github.event.workflow_run.head_sha` checks out the exact commit the green run measured; without it a `workflow_run` checkout takes the default branch's CURRENT tip, which a push landing after CI went green can have moved — cutting a permanent npm tarball from a commit no CI run validated. The window is small and the newer commit gets its own CI run, but a tarball cannot be unpublished after 72 hours. btravstack/btravstack's `deploy-docs.yml` has guarded the identical hazard all along for a redeployable site. Nothing else changes here: the same tag move already brought `changesets/action@v2` to this repository, which is what stops a `.changeset/CLAUDE.md` from failing every release.
btravers
added a commit
to btravstack/unthrown
that referenced
this pull request
Aug 25, 2026
btravstack/tools#6 added a `ref` input to the shared release workflow, and `workflows-v1` now points at it. Passing `github.event.workflow_run.head_sha` checks out the exact commit the green run measured; without it a `workflow_run` checkout takes the default branch's CURRENT tip, which a push landing after CI went green can have moved — cutting a permanent npm tarball from a commit no CI run validated. The window is small and the newer commit gets its own CI run, but a tarball cannot be unpublished after 72 hours. btravstack/btravstack's `deploy-docs.yml` has guarded the identical hazard all along for a redeployable site. Nothing else changes here: the same tag move already brought `changesets/action@v2` to this repository, which is what stops a `.changeset/CLAUDE.md` from failing every release.
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.
Closes #5. Two fixes in one file family, one of them urgent.
The urgent one: v1 breaks any repo with
.changeset/CLAUDE.mdchangesets/action@v1bundles@changesets/read@^0.6.7, which parses every.changeset/*.mdas a changeset. A repository that keeps agent guidance beside its changesets fails the whole release:Not hypothetical — that is
btravstack/btravstack's release pipeline right now, red on every merge tomainsince it added a.changeset/CLAUDE.md.@changesets/read@1.0.0, which v2 bundles, ignoresREADME.md,AGENTS.md,CLAUDE.mdandGEMINI.md. The ecosystem added that list for exactly this reason:Worth noting why it was invisible until now: a consumer's own
pnpm run versionis unaffected, because the repository installs a current@changesets/read. Only the action's bundled copy is old, so the failure appears solely in CI.It is not a version bump alone
v2 renamed every input:
versionversion-scriptpublishpublish-scriptcommitcommit-messagetitlepr-titleAnd
github-tokenis an input now, not just the env var — this one would have failed silently. v2 defaults it to${{ github.token }}, so passing the PAT through the environment alone falls back to the bot token, and a release PR opened by that starts no workflow runs. That is the single thing the PAT exists to prevent, so it is passed as an input here and kept inenvas well.Closes #5 in the same file
An optional
refinput, defaulting to""so omitting it keeps today's behaviour exactly. A caller onworkflow_runpasses the commit the green run measured:Without it the checkout takes the default branch's current tip, which a push landing after CI went green can have moved — so a permanent npm tarball gets cut from a commit no CI run validated.
btravstack/btravstack's owndeploy-docs.ymlalready guards the identical hazard for a redeployable site; the release path wants it more.This repository's own
release.ymlhad both defects too and gets both fixes directly, since it inlines the action rather than calling the reusable workflow.Also
Both workflows move off
pnpm/action-setup@v4andactions/setup-node@v4, which are forced onto Node 24 with a deprecation warning on every run. v6 and v7 are what.github/actions/setuphere already uses.After this lands
The
workflows-v1tag needs moving for consumers to pick it up. Thenbtravstack/btravstackcan addref:to its caller and drop theKNOWN GAPparagraph itsrelease.ymlheader currently carries pointing at this issue —unthrown,entity,amqp-contractandtemporal-contractget theCLAUDE.mdfix for free without changing anything.