chore(deps): upgrade all apps to RN 0.84.0 and Expo SDK 55#398
chore(deps): upgrade all apps to RN 0.84.0 and Expo SDK 55#398ignaciosantise wants to merge 6 commits intomainfrom
Conversation
- Expo apps (appkit-expo-wagmi, pos-app, poc-pos-app, expo-wallet): SDK 54 → 55, RN 0.84.0, React 19.2.4 - Bare RN apps (W3MEthers, W3MEthers5): RN 0.73.4 → 0.84.0, modernized native code (Gradle 9.0, SDK 36, removed Flipper) - W3MWagmi: RN 0.81.4 → 0.84.0, removed Expo integration - W3MEthers: removed Expo, Coinbase SDK, and @reown/appkit-coinbase-react-native - rn_cli_wallet: RN 0.82.0 → 0.84.0 - Removed deprecated app.json fields (newArchEnabled, edgeToEdgeEnabled, predictiveBackGestureEnabled) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Claude finished @ignaciosantise's task in 5m 51s —— View job PR Review: chore(deps): upgrade all apps to RN 0.84.0 and Expo SDK 55
🚨 PR Too Large — Files: 43 Lines: +13,651/−19,253 Severity: HIGH Category: maintainability This PR bundles 6 distinct concerns. Suggested split:
Found 5 issue(s)Issue 1: React major version bump 18 → 19 without auditID: brk-packagejson-react-major-version-f1a9 Context:
Recommendation: Verify all Issue 2: Node.js minimum raised to 20 without CI config update evidenceID: brk-packagejson-node-engine-requirement-a3f2 Context:
Recommendation: Ensure Issue 3: Android minSdkVersion raised from 23 to 24ID: brk-buildgradle-minsdk-version-raise-b7c1 Context:
Recommendation: Update CI AVD configurations to API 24+. This is consistent with RN 0.84's own minimum requirement. Issue 4: Gradle major version 8.3 → 9.0.0ID: brk-gradlewrapper-gradle-major-version-d4e8 Context:
Recommendation: Verify Issue 5: Unused
|
There was a problem hiding this comment.
Pull request overview
This is a comprehensive upgrade PR that updates multiple React Native apps to version 0.84.0, Expo SDK from 54 to 55, and React from various versions to 19.2.4. The PR includes significant native code modernization for Android (Gradle 9.0, Kotlin 2.1.20, compileSdk 36) and iOS (modern Podfile patterns, Flipper removal), plus the removal of Expo dependencies from W3MEthers and W3MWagmi apps.
Changes:
- Upgraded 8 apps to React Native 0.84.0 and React 19.2.4
- Upgraded 4 Expo apps to SDK 55 with all related dependencies
- Removed Expo integration from W3MEthers and W3MWagmi, converting them to pure React Native apps
- Modernized Android build configuration (Gradle 9.0, Kotlin 2.1.20, compileSdk/targetSdk 36, new autolinking pattern)
- Updated iOS configuration with modern Podfile patterns and removed Flipper
- Removed deprecated app.json fields (newArchEnabled, edgeToEdgeEnabled, predictiveBackGestureEnabled)
Reviewed changes
Copilot reviewed 35 out of 43 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| wallets/rn_cli_wallet/package.json | Upgraded React Native to 0.84.0, React to 19.2.4, and related RN tooling |
| wallets/rn_cli_wallet/yarn.lock | Lock file updates reflecting dependency upgrades |
| wallets/expo-wallet/package.json | Upgraded to Expo SDK 55, RN 0.84.0, React 19.2.4 |
| wallets/expo-wallet/app.json | Removed deprecated fields, added expo-image and expo-web-browser plugins |
| dapps/pos-app/package.json | Upgraded to Expo SDK 55, RN 0.84.0, React 19.2.4, added expo-crypto |
| dapps/pos-app/app.json | Removed deprecated fields, added @sentry/react-native and expo-image plugins |
| dapps/poc-pos-app/package.json | Upgraded to Expo SDK 55, RN 0.84.0, React 19.2.4 |
| dapps/poc-pos-app/app.json | Removed deprecated fields, added @sentry/react-native and expo-image plugins |
| dapps/appkit-expo-wagmi/package.json | Upgraded to Expo SDK 55, RN 0.84.0, React 19.2.4 |
| dapps/appkit-expo-wagmi/app.json | Removed deprecated fields, added expo-font and expo-image plugins |
| dapps/W3MWagmi/package.json | Upgraded to RN 0.84.0, React 19.2.4, removed expo and coinbase dependencies |
| dapps/W3MWagmi/metro.config.js | Changed from expo/metro-config to @react-native/metro-config with Sentry |
| dapps/W3MWagmi/ios/Podfile | Removed expo integration (use_expo_modules, expo_patch_react_imports) |
| dapps/W3MWagmi/app.json | Removed Sentry Expo plugin configuration |
| dapps/W3MWagmi/android/settings.gradle | Removed Expo autolinking, added modern React Native autolinking |
| dapps/W3MWagmi/android/gradle.properties | Removed newArchEnabled and edgeToEdgeEnabled properties |
| dapps/W3MWagmi/android/app/build.gradle | Removed Expo-specific build configuration |
| dapps/W3MEthers5/package.json | Upgraded to RN 0.84.0, React 19.2.4, modernized dependencies |
| dapps/W3MEthers5/ios/Podfile | Modernized with node_require pattern, removed Flipper |
| dapps/W3MEthers5/android/settings.gradle | Added modern pluginManagement and autolinking pattern |
| dapps/W3MEthers5/android/gradle/wrapper/gradle-wrapper.properties | Upgraded to Gradle 9.0.0-bin |
| dapps/W3MEthers5/android/gradle.properties | Removed newArchEnabled and android.enableJetifier |
| dapps/W3MEthers5/android/build.gradle | Updated to Gradle 9.0, Kotlin 2.1.20, compileSdk 36 |
| dapps/W3MEthers5/android/app/src/main/java/com/web3modalethers5/MainApplication.kt | Removed Flipper initialization |
| dapps/W3MEthers5/android/app/build.gradle | Added autolinkLibrariesWithApp, updated JSC flavor, removed Flipper |
| dapps/W3MEthers/package.json | Upgraded to RN 0.84.0, React 19.2.4, removed expo and coinbase dependencies |
| dapps/W3MEthers/metro.config.js | Changed from expo/metro-config to @react-native/metro-config |
| dapps/W3MEthers/ios/Podfile | Modernized with node_require pattern, removed Expo and Flipper |
| dapps/W3MEthers/ios/AppDelegate.mm | Changed bundle root from .expo/.virtual-metro-entry to index |
| dapps/W3MEthers/android/settings.gradle | Added modern pluginManagement, removed Expo autolinking |
| dapps/W3MEthers/android/gradle/wrapper/gradle-wrapper.properties | Upgraded to Gradle 9.0.0-bin |
| dapps/W3MEthers/android/gradle.properties | Removed newArchEnabled and android.enableJetifier |
| dapps/W3MEthers/android/build.gradle | Updated to Gradle 9.0, Kotlin 2.1.20, compileSdk 36 |
| dapps/W3MEthers/android/app/src/main/java/com/web3modalethers/MainApplication.kt | Removed Expo wrappers and Flipper |
| dapps/W3MEthers/android/app/src/main/java/com/web3modalethers/MainActivity.kt | Removed ReactActivityDelegateWrapper from Expo |
| dapps/W3MEthers/android/app/build.gradle | Added autolinkLibrariesWithApp, removed Expo config, updated JSC, removed Flipper |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| } | ||
| ] | ||
| ], | ||
| "@sentry/react-native", |
There was a problem hiding this comment.
Potential duplicate Sentry configuration: Both "@sentry/react-native/expo" (lines 63-70) and "@sentry/react-native" (line 133) plugins are listed. This could cause conflicts or unexpected behavior. Verify if both are needed, or if only one should be used. Typically, "@sentry/react-native/expo" is sufficient for Expo apps.
| } | ||
| ] | ||
| ], | ||
| "@sentry/react-native", |
There was a problem hiding this comment.
Potential duplicate Sentry configuration: Both "@sentry/react-native/expo" (lines 63-70) and "@sentry/react-native" (line 119) plugins are listed. This could cause conflicts or unexpected behavior. Verify if both are needed, or if only one should be used. Typically, "@sentry/react-native/expo" is sufficient for Expo apps.
| "@react-native/typescript-config": "0.84.0", | ||
| "@types/jest": "^29.5.13", | ||
| "@types/lodash.clonedeep": "^4.5.9", | ||
| "@types/react": "^19.1.1", |
There was a problem hiding this comment.
@types/react version inconsistency: rn_cli_wallet uses ^19.1.1 while React 19.2.4 is being used. Consider updating to ^19.2.10 for consistency with the Expo apps (expo-wallet, pos-app, poc-pos-app, appkit-expo-wagmi) and other upgraded apps (W3MEthers, W3MEthers5).
- Add expo.install.exclude for react, react-dom, react-native (intentional version overrides) - Fix scheme "WPay" → "wpay" in pos-app and poc-pos-app (SDK 55 requires lowercase) - Install missing peer deps in expo-wallet (@react-native-async-storage/async-storage, @react-native-community/netinfo) - Rename conflicting "prettier" scripts to avoid shadowing the prettier binary All 4 Expo apps now pass expo-doctor 17/17 checks. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Reanimated 4.1.3 and 4.2.1 are not compatible with React Native 0.84.0. Updated to 4.2.2 in all 6 affected projects. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Required by react-native-reanimated 4.2.2 (peer dep >= 0.7.0). W3MWagmi was on 0.5.2 which is incompatible. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Required for native module autolinking (pod install) in RN 0.84. These were previously provided transitively by Expo. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…Android W3MWagmi: - babel.config.js: replaced babel-preset-expo with @react-native/babel-preset - MainActivity.kt: removed ReactActivityDelegateWrapper, use DefaultReactActivityDelegate - MainApplication.kt: removed ReactNativeHostWrapper, ApplicationLifecycleDispatcher - project.pbxproj: removed [Expo] Configure project build phases, ExpoModulesProvider.swift refs, EXPO_CONFIGURATION flags, Expo header paths W3MEthers: - project.pbxproj: removed [Expo] Configure project build phases, ExpoModulesProvider.swift refs, EXPO_CONFIGURATION flags Also includes Podfile.lock updates from pod install for all 4 CLI projects. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Summary
expo,@coinbase/wallet-mobile-sdk,@reown/appkit-coinbase-react-nativeapp.jsonfields (newArchEnabled,edgeToEdgeEnabled,predictiveBackGestureEnabled)Native code changes (W3MEthers, W3MEthers5)
pluginManagement/autolinkLibrariesFromCommand()pattern, Gradle 9.0, Kotlin 2.1.20, compileSdk/targetSdk 36node_requirePodfile pattern, removed Flipper referencesExpo removal (W3MEthers, W3MWagmi)
use_expo_modules!/expo_patch_react_imports!from PodfileuseExpoModules()from Android settings.gradleReactActivityDelegateWrapper,ReactNativeHostWrapper,ApplicationLifecycleDispatcherfrom Kotlinexpo/metro-configwith@react-native/metro-config.expo/.virtual-metro-entrytoindexTest plan
npx expo-doctorpasses on all 4 Expo apps (expected minor mismatch: RN 0.84.0 vs Expo 55's bundled 0.83.2)pod install)🤖 Generated with Claude Code