feat: switch to changesets release PR workflow#951
Draft
kdaviduik wants to merge 1 commit intoenable-auto-changelogfrom
Draft
feat: switch to changesets release PR workflow#951kdaviduik wants to merge 1 commit intoenable-auto-changelogfrom
kdaviduik wants to merge 1 commit intoenable-auto-changelogfrom
Conversation
Contributor
Author
|
Warning This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
This stack of pull requests is managed by Graphite. Learn more about stacking. |
018b0c0 to
c6173bc
Compare
This was referenced Mar 14, 2026
c6173bc to
215a2cc
Compare
kdaviduik
commented
Mar 18, 2026
|
|
||
| If your PR doesn't need a new npm release (docs-only changes, test updates, CI changes, etc.), just don't include a changeset. No changeset = no release PR = no npm publish. | ||
|
|
||
| ### Rollback (update `latest` CDN version) |
Contributor
Author
There was a problem hiding this comment.
It's extremely rare that we'd need/want to do this, but this was in the old DEPLOYING.md and is helpful to have just in case, especially the info like how to purge the CDN cache
kdaviduik
commented
Mar 18, 2026
| @@ -1,29 +1,31 @@ | |||
| name: Release new NPM version | |||
| name: Release | |||
Contributor
Author
There was a problem hiding this comment.
Overall this is very similar to Hydrogen's release.yml workflow
Replace the direct-publish npm release workflow with the two-mode changesets/action pattern: pending changesets create a release PR titled "[ci] release"; merging it triggers npm publish. Why: the previous workflow published to npm immediately on PR merge with no human review gate for version bumps or changelogs. The release PR pattern creates an intermediate PR showing exactly what will be published before it goes out. Key changes: - Rewrite npm-release.yml to use changesets/action v1.7.0 - Switch trigger to push-to-main with queue concurrency - Use SHOPIFY_GH_ACCESS_TOKEN (GITHUB_TOKEN can't re-trigger workflows) - Add full git history fetch and registry-url for npm auth - Enable @changesets/changelog-github for automatic changelog generation - Add @changesets/changelog-github devDependency - Set .changeset/config.json access to "public" - Delete DEPLOYING.md (content moved to CONTRIBUTING.md) - Add deploy/release/rollback docs to CONTRIBUTING.md - Update CLAUDE.md and AGENTS.md symlinks to point to CONTRIBUTING.md - Fix CHANGELOG.md v3.0.6 date from "(Unreleased)" to 2025-08-25 - Remove manual changeset detection and [ROLLBACK]/[DOCS] skip logic Co-Authored-By: Claude <noreply@anthropic.com>
215a2cc to
5ebe7c7
Compare
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.

Part of https://github.com/Shopify/developer-tools-team/issues/1195
Summary
DEPLOYING.md(content moved to CONTRIBUTING.md, and then CONTRIBUTING.md itself was updated)CLAUDE.mdandAGENTS.mdas symlinks toCONTRIBUTING.mdso that we have a single source of truth for all of this informationnpm-release.ymlfor the changesets release PR pattern: pending changesets create a[ci] releasePR; merging that PR triggers npm publishWhy
The previous workflow published to npm immediately on PR merge. This made it extremely un-ergonomic to batch multiple changes in a single release, and required workarounds (like adding
[DOCS]to the PR title) to avoid releasing a new Buy Button JS version when there were zero code changes. The release PR pattern (used by Hydrogen and many Shopify repos) creates an intermediate PR showing exactly what will be published and is the more modern, preferred way of managing releases.External prerequisite
SHOPIFY_GH_ACCESS_TOKENmust be provisioned via github-actions-access-provider#2613. The release PR creation works without it (using GITHUB_TOKEN), but merging the release PR won't auto-trigger publish until this token is provisioned.