fix(calver): skeleton major bumps no longer cascade to hydrogen packages#3452
Merged
fix(calver): skeleton major bumps no longer cascade to hydrogen packages#3452
Conversation
The CalVer scripts treated `skeleton` identically to `@Shopify/hydrogen` and `@shopify/hydrogen-react` when detecting major bumps. A skeleton-only major changeset (eg: API version update) would incorrectly force all CalVer packages to advance to the next quarter. Introduces `CALVER_SYNC_PACKAGES` to separate "which packages use CalVer" from "which packages' major bumps trigger cross-package synchronization". Only hydrogen and hydrogen-react majors trigger quarter advancement — skeleton major bumps are now treated as independent patch-level changes. Four consumption points fixed (2 directly, 2 transitively): - `detectBumpType()` gates `hasMajor` to sync-eligible packages - `hasMajorChangesets()` iterates sync packages only - `enforce-calver-ci.js` inherits fix via detectBumpType() temp file - `enforce-calver-local.js` inherits fix via hasMajorChangesets()
Contributor
|
Oxygen deployed a preview of your
Learn more about Hydrogen's GitHub integration. |
andguy95
approved these changes
Feb 6, 2026
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.
WHY are these changes introduced?
Relates to #3451
The
[ci] release 2026.1.0PR incorrectly bumps@shopify/hydrogenand@shopify/hydrogen-reactto major version2026.1.0. The only major changeset is'skeleton': majorinapi-version-2025-10.md— hydrogen only has a patch changeset and hydrogen-react has none at all. The skeleton template's major bump should not force the library packages to advance to the next quarter.WHAT is this pull request doing?
Introduces a
CALVER_SYNC_PACKAGESconstant to separate two concerns that were conflated:CALVER_PACKAGES(hydrogen, hydrogen-react, skeleton)CALVER_SYNC_PACKAGES(hydrogen, hydrogen-react only)The root cause was that
detectBumpType()andhasMajorChangesets()treated all three CalVer packages identically for major detection. Askeleton: majorchangeset would set the globalhasMajorflag, which then forced ALL CalVer packages togetNextVersion(baseline, 'major')— advancing them to the next quarter even when they had no major changeset.Files changed:
.changeset/calver-shared.jsCALVER_SYNC_PACKAGES, updatehasMajorChangesets()to use it.changeset/detect-calver-bump-type.jshasMajordetection to sync-eligible packages only.changeset/calver-bump-type.test.jsThe fix is minimal: only 2 files needed code changes. The 4 other consumption points (
enforce-calver-ci.jslines 137 and 165-167,enforce-calver-local.jslines 159 and 184) inherit the fix transitively because they call into the corrected functions.HOW to test your changes?
Run the test suite:
All 32 tests should pass (18 existing + 14 new).
Verify the CLI command with current changesets:
Should return
false(current changesets includeskeleton: majorbut no hydrogen/hydrogen-react major).Key test scenarios to verify:
skeleton: majoralone →detectBumpType()returns'patch',hasMajorChangesets()returnsfalse@shopify/hydrogen: majoralone → returns'major'andtrue(no regression)skeleton: major+@shopify/hydrogen: patch→ returns'patch'andfalse(the exact PR [ci] release 2025.10.1 #3451 scenario)skeleton: majorand@shopify/hydrogen: patchin the same frontmatter → returns'patch'andfalsePost-merge steps
After merging, the
[ci] releasePR (#3451) should be regenerated. The changeset workflow will re-rundetect-calver-bump-type.jsand produce correct versions (skeleton advances to next quarter independently, hydrogen gets a patch bump, hydrogen-react stays unchanged).Checklist