build(e2e): pin the Maestro version in one file - #568
Merged
Conversation
Contributor
Author
This stack of pull requests is managed by Graphite. Learn more about stacking. |
11 tasks
Local Maestro and the BrowserStack run shared no pin, so they drifted. A local 1.x passes every iOS test against a simulator, because it opens the control link through `xcrun simctl openurl`. That command accepts a simulator only, so a real device answers "Invalid device" and the same tests failed on every BrowserStack run. Nothing in the repository recorded which version to use. e2e/.maestro-version now holds it. Two guards keep the value usable: BrowserStack offers 1.39.13, 2.0.7 and 2.4.0 only, and iOS openLink needs at least 2.0.7. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
kieran-osgood-shopify
force-pushed
the
kieran-osgood/maestro-pin-version
branch
from
August 4, 2026 17:07
57b888e to
728a360
Compare
kieran-osgood-shopify
marked this pull request as ready for review
August 4, 2026 17:08
Package Size
React Native file breakdown
Measured from the PR base SHA and PR head SHA. The file breakdown shows uncompressed sizes within each package artifact, so individual files do not sum to the compressed artifact total. This comment reports package artifact sizes only; it is not a final app binary-size report. |
kieran-osgood-shopify
marked this pull request as draft
August 4, 2026 17:13
Install this buildOpen Tophat, select your target device, then click Install. Links open on the Mac running Tophat.
Checkout Kit E2E results
|
kieran-osgood-shopify
marked this pull request as ready for review
August 5, 2026 08:33
kieran-osgood-shopify
force-pushed
the
kieran-osgood/maestro-pin-version
branch
from
August 5, 2026 08:35
728a360 to
d0f0c8f
Compare
Assisted-By: devx/5b4b8d5b-690a-4389-841e-039723ade1da
kieran-osgood-shopify
force-pushed
the
kieran-osgood/maestro-pin-version
branch
from
August 5, 2026 08:41
d0f0c8f to
fd2fad6
Compare
kiftio
approved these changes
Aug 5, 2026
kiftio
left a comment
Contributor
There was a problem hiding this comment.
Just that point r.e. whether we need to somehow pass the pinned version into browserstack
BrowserStack builds the suite with its own Maestro CLI. Without a maestroVersion parameter it picks a years-old default, which drives iOS openLink through xcrun simctl openurl and fails on every real device. The executor now reads e2e/.maestro-version, the same file e2e/scripts/maestro_bin reads for the local CLI, so the two cannot drift. E2E_MAESTRO_VERSION still overrides it, because probing a second version must edit no tracked file. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Assisted-By: devx/5b4b8d5b-690a-4389-841e-039723ade1da
tiagocandido
approved these changes
Aug 5, 2026
kieran-osgood-shopify
added a commit
that referenced
this pull request
Aug 5, 2026
Eight BrowserStack iOS builds carrying clearState failed on five different units. Three builds without it passed, two of them on units that had just failed. The fault is deterministic, so a retry cannot recover it and the removal stands on measurement rather than on one run. Also confirms flake B4. The Android sample gives a guest cart a Canadian buyer identity, while Swift and React Native take the shop market, so the Kotlin checkout renders a Canadian form against a United States fixture. The Maestro version pin moves out of this stack. #568 adds e2e/.maestro-version and makes the executor read it, so DEFAULT_MAESTRO_VERSION and its tests leave here rather than sit as a second copy of the same number. The iOS control link tests fail until #568 merges. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Assisted-By: devx/5b4b8d5b-690a-4389-841e-039723ade1da
Contributor
Author
Merge activity
|
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.

What changes are you making?
We weren't pinning maestro to a specific version locally or in CI
Tests would pass locally but not on browserstack (e.g. openLink / clearState aren't available)
The approach here looks non typical, unfortunately
maestrocli isn't distributed via any versioned package manager except homebrew where we can't install specific versions easilyThe sanctioned means to install is via this script
I've wrapped this up into
dev upand some validation scripts to validate the version doesn't driftHow to test
Before you merge
Important
platforms/swift/README.mdand/orplatforms/android/README.md)Releasing a new Swift version?
ShopifyCheckoutKit.podspecplatforms/swift/Sources/ShopifyCheckoutKit/ShopifyCheckoutKit.swiftplatforms/swift/README.md(major version only)Releasing a new Embedded Checkout Protocol version?
embeddedCheckoutProtocolAndroidinplatforms/android/gradle/libs.versions.tomlprotocol/languages/kotlin/embedded-checkout-protocol/api/embedded-checkout-protocol.apiif the public API changedReleasing a new Android version?
checkoutKitAndroidinplatforms/android/gradle/libs.versions.tomlplatforms/android/README.mdTip
See the Contributing documentation for the full release process per platform.