Upgrade React Native 0.77 → 0.83, React 18 → 19, Expo SDK 52 → 55#2049
Upgrade React Native 0.77 → 0.83, React 18 → 19, Expo SDK 52 → 55#2049transphorm wants to merge 73 commits into
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub. 1 Skipped Deployment
|
There was a problem hiding this comment.
Your free trial has ended. If you'd like to continue receiving code reviews, you can add a payment method here.
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
📝 WalkthroughWalkthroughMonorepo-wide upgrade and infra PR: dependency/version bumps (React, RN, Expo), Android/iOS host refactors, Metro/Gradle/Pod/build-tooling updates, CI/test workflow expansions, Jest/mock updates, ESLint/Babel/TS typing tweaks, scripts/patches, and assorted small runtime fixes. ChangesMonorepo upgrade and infra changes
Estimated code review effort: 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
@coderabbitai full review |
✅ Actions performedFull review triggered. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 7e7fc20c9a
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
Actionable comments posted: 3
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Run ID: 09491b40-87c2-4904-81b0-99a3f5ee403f
⛔ Files ignored due to path filters (2)
app/ios/Podfile.lockis excluded by!**/*.lockyarn.lockis excluded by!**/yarn.lock,!**/*.lock
📒 Files selected for processing (32)
app/.eslintrc.cjsapp/babel.config.test.cjsapp/ios/NotificationService/Info.plistapp/ios/OpenPassport/Info.plistapp/ios/Self.xcodeproj/project.pbxprojapp/jest.setup.jsapp/package.jsonapp/src/components/proof-request/ProofRequestCard.tsxapp/src/hooks/useKycLauncher.tsapp/src/hooks/useModal.tsapp/src/integrations/kyc/kycService.tsapp/src/providers/selfClientProvider.tsxapp/src/screens/dev/components/ErrorInjectionSelector.tsxapp/src/screens/dev/components/LogLevelSelector.tsxapp/src/screens/dev/components/ParameterSection.tsxapp/src/screens/documents/selection/LogoConfirmationScreen.tsxapp/tests/__setup__/mocks/ui.jsapp/tests/src/integrations/kyc/kycService.test.tsapp/tests/src/screens/WebViewScreen.test.tsxapp/tsconfig.jsoncontracts/package.jsonpackage.jsonpackages/kmp-sdk-test-app/package.jsonpackages/mobile-sdk-alpha/package.jsonpackages/mobile-sdk-alpha/src/constants/analytics.tspackages/mobile-sdk-alpha/src/proving/provingMachine.tspackages/sdk-test-app/package.jsonspecs/projects/sdk/workstreams/analytics/SPEC.mdspecs/projects/sdk/workstreams/analytics/plans/ANA-01-canonical-onboarding-funnel.mdspecs/projects/sdk/workstreams/analytics/plans/ANA-11-canonical-funnel-bug-fixes.mdspecs/topics/RN-UPGRADE-CHECKLIST.mdspecs/topics/RN-UPGRADE-PLAN.md
💤 Files with no reviewable changes (1)
- packages/mobile-sdk-alpha/src/constants/analytics.ts
| const BUNDLE_THRESHOLDS_MB = { | ||
| ios: 48, | ||
| android: 48, | ||
| ios: 52, |
There was a problem hiding this comment.
temporarily bumping for now. will follow up with an optimization pass
Summary
0.77.0 → 0.83.9, React18.3 → 19.2, Expo SDK52 → 55, and@react-native-community/cli16 → 20across the app workspace and root resolutions.RCTNewArchEnabled=trueinOpenPassportandNotificationServiceInfo.plist) and add the React-runtimeexecutor header search paths required by RN 0.83.useRefinitial values,RefObject<T | null>, typedcloneElement, mock the movedspecs_DEPRECATED/*native modules, switch the lucide-icons mock toreact/jsx-runtime, and add alottie-react-nativemock.react-hooksplugin rules (set-state-in-effect, preserve-manual-memoization, immutability, purity, refs) towarnwhile existing violations are cleaned up (tracked in SELF-2802); strip redundant Babel test-config plugins now that preset-env targets current Node.mobile-sdk-alphapeerDeps to accept React 19 and RN up to<0.86; SDK is unchanged otherwise. Spec (specs/topics/RN-UPGRADE-CHECKLIST.md,RN-UPGRADE-PLAN.md) updated to record the SDK 55 fallback decision (Expo SDK 56 not yet GA on 2026-05-04).Changes
React Native app (
app/)react,react-dom,react-native,@react-native/*,@react-native-community/cli,expo,expo-application,expo-camera,react-test-renderer,@types/react*bumped to RN 0.83 / React 19 / Expo SDK 55 lines.project.pbxproj; regeneratePodfile.lock.tsconfig.jsonextends@react-native/typescript-configdirectly (path no longer needed).jest.setup.js: update mocks forspecs_DEPRECATED/modules/NativeDeviceInfoandNativeStatusBarManagerIOS; addlottie-react-nativemock.babel.config.test.cjs: drop the hand-rolled class/spread/optional-chaining/nullish-coalescing transforms — preset-env targeting current Node now handles them, and forcing them broke under hermes-parser after the upgrade (TODO: SELF-2803)..eslintrc.cjs: temporarily downgrade new react-hooks rules towarn(TODO: SELF-2802).RefObject<ScrollViewType | null>, explicituseRef<number | undefined>(undefined), typedcloneElementprops, and aWebViewScreentest fix tolerant of multipleconsole.errorcalls.Root / workspace config
package.jsonresolutions/dependencies bumped to React 19 +@react-native-community/cli-server-api@^20.package.jsonfiles (alphabetized scripts/deps).SDK (
packages/mobile-sdk-alpha)peerDependencieswidened:react: ^18.3.1 || ^19.0.0,react-native: >=0.76.0 <0.86.0. No source changes.Specs
specs/topics/RN-UPGRADE-CHECKLIST.mdandRN-UPGRADE-PLAN.mdupdated to record the Phase 1 decision: SDK 55 fallback path (SDK 56 is not GA on npm as of 2026-05-04). Pin targets filled in for RN 0.83.9.Linear Issues
@react-native/babel-preset).Test Plan
yarn lint && yarn typespassesyarn workspace @selfxyz/mobile-app testpassesyarn workspace @selfxyz/mobile-sdk-alpha test && yarn workspace @selfxyz/mobile-sdk-alpha typesNative Consolidation Checklist
cd app && yarn jest:run/yarn workspace @selfxyz/rn-sdk-test-app test)🤖 Generated with Claude Code
Summary by CodeRabbit
Chores
Bug Fixes & Tests
Documentation