* chore: exit prerelease mode on Changesets 3.0.3 for Hydrogen 2026.10.0
changesets/action v2.1.0 bundles Changesets 3.0, which keeps changesets
a prerelease already released in .changeset/pre/ and counts them as
pending once prerelease mode ends. The 3.0.0-next.8 CLI never reads or
cleans up that directory, so after the GA release PR merged, the action
would stay in version mode and 2026.10.0 would never publish.
Upgrading the CLI to 3.0.3 (and @changesets/parse to 1.0.0) puts both
on the same layout: 3.0.3 moved preview.3's changesets from pre.json
into .changeset/pre/, and after `changeset pre exit` the next
`changeset version` releases everything in it as 2026.10.0 and empties
it. The base branch becomes main.
* ci: release, test, and deploy from main with Hydrogen on CalVer
Run CI, the release, storefront E2E, and the React Router deploy for
main instead of preview.
- scripts/calver.ts ports main's CalVer versioning for Hydrogen: minor
and patch changesets increment P, a major moves to the next quarter,
and leaving prerelease mode completes the prerelease. The release job
versions through it and names the release PR after the next Hydrogen
version ("[ci] release semver" when Hydrogen isn't releasing).
- `calver.ts check` runs in CI and the release job. It rejects major
Hydrogen changesets while Hydrogen is on a prerelease, so the GA lands
on 2026.10.0. It also fails when .changeset/pre/ still has changesets
after prerelease mode ends, and when pre.json still uses the next.8
layout, which means `changeset pre exit` hasn't run. `version` fails
closed if a prerelease wouldn't lead to the next CalVer version.
- The template compile reads Hydrogen and MiniOxygen versions from the
checked-out ref and waits for both on npm, so a MiniOxygen-only
release recompiles dist-preview against the current Hydrogen. It now
requires a stable Hydrogen version.
- Release runs queue with `queue: max`, so a newer push can't replace a
pending publish run, and both release jobs have a timeout.
- Pushes to main deploy the React Router template to Production, one
deploy at a time; pull requests keep deploying to Preview.
* ci: port the CLA, stale, and changeset workflows from main
Copy main's contributor license agreement check, stale bot, changeset
reminder, and changeset linter, pinned to commit SHAs like the rest of
this branch's workflows. The linter matches changesets against the
ignore list by exact name or glob, because main's substring match would
flag every @shopify/hydrogen changeset once the Hydrogen example
("hydrogen") is ignored.
* fix: install @shopify/hydrogen from latest in hydrogen setup
After 2026.10.0 publishes to latest, the preview dist-tag stops moving,
so `hydrogen setup`, the README, and the hydrogen-setup skill point at
the plain package name instead of @preview.
* ci: pin shopify-cla-action to v1.9.0
The port pinned the v1 tag at the 2023 v1.8.0 commit. main floats on
v1, which has resolved to v1.9.0 since 2026-10-01 and fails the check
closed when the CLA verification service is unavailable.
---------
Co-authored-by: Andrew Nguyen <andrew.nguyen@shopify.com>