Repository navigation
chore: update to React Native 0.87 and Re.Pack 5.4.2 - #175
Merged
Merged
Conversation
dannyhw
pushed a commit
that referenced
this pull request
Oct 9, 2026
Updates Re.Pack from the 5.4 canary to the stable 5.4.2 release, on top of #175. It also fixes the Release builds and gets the app building and launching on Xcode 27. Re.Pack 5.4.2 - Bumps @callstack/repack and @callstack/repack-plugin-reanimated to 5.4.2 in the catalog, host, sdk preset and docs. They're added to minimumReleaseAgeExclude until they clear the release-age gate. - Switches react-native.config.js to @callstack/repack/commands, because /commands/rspack is deprecated. - Adds @react-native/js-polyfills and @babel/plugin-syntax-typescript as direct devDependencies. Before, they only resolved through pnpm's NODE_PATH, so bundling from Xcode and Gradle failed. - @babel/plugin-syntax-typescript is a workaround until callstack/repack#1483 is released; there's a TODO next to it. Release build fixes - iOS: the bundle build phase now uses the community CLI, so Re.Pack bundles instead of RN's Metro-only scripts/bundle.js. - Android: hermesc is now found through hermes-compiler via react-native, because pnpm doesn't link it into the app's node_modules. The path includes .exe on Windows. Xcode 27 / iOS 27 - Raises pod deployment targets that Xcode 27 rejects (SDWebImage, AsyncStorage). - Adopts the UIScene lifecycle. Without it, the app crashes on launch when built with the iOS 27 SDK. Test plan - pnpm typecheck, pnpm lint, pnpm test, pnpm peers check and pnpm format:check pass. - pnpm pods then build and run: - iOS Debug / Android Debug, with pnpm start running the dev servers. - iOS Release / Android Release, with production builds of the mini apps (react-native bundle --dev false) served on ports 9001–9003. - In each of the 4 builds, from a clean install, check: - sign in as the demo user - Trading list with live prices - BTC detail with chart, then open and close the trade sheet - Wallet portfolio - Account, then sign out
- react-native 0.86.2 -> 0.87.1 with all @react-native/* packages - @callstack/repack + repack-plugin-reanimated -> 5.4.0-canary-20260913172854 - @rspack/core 2.2.6, @module-federation/enhanced + error-codes 2.9.1 - reanimated 4.7.0 + worklets 0.13.0, gesture-handler 3.3.0, screens 4.28.0, safe-area-context 5.10.0, skia 2.12.0, victory-native 42.0.1, @legendapp/list 3.4.0, @react-navigation/native 7.4.1, native-stack 7.19.2 - patch bumps: edge-to-edge, bootsplash, vector-icons, typescript-eslint, align-deps, prettier, @prettier/plugin-oxc - bump peer catalog ranges (worklets 0.13 is outside ^0.12) - apply RN 0.87 android template changes: compileSdk/buildTools 37, Kotlin 2.2.0, Gradle 9.4.1, proguard-android-optimize, edgeToEdgeEnabled=true, AGP 9 opt-outs - regenerate Podfile.lock for RN 0.87 pods, including the React-Core-prebuilt entry; the stale 0.86.2 entry kept the old artifact layout without Headers/module.modulemap - patch react-native-bottom-tabs with the RCTConversions.h and RCTImagePrimitivesConversions.h include guards merged upstream in callstack/react-native-bottom-tabs#571 and #575 (unreleased as of 1.4.0) - set recycleItems={false} explicitly on LegendList (warns since 3.4.0); keeps existing behavior since rows own per-asset animation state - extend reanimated jest mock with default export and createAnimatedComponent (required by gesture-handler 3.x GestureDetector at import time) - sync sdk dependencies.json/devDependencies.json with catalog versions - drop stale minimumReleaseAgeExclude entries - update version tables in README and MF demo guide
Updates Re.Pack from the 5.4 canary to the stable 5.4.2 release, on top of #175. It also fixes the Release builds and gets the app building and launching on Xcode 27. Re.Pack 5.4.2 - Bumps @callstack/repack and @callstack/repack-plugin-reanimated to 5.4.2 in the catalog, host, sdk preset and docs. They're added to minimumReleaseAgeExclude until they clear the release-age gate. - Switches react-native.config.js to @callstack/repack/commands, because /commands/rspack is deprecated. - Adds @react-native/js-polyfills and @babel/plugin-syntax-typescript as direct devDependencies. Before, they only resolved through pnpm's NODE_PATH, so bundling from Xcode and Gradle failed. - @babel/plugin-syntax-typescript is a workaround until callstack/repack#1483 is released; there's a TODO next to it. Release build fixes - iOS: the bundle build phase now uses the community CLI, so Re.Pack bundles instead of RN's Metro-only scripts/bundle.js. - Android: hermesc is now found through hermes-compiler via react-native, because pnpm doesn't link it into the app's node_modules. The path includes .exe on Windows. Xcode 27 / iOS 27 - Raises pod deployment targets that Xcode 27 rejects (SDWebImage, AsyncStorage). - Adopts the UIScene lifecycle. Without it, the app crashes on launch when built with the iOS 27 SDK. Test plan - pnpm typecheck, pnpm lint, pnpm test, pnpm peers check and pnpm format:check pass. - pnpm pods then build and run: - iOS Debug / Android Debug, with pnpm start running the dev servers. - iOS Release / Android Release, with production builds of the mini apps (react-native bundle --dev false) served on ports 9001–9003. - In each of the 4 builds, from a clean install, check: - sign in as the demo user - Trading list with live prices - BTC detail with chart, then open and close the trade sheet - Wallet portfolio - Account, then sign out
dannyhw
force-pushed
the
chore/update-rn-0.87
branch
from
October 9, 2026 15:49
b6b4fc0 to
d7ae821
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.
Summary
Updates the workspace to React Native 0.87.1 and the Re.Pack 5.4 canary, plus every other dependency that can move while staying compatible with the RN toolchain.
Core toolchain
@react-native/*packages (babel-preset, eslint-config, typescript-config, jest-preset) → 0.87.1Libraries
CartesianChart/LineNative (RN 0.87 template, android-only per the official upgrade diff)
proguard-android-optimize.txt,edgeToEdgeEnabled=true(new template default; the app already uses react-native-edge-to-edge), AGP 9 opt-outsFixes
packages/host/jest.setup.jswith adefaultexport andcreateAnimatedComponent— gesture-handler 3.2's v3 GestureDetector accessesReanimated?.default.createAnimatedComponent(...)at import timesdk/lib/dependencies.jsonanddevDependencies.json(the MF shared-singleton manifest / align-deps preset) with the catalog; the dev file had drifted and still pinned repack 5.2.5minimumReleaseAgeExcludeentries — all listed versions are now past the release-age gateDeliberately not updated
<6.1.0Test plan
pnpm typecheck,pnpm lint,pnpm testall passpnpm peers checkclean,rnx-align-depsclean,pnpm format:checkcleanpod installcompletes against RN 0.87.1