Repository navigation
chore: upgrade to Expo SDK 58 preview.3 - #32
Merged
Merged
Conversation
janicduplessis
force-pushed
the
upgrade/expo-58-canary
branch
from
September 18, 2026 21:34
6ec3ce9 to
301d776
Compare
janicduplessis
marked this pull request as ready for review
September 18, 2026 22:15
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.
Description
Trailhead is pinned to Expo SDK 57 / React Native 0.86. RN 0.86 forces
SWIFT_ENABLE_EXPLICIT_MODULES=NOon every target for its prebuilt core, and Xcode refuses Swift compilation caching without explicit modules, so no Swift task in this app can hit Stim's shared cache. RN 0.87 removed that override, and Expo SDK 58 is the first SDK that ships it.This moves the app to Expo SDK 58 preview.3 (RN 0.88.0-rc.0), the current
nexttag, so the benchmark campaign runs on a stack where Swift caching works.Solution
Dependency versions come from the preview's
bundledNativeModules.json, sonpx expo install --checkis clean and the earlier canary exclusions and build-from-source overrides are no longer needed. RN 0.88 is a prerelease, so npm's peer resolution rejects>=0.84ranges from libraries like lottie-react-native; per-packageoverridespinreact-nativeto the RC for those, which is what CocoaPods and Metro see anyway. The two committedSWIFT_ENABLE_EXPLICIT_MODULES = NOlines in the app project are gone; RN 0.88's pod install no longer writes them.Podfile.lock, the privacy manifest, and the app project changes are whatpod installproduced.Metro's entry stays
index.js, which keeps the Stim readiness signal from #36.Test plan
npm installandpod installon Xcode 27.0 (Swift 6.4).npx expo install --checkreports no outdated dependencies.stim iosbuilt and launched on an iPhone 17 / iOS 26.5 simulator, Trails screen rendered with 200 trails (agent-device snapshot). Build log shows zero "requires explicit module build" warnings and 2557 cacheable tasks including Swift, vs 1441 clang-only on SDK 57. A fresh worktree with one Swift line changed rebuilt with 2417/2557 cache hits in 2m14s.stim androidbuilt (arm64-v8a) and launched on the stim-sdk58 emulator, app reported ready and the Trails list rendered (agent-device screenshot).