Draft
Conversation
Contributor
|
Oxygen deployed a preview of your
Learn more about Hydrogen's GitHub integration. |
edd66b9 to
9d5324c
Compare
9d5324c to
6b16405
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.
WHY are these changes introduced?
Fixes https://github.com/Shopify/developer-tools-team/issues/1045
The existing
upgrade-flow.test.tswas unreliable. Tests would intermittently fail in CI due to dev server flakiness (port conflicts, spawn/kill race conditions, HTTP timeouts), making it difficult to validate changelog.json entries and creating toil for releases.WHAT is this pull request doing?
Replaces
upgrade-flow.test.ts(1313 lines) withupgrade-e2e.test.ts(719 lines) that:Fixes flakiness by:
npm run buildinstead (deterministic)inTemporaryDirectory→ auto-cleanup (no temp dir leaks)vi.stubEnv()→ proper env var cleanup between testsTests upgrade paths by:
git archive)h2 upgradecommandnpm installto catch peer dependency conflictsnpm run buildfor clean upgradesTest matrix support:
UPGRADE_TEST_FROM=<version>- Test from specific versionUPGRADE_TEST_TO=<version>- Test to specific versionUPGRADE_TEST_LAST_N=<number>- Test last N versionsHOW to test your changes?
All Test Scenarios & Expected Behavior
breaking: truein target or intermediate versionsNo manual
steps✅ npm install
✅ npm run build
Testing: 2025.10.0 → 2025.10.1✓ 2025.10.0 → 2025.10.1stepsarrayNo breaking changes
✅ npm install
✅ Guide generates
⊘ Build skipped
Testing: 2025.4.2 → 2025.5.1✓ 2025.4.2 → 2025.5.1 [manual steps required, build skipped]breaking: true(no automatic upgrade exists)
⊘ Skipping 2025.10.1: target has breaking changesOR
⊘ Skipping X → Y: intermediate breaking changes(before upgrade runs)
Error: Required packages not yet published to npm: @shopify/hydrogen@X.X.X.steps, but an intermediate version does✅ npm install
✅ Guide generates
⊘ Build skipped
Testing: 2025.1.2 → 2025.4.1✓ 2025.1.2 → 2025.4.1 [manual steps required, build skipped]Error: npm install failed for X → Y. This indicates the upgrade path doesn't work automatically(stops at first breaking change)
Testing last 3: 2025.7.0 → 2025.10.1✓ 2025.10.0 → 2025.10.1⊘ Skipping 2025.7.1 → 2025.10.1: intermediate breaking changes⊘ Stopped early due to breaking changes (1 remaining path would also skip)hashexists but not in local git history (squashed/shallow clone)⚠️ Hash abc123 for 2025.10.0 not found in local git history. Falling back to git search (slower).Tophatting Commands
Verify CI
docs/changelog.json(add whitespace)test-upgrade-flow.ymlworkflow passesPost-merge steps
None required.
Checklist