Skip to content

Restore calver package versions on 2026-10-rc - #4636

Merged
vctrchu merged 2 commits into
2026-10-rcfrom
vchu/fix-2026-10-rc-calver
Aug 17, 2026
Merged

Restore calver package versions on 2026-10-rc#4636
vctrchu merged 2 commits into
2026-10-rcfrom
vchu/fix-2026-10-rc-calver

Conversation

@vctrchu

@vctrchu vctrchu commented Aug 17, 2026

Copy link
Copy Markdown
Contributor

Background

Every commit on 2026-10-rc since #4622 fails the test job:

api_version "2026-10" does not match the version supported by @shopify/ui-extensions-tester ("2027-00")

Trace: #4612 shipped its (version-gated) breaking change with a major changeset. The release PR #4622 then bumped @shopify/ui-extensions and @shopify/ui-extensions-tester from 2026.10.0-rc.4 to 2027.0.0-rc.5. These packages are calver-keyed — the tester derives its supported API version from its own npm version (api-version.ts), so the major bump produced the nonexistent API version 2027-00, and validateApiVersion rejects every example pinned to api_version = "2026-10".

On an RC branch the major.minor of the package version is the API version; breaking changes must release as minor bumps within the branch's calendar version (#4612's change was already version-gated in its own docs: "removed for API versions 2026-10 and later").

Solution

  • Downgrade the retained changeset to minor (pos-remove-action-api-from-action-render.md). Changesets pre-mode retains consumed changeset files and recomputes each release from initialVersions + the highest bump across all of them — with the file still major, the next Version Packages (rc) would recompute 2027.0.0-rc.6 and revert any version correction. Verified via changeset version dry-run: with minor, the next computed version is 2026.10.0-rc.5. The breaking-change warning stays in the changeset text and PR Remove Action API from POS cart line-item action render target #4612; only the "Major Changes" changelog heading is lost.

  • Restore both packages to 2026.10.0-rc.5 (next unpublished version; 2027.0.0-rc.5 is already on npm and can stay as a dead tag — consider npm deprecate after merge). Note this was unsustainable regardless of intent: the branch's final release 2026.10.0 is semver-lower than the published 2027.0.0-rc.5, so the rc stream could never converge to its own stable release.

  • Fix the cross-dep (ui-extensions-testerui-extensions@2026.10.0-rc.5) and retitle the CHANGELOG entries.

  • Add a guard test asserting API_VERSION matches ^\d{4}-(01|04|07|10)$. Scope honestly stated: Version Packages (2026-10-rc) (rc) #4622's test job already failed on the existing example test and was merged and published anyway, so no test closes that override path. What this guard adds: it checks validity (real quarter) rather than consistency (toml == version), so the tempting wrong fix — bumping the example's api_version to 2027-00 — stays red instead of going green, it also catches minor-overflow versions (2026-11), and its comment states the calver rule so the failure isn't misread as a stale example.

  • Document the rule in AGENTS.md (calver semantics, never-major, pre-mode changeset retention) so future contributors and coding agents don't repeat this.

Follow-ups this PR doesn't do (process, not code)

  • Gate Deploy/publish on the test job — red CI published to npm this time.
  • Optional: a changeset lint rejecting major bumps while .changeset/pre.json exists — that fires at the feature PR (earliest point), before the bad version exists in-tree.

No changeset: this PR is the version correction; the next Version Packages (rc) continues from 2026.10.0-rc.5.

🎩

  • yarn test --ci ui-extensions-tester: 98 passed (includes the new guard test)
  • Ran the CI-failing scenario (examples/testing/checkout-basic-testing-example: install + test) locally on this branch: 3 passed. The pre-fix failure is from CI logs, not reproduced locally.
  • type-check / lint / test: green on this PR's CI (first green test job on the branch since Version Packages (2026-10-rc) (rc) #4622)

Note for after merge: the npm rc dist-tag currently points at the broken 2027.0.0-rc.5, so npm install @shopify/ui-extensions-tester@rc serves the bad version until the next Version Packages (rc) publishes 2026.10.0-rc.5 and moves the tag. If that gap matters, retag manually (npm dist-tag add @shopify/ui-extensions-tester@2026.10.0-rc.4 rc) or deprecate 2027.0.0-rc.5.

Assisted-By: devx/60256637-da58-4f80-9e3a-977e038d8a71
Assisted-By: devx/60256637-da58-4f80-9e3a-977e038d8a71
@vctrchu
vctrchu requested a review from aaronschubert0 August 17, 2026 23:50
@vctrchu vctrchu self-assigned this Aug 17, 2026
@vctrchu
vctrchu requested a review from a team August 17, 2026 23:50
@vctrchu
vctrchu marked this pull request as ready for review August 17, 2026 23:50
@vctrchu
vctrchu merged commit 8e84cce into 2026-10-rc Aug 17, 2026
12 checks passed
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.

2 participants