Skip to content

chore: upgrade to Expo SDK 58 preview.3 - #32

Merged
janicduplessis merged 4 commits into
mainfrom
upgrade/expo-58-canary
Sep 18, 2026
Merged

janicduplessis merged 4 commits into
mainfrom
upgrade/expo-58-canary

Conversation

@janicduplessis

@janicduplessis janicduplessis commented Sep 5, 2026 •

Copy link
Copy Markdown
Contributor

Description

Trailhead is pinned to Expo SDK 57 / React Native 0.86. RN 0.86 forces SWIFT_ENABLE_EXPLICIT_MODULES=NO on 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 next tag, so the benchmark campaign runs on a stack where Swift caching works.

Solution

Dependency versions come from the preview's bundledNativeModules.json, so npx expo install --check is 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.84 ranges from libraries like lottie-react-native; per-package overrides pin react-native to the RC for those, which is what CocoaPods and Metro see anyway. The two committed SWIFT_ENABLE_EXPLICIT_MODULES = NO lines 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 what pod install produced.

Metro's entry stays index.js, which keeps the Stim readiness signal from #36.

Test plan

  • Fresh npm install and pod install on Xcode 27.0 (Swift 6.4). npx expo install --check reports no outdated dependencies.
  • iOS: stim ios built 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.
  • Android: stim android built (arm64-v8a) and launched on the stim-sdk58 emulator, app reported ready and the Trails list rendered (agent-device screenshot).
  • Not tested: iOS 27 simulators. Apps without UIScene adoption trap at launch on the iOS 27 runtime; that is unrelated to this bump and reproduces on SDK 57.

@janicduplessis janicduplessis changed the title chore: upgrade to Expo SDK 58 canary chore: upgrade to Expo SDK 58 preview.3 Sep 18, 2026
@janicduplessis
janicduplessis marked this pull request as ready for review September 18, 2026 22:15
@janicduplessis
janicduplessis merged commit 5944bdf into main Sep 18, 2026
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.

1 participant