chore(deps): update React Native to v0.86.0#5987
Conversation
Semver Impact of This PR⚪ None (no version bump detected) 📋 Changelog PreviewThis is how your changes will appear in the changelog.
Plus 4 more 🤖 This preview updates automatically when you update the PR. |
antonis
left a comment
There was a problem hiding this comment.
Marking as blocked and converting to draft since we cannot really bump everything to the latest RN version. Gradual bumps will follow.
| "delay": "^6.0.0", | ||
| "react": "18.2.0", | ||
| "react-native": "0.73.9", | ||
| "react-native": "0.85.0", |
There was a problem hiding this comment.
Bug: The react-native-macos sample has an incompatible react-native version (0.85.0) with its react (18.2.0) and other @react-native/* dependencies, which will cause build failures.
Severity: CRITICAL
Suggested Fix
Update the dependencies in samples/react-native-macos/package.json. Align the react version to 19.x and update react-native-macos, @react-native/babel-preset, @react-native/metro-config, and @react-native/typescript-config to versions compatible with react-native@0.85.0.
Prompt for AI Agent
Review the code at the location below. A potential bug has been identified by an AI
agent.
Verify if this is a real issue. If it is, propose a fix; if not, explain why it's not
valid.
Location: samples/react-native-macos/package.json#L24
Potential issue: The `react-native-macos` sample application's dependencies are in an
inconsistent state. The `react-native` package was updated to `0.85.0`, which requires
`react@19.x`. However, the `package.json` still specifies `react@18.2.0`, creating a
peer dependency conflict that will cause `yarn install` to fail. Additionally, other
critical packages like `react-native-macos`, `@react-native/babel-preset`, and
`@react-native/metro-config` remain at versions compatible with `react-native@0.73.x`,
not `0.85.0`. This mismatch in native tooling and core dependencies will lead to a
guaranteed build failure in the CI pipeline for the macOS sample.
Did we get this right? 👍 / 👎 to inform future reviews.
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 4 potential issues.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit e9a6fb2. Configure here.
| "delay": "^6.0.0", | ||
| "react": "18.2.0", | ||
| "react-native": "0.73.9", | ||
| "react-native": "0.85.0", |
There was a problem hiding this comment.
macOS sample has fatally incompatible dependency versions
High Severity
Flagging per dependency update review rule (project-0b61c077c0c2, section 0C). react-native was bumped from 0.73.9 to 0.85.0 but react remains at 18.2.0 (RN 0.85.0 requires ^19.2.3), and react-native-macos remains at 0.73.34 (built for RN 0.73.x). The @react-native/babel-preset (0.73.21) and @react-native/metro-config (0.73.5) are also from the 0.73 line. This combination will fail to build.
Additional Locations (2)
Triggered by project rule: PR Review Guidelines for Cursor Bot
Reviewed by Cursor Bugbot for commit e9a6fb2. Configure here.
| "jest": "^29.7.0", | ||
| "react": "18.3.1", | ||
| "react-native": "0.77.1", | ||
| "react-native": "0.85.0", |
There was a problem hiding this comment.
e2e-tests use React 18 with RN 0.85
High Severity
Flagging per dependency update review rule (project-0b61c077c0c2, section 0C). react-native was bumped to 0.85.0 but react remains at 18.3.1. RN 0.85.0 requires react: ^19.2.3 — a major version mismatch. The @types/react is also still ^18.2.64. This will cause peer dependency failures and likely runtime incompatibilities in e2e tests.
Triggered by project rule: PR Review Guidelines for Cursor Bot
Reviewed by Cursor Bugbot for commit e9a6fb2. Configure here.
| "dependencies": { | ||
| "react": "19.1.0", | ||
| "react-native": "0.80.2" | ||
| "react-native": "0.85.0" |
There was a problem hiding this comment.
Performance test apps have stale React and tooling
Medium Severity
Flagging per dependency update review rule (project-0b61c077c0c2, section 0C). Both performance test apps have react: 19.1.0 but RN 0.85.0 requires react: ^19.2.3. Additionally, @react-native/babel-preset and @react-native/metro-config remain at 0.80.2, five minor versions behind react-native at 0.85.0, which can cause Metro bundler incompatibilities.
Additional Locations (1)
Triggered by project rule: PR Review Guidelines for Cursor Bot
Reviewed by Cursor Bugbot for commit e9a6fb2. Configure here.
| "oxlint-tsgolint": "^0.17.4", | ||
| "react": "19.1.0", | ||
| "react-native": "0.80.1", | ||
| "react-native": "0.85.0", |
There was a problem hiding this comment.
Core package and Expo sample have incompatible React
Medium Severity
Flagging per dependency update review rule (project-0b61c077c0c2, section 0C). The core package uses react: 19.1.0 and the Expo sample uses react: 19.2.0 as devDependencies, but react-native: 0.85.0 requires react: ^19.2.3. Neither version satisfies this peer dependency, which can cause test failures in core and build issues in the Expo sample.
Additional Locations (1)
Triggered by project rule: PR Review Guidelines for Cursor Bot
Reviewed by Cursor Bugbot for commit e9a6fb2. Configure here.
e9a6fb2 to
0619d3e
Compare
7df18aa to
4664e91
Compare
b79b430 to
6b115b3
Compare
There was a problem hiding this comment.
Node.js engine constraint (>=18) conflicts with React Native 0.85.1 minimum requirement (v22.11)
The PR description states React Native 0.84.0 introduced a breaking change requiring minimum Node.js v22.11. However, the package.json still declares engines.node: ">=18". This could allow builds to start on incompatible Node.js versions (18-22.10) only to fail during runtime or build steps. Users or CI systems relying on the engines field for version selection will get misleading guidance.
Identified by Warden find-bugs
85db74f to
cc6ba2f
Compare
cc6ba2f to
5f5e122
Compare
99298bf to
794bfc4
Compare
There was a problem hiding this comment.
Auto-updater should likely exclude the react-native-macos sample
The macOS sample is constrained by what react-native-macos supports (currently the 0.73.x line). Having scripts/update-rn.sh blindly bump react-native here will repeatedly produce broken PRs until the updater is configured to skip this package or also align react-native-macos and React versions. Consider excluding samples/react-native-macos from the updater or gating updates on a matching react-native-macos release.
Identified by Warden code-review
472d131 to
f435670
Compare
9cb5958 to
ec0b2bb
Compare
| "@sentry/react-native": "8.13.0", | ||
| "react": "19.2.3", | ||
| "react-native": "0.85.1" | ||
| "react-native": "0.86.0" |
There was a problem hiding this comment.
react-native bumped to 0.86.0 while companion @react-native/* packages remain at 0.85.1
react-native is set to 0.86.0 but the lockstep-released companion packages @react-native/babel-preset, @react-native/metro-config, @react-native/typescript-config, @react-native/jest-preset, and @react-native/new-app-screen are all still pinned at 0.85.1. The @react-native/* build/tooling packages are versioned in lockstep with react-native, so a cross-version mismatch can produce Metro/Babel/codegen build failures. The same inconsistency appears across the changed sample and test app manifests, and the PR title ("update React Native to v0.85.3") does not match the 0.86.0 actually written, suggesting an unintended/incomplete version bump.
Evidence
samples/react-native/package.json:56sets"react-native": "0.86.0", while its devDependencies pin@react-native/babel-preset,@react-native/jest-preset,@react-native/metro-config, and@react-native/typescript-configall to0.85.1, and@react-native/new-app-screen(dependencies) to0.85.1.- The identical mismatch is present in
performance-tests/TestAppPlain/package.json(react-native0.86.0 vs@react-native/*0.85.1) — confirmed via grep. packages/core/package.json:114also setsreact-nativeto0.86.0while@react-native/babel-preset(line 88) is0.80.0, an even larger devDependency skew used for building/testing the SDK.- The PR body states the target is v0.85.3, but the written version is
0.86.0, indicating the bump was not applied consistently across the@react-native/*family.
Also found at 2 additional locations
performance-tests/TestAppPlain/package.json:12samples/react-native/package.json:56
Identified by Warden find-bugs · VH6-F7K


Bumps scripts/update-rn.sh from v0.80.1 to v0.86.0.
Auto-generated by a dependency updater.
Changelog
v0.85.2
iOS specific
v0.85.1
Fixed
v0.85.0
Breaking
react-native/jest-presetpackage (c4ae05534a by kitten)StyleSheet.absoluteFillObjectAPI (5681db09b8 by huntie)receiveTouchestoRCTEventEmitterwith a default no-op implementation to avoid breaking ecosystem libraries (67db89d08a by javache)Added
RCTAnimationChoreographertoRCTScheduler(019c9a7d8f by Bartlomiej Bloniarz)std::mutextoAnimationBackendto protectstart,stopandcallbacks. (4064b89867 by Bartlomiej Bloniarz)AnimationBackend::triggerto push updates from. events to the mounting layer (ac06f3bdc7 by Bartlomiej Bloniarz)updateRuntimeShadowNodeReferencesOnCommitThreadis enabled (b38428c9bc by Bartlomiej Bloniarz)shadowNodeFamily_from a map inNativeAnimatedNodesManagertoPropsAnimatedNode(af96497b54 by Bartlomiej Bloniarz)AnimationBackendusages to useAnimationTimestamp(2a4a54ae6c by Bartlomiej Bloniarz)EventEmittertoreact-nativeexports. (f7cd8c4c1c by yungsters)PressabilityonHoverOutproperty (de5994817d by chicio)onPressMoveprop to<Pressable />(d07318226d by retyui)Android specific
StateWrapperto C++ fbjni types (99b328bffa by mrousavy)scrollsChildToFocusprop to ScrollView to control automatic scrolling when a child receives focus (d9ee4bb0aa by johankasperi)ReactFontManager.customFontFamiliesproperty to query registered custom font family names (c3acbc424d by vonovak)iOS specific
Changed
AnimationChoreographerinterface with an implementation for fantom tests (f8564b47fd by Bartlomiej Bloniarz)createDevMiddlewarenow acceptsstring | URLforserverBaseUrl(10709f427d by emily8rown)URLconstructor to acceptURLas first argument, matching the second argument type (678f7a9cfb by emily8rown)Pressableno longer unmounts event listeners in a hiddenActivity. (c295ec2261 by yungsters)Pressabilitytests to Jest modern timers (7dd2d255de by chicio)/json/listwill no longer setprefersFuseboxFrontend(421de23470 by huntie)cancelAnimationFrame,clearImmediate,clearTimeoutandclearIntervaldo nothing If there is no callback associated the given handle (9d3cc383ba by retyui)hairlineWidthno longer eagerly initializes thePixelRatioTurboModule. (e11a2f07e8 by yungsters)console.errorthat begin with "Warning: " will no longer be treated as warnings. These call sites should migrate to usingconsole.warninstead. (5ab418460b by yungsters)$ValuestoValues(94383613d8 by marcoww6)mixedtounknownin xplat/js (625d702fec by marcoww6)YogaNodeto Kotlin (cd27b7e1a8 by mateoguzmana)Android specific
deviceNamefield in app metadata is now prefixed with the manufacturer (9b906753d9 by huntie)nestedScrollEnabledprop to default to true if the ScrollView defines arefreshControl(95bac85b5a by Abbondanzo)YogaConfigJNIBaseto Kotlin (9db85e7503 by mateoguzmana)YogaPropsto Kotlin (2e12cbdfb3 by mateoguzmana)iOS specific
Deprecated
AccessibilityInfo.setAccessibilityFocusin favor ofAccessibilityInfo.sendAccessibilityEvent(36a0d9ef63 by Abbondanzo)RCTHostRuntimeDelegateand merge intoRCTHostDelegate(4626732f5b by tsapeta)Removed
AnimationBackendChoreographer,AndroidAnimationChoregrapher(bb7c0f7c5f by Bartlomiej Bloniarz)Android specific
Fixed
devconfig if obsoletewithDevToolsis missing (c5a38ab285 by robhogan)BABEL_ENVas a side effect (88d40dcda3 by robhogan)uri,widthandheightthe default dimensions were being lost (dd3c20057b by javache)cloneMultiplewhen families have no path to root (54b4cb5e89 by coado)Android specific
toValuenode is detached. (45de7109fe by kmsbernard)gradle.propertiesresolution for monorepos by reading from parent Gradle start parameters (projectDir/currentDir) before falling back to../../android/gradle.properties, sohermesV1Enabledcan be inherited correctly. (c5ae0c820a by Titozzz)inspector-modern/chrome/Registration.hwhen HermesV1 is disabled. (5ee695ad8f by tjzel)hermesV1Enabledtotrue(45896674d1 by tjzel)DynamicFromArrayby usingThreadLocal<SimplePool>instead of a sharedSimplePool, matching the existing fix inDynamicFromMap(21fae86546 by edwii-zhu)<Text>props back toundefinedwhen usingenablePropsUpdateReconciliationAndroidfeature flag (50289e3add by hannojg)stylistic-{num}not being propagated correctly (9353eb55b8 by dragoncodes)iOS specific
commitUpdatespath. (31f215a421 by coado)nkfandbase64as ruby dependencies (51c965883f by kimchi-developer)use_react_native!in project podfiles (33641f09fa by kitten)use_react_native!(path)param inreact_native_pods.rbfromPathname.pwdreact/react-native#54948 preventingpod install --project-directoryfrom working properly (9f686f2014 by kitten)transformOriginusing stale layout dimensions from recycled views, causing incorrect transform positioning (0eb5e652a2 by Mazin Zakaria)Security
chromium-edge-launcher^0.3.0to droprimraf(1f2312687b by kitten)v0.84.0
com.facebook.react.uimanager.layoutanimationused in legacy architecture (0b09e6f696 by cortinico)LazyReactPackageused in legacy architecture (2b09ae8992 by cortinico)NotThreadSafeBridgeIdleDebugListener(0ee4a2d01a by cortinico)NotThreadSafeViewHierarchyUpdateDebugListener(991dff2322 by cortinico)iOS specific
RCTPackagerConnectioninstance of theRCTDevSettingsand use bundle config. (cf92cade49 by coado)Added
transformOriginprop support to theAnimationBackend. (20779edd3b by coado)backfaceVisibilityprop and added missingflexstyle to theAnimatedPropsBuilder. (d379cde036 by coado)borderCurves,borderStyles,pointerEvents,isolation,cursor,boxShadow, andmixBlendModeprops to the AnimationBackend. (6d5b524f87 by coado)maxWidth,maxHeight,minWidth, andminHeightprops to the AnimationBackend. (3650ae3d08 by coado)overflow,position,zIndex, anddirectionprops to the AnimationBackend. (bed1a9a20f by coado)shadowColor,shadowOffset,shadowOpacity, andshadowRadiusprops to the animation backend. (c31a5a8896 by coado)left,top,right,bottomprops to the animation backend. (9931aeb830 by coado)connectAnimatedNodeToShadowNodeFamilymethod toNativeAnimatedModuleandNativeAnimatedTurboModule(d7ef651c5c by Bartlomiej Bloniarz)Readonlyfor the new Flow utility types (a6b76c0c51 by marcoww6)ReadonlyArrayfor the new Flow utility types (3bf7a09ecb by marcoww6)URL(hash, host, pathname, etc.) and methods toURLSearchParams(get, set, delete, etc.). (f97b9a521d by Manish Balayan)usePressabilityhook andPressabilityConfig/PressabilityEventHandlerstypes from the public API (d0e9b9c078 by natew)experimental_backgroundSize,experimental_backgroundPosition,experimental_backgroundRepeatto manually written types. (37bf285836 by tjzel)Android specific
{add|remove}SchemeChangeListener()function toOverrideColorSchemeinterface to support dynamic appearance updates via override (80e384a801 by alanleedev)iOS specific
RCTBundleConfigurationfor modifying bundle URL onRCTReactNativeFactory. (6fa75cce48 by coado)folly::dynamicdirectly to the backend, without repacking it intoAnimatedProp(84e408cf89 by Bartlomiej Bloniarz)familiesToUpdate(976c849057 by Bartlomiej Bloniarz)clonePropfromAnimationBackend.cpptoAnimatedProps.h(33f783ae23 by Bartlomiej Bloniarz)isRenderCallbackStartedcheck. (8b95fce84e by Bartlomiej Bloniarz)SurfaceIdinonAnimationFrame(5c078bd490 by Bartlomiej Bloniarz)