Skip to content

chore: upgrade React Native to 0.85#1124

Merged
descorp merged 5 commits into
developfrom
chore/rn-upgrade-0.85-minimal
Jun 17, 2026
Merged

chore: upgrade React Native to 0.85#1124
descorp merged 5 commits into
developfrom
chore/rn-upgrade-0.85-minimal

Conversation

@descorp

@descorp descorp commented Jun 16, 2026

Copy link
Copy Markdown
Contributor

Description

Upgrades the SDK's development target from React Native 0.78.3 to 0.85.0.

This is a minimal, conservative upgrade — only version bumps and TypeScript breaking-change fixes are applied. No structural/build changes (no esm: true, no new exports field, no Metro config restructuring).

Ticket: COSDK-1293

Changes

Dependency bumps

  • react-native 0.78.3 → 0.85.0
  • react 19.0.0 → 19.2.3
  • typescript ^5.2.2 → ^6.0.3
  • react-native-builder-bob ^0.40.17 → ^0.41.0
  • react-native-screens 4.11.1 → 4.25.2 (fixes ShadowNode::Shared compile error on RN 0.85)
  • Android: compileSdk/targetSdk 36, Kotlin 2.1.20, Gradle 9.3.1
  • iOS: Gemfile gem additions for Ruby 3.4 / Xcode 26

TypeScript fixes (RN 0.85 breaking API changes)

  • NativeModule removed from RN public exports → local type in EventListenerWrapper.ts, TurboModule where appropriate
  • EmitterSubscription deprecated → EventSubscription
  • NativeEventEmitter.addListener callback signature → cast to (event: any) => void for RN 0.76–0.85 compatibility

Other

  • peerDependencies: react-native: *>=0.76.0 (New Architecture minimum, aligns with Expo 52)
  • eslint: disabled @react-native/no-deep-imports for src/specs/ (spec files must use deep imports for babel codegen compatibility on RN 0.76–0.79)
  • Added .nvmrc pinning Node 24

Consumer impact

  • Minimum RN: >=0.76.0 (New Architecture required). Old Architecture is not supported.
  • JDK: 17 required on Android (Gradle 9 requirement).
  • No API changes — purely a toolchain upgrade.

@descorp descorp added the run-e2e-tests Add to PR so e2e tests are triggered automatically label Jun 16, 2026

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request updates project dependencies, including React Native to version 0.85.0, TypeScript to 6.0.3, and various Android build tools. To accommodate the removal of public NativeModule exports in React Native 0.85, a local NativeModule interface is introduced, and EmitterSubscription is replaced with EventSubscription. The review feedback recommends making addListener and removeListeners optional in the local NativeModule definition to prevent compilation errors with standard modules or mocks. Additionally, it suggests replacing explicit as (event: any) => void type assertions in SessionWrapper.ts with arrow function wrappers to preserve TypeScript type safety.

Important

The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.

Comment thread src/modules/base/EventListenerWrapper.ts Outdated
Comment thread src/modules/session/SessionWrapper.ts
Comment thread src/modules/session/SessionWrapper.ts
@descorp descorp force-pushed the chore/rn-upgrade-0.85-minimal branch from 7433d59 to e0d6d1a Compare June 17, 2026 11:36
@sonarqubecloud

Copy link
Copy Markdown

Quality Gate Failed Quality Gate failed

Failed conditions
33.3% Coverage on New Code (required ≥ 80%)

See analysis details on SonarQube Cloud

@descorp descorp merged commit 94f730a into develop Jun 17, 2026
14 of 15 checks passed
@descorp descorp deleted the chore/rn-upgrade-0.85-minimal branch June 17, 2026 15:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

run-e2e-tests Add to PR so e2e tests are triggered automatically

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants