Repository navigation
chore(deps): update React Native to v0.88.0 - #6903
github-actions[bot] wants to merge 1 commit into
Conversation
854759f to
19c380f
Compare
Semver Impact of This PR⚪ None (no version bump detected) 📋 Changelog PreviewThis is how your changes will appear in the changelog.
🤖 This preview updates automatically when you update the PR. |
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 7 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 19c380f. Configure here.
| "@sentry/react-native": "8.31.0", | ||
| "react": "19.2.3", | ||
| "react-native": "npm:react-native-tvos@0.87.1-0" | ||
| "react-native": "0.88.0" |
There was a problem hiding this comment.
tvOS sample lost RN fork
High Severity
The tvOS sample no longer aliases react-native to react-native-tvos and now pins stock 0.88.0. Stock React Native has no tvOS platform, so pod install and the tvOS CI build will fail. Flagged from the dependency-update review guidelines.
Triggered by project rule: PR Review Guidelines for Cursor Bot
Reviewed by Cursor Bugbot for commit 19c380f. Configure here.
| "delay": "^6.0.0", | ||
| "react": "19.1.4", | ||
| "react-native": "0.81.6", | ||
| "react-native": "0.88.0", |
There was a problem hiding this comment.
macOS RN version mismatch
High Severity
react-native jumped to 0.88.0 while react-native-macos stays at 0.81.9 (and Babel/Metro configs at 0.81.6). Out-of-tree macOS builds require matching versions, so the macOS sample and its CI job will not build. Flagged from the dependency-update review guidelines.
Triggered by project rule: PR Review Guidelines for Cursor Bot
Reviewed by Cursor Bugbot for commit 19c380f. Configure here.
| "@sentry/react-native": "8.31.0", | ||
| "react": "19.0.0", | ||
| "react-native": "0.79.6" | ||
| "react-native": "0.88.0" |
There was a problem hiding this comment.
visionOS RN version mismatch
High Severity
react-native is now 0.88.0 while @callstack/react-native-visionos remains 0.79.6, with Babel/Metro still on 0.79.6. visionOS is an out-of-tree platform that must match the RN version, so the visionOS sample CI build will break. Flagged from the dependency-update review guidelines.
Triggered by project rule: PR Review Guidelines for Cursor Bot
Reviewed by Cursor Bugbot for commit 19c380f. Configure here.
| "react": "19.2.3", | ||
| "react-dom": "19.2.3", | ||
| "react-native": "0.86.2", | ||
| "react-native": "0.88.0", |
There was a problem hiding this comment.
Expo sample RN pin incompatible
High Severity
The Expo sample stays on SDK 57 (expo@^57.0.26) but react-native was bumped from 0.86.2 to 0.88.0. SDK 57 ships with RN 0.86; RN 0.88 belongs to SDK 58. Prebuild and Expo sample CI will fail or run an unsupported pairing. Flagged from the dependency-update review guidelines.
Triggered by project rule: PR Review Guidelines for Cursor Bot
Reviewed by Cursor Bugbot for commit 19c380f. Configure here.
| "delay": "^6.0.0", | ||
| "react": "19.2.3", | ||
| "react-native": "0.87.1", | ||
| "react-native": "0.88.0", |
There was a problem hiding this comment.
RN companion packages not bumped
Medium Severity
Workspaces that intentionally moved to RN 0.88.0 still pin @react-native/babel-preset, jest-preset, metro-config, typescript-config, assets-registry, and new-app-screen at 0.87.1. RN 0.88’s CLI plugin peers metro-config@0.88.0, so Metro/Babel/Jest can fail or mis-transform. Flagged from the dependency-update review guidelines.
Additional Locations (1)
Triggered by project rule: PR Review Guidelines for Cursor Bot
Reviewed by Cursor Bugbot for commit 19c380f. Configure here.
| "promise": "^8.3.0", | ||
| "react": "19.2.3", | ||
| "react-native": "0.87.1", | ||
| "react-native": "0.88.0", |
There was a problem hiding this comment.
React peer not updated
Medium Severity
RN 0.88.0 peers react@^19.3.0, but core and the main sample still pin react / react-test-renderer at 19.2.3. 0.88’s default web-based event dispatching depends on 19.3, so tests and the sample can hit peer failures or event-runtime mismatches. Flagged from the dependency-update review guidelines.
Additional Locations (1)
Triggered by project rule: PR Review Guidelines for Cursor Bot
Reviewed by Cursor Bugbot for commit 19c380f. Configure here.
| "delay": "^6.0.0", | ||
| "react": "19.2.3", | ||
| "react-native": "0.87.1", | ||
| "react-native": "0.88.0", |
There was a problem hiding this comment.
Worklets peer excludes RN 0.88
High Severity
The main sample now uses react-native@0.88.0 with react-native-worklets@0.12.1, whose peer range is react-native: 0.83 - 0.87. Reanimated 4 depends on that worklets package, so the sample (and its Android/iOS CI) can fail at install or runtime. Flagged from the dependency-update review guidelines.
Triggered by project rule: PR Review Guidelines for Cursor Bot
Reviewed by Cursor Bugbot for commit 19c380f. Configure here.
| "jest": "^29.7.0", | ||
| "react": "19.2.3", | ||
| "react-native": "0.87.1", | ||
| "react-native": "0.88.0", |
There was a problem hiding this comment.
E2E matrix does not test React Native 0.88.0
The E2E workflow explicitly sets RN_VERSION from a matrix that still tops out at 0.87.1, so its app builds use RN 0.87.1 instead of the newly pinned 0.88.0. Update the newer E2E matrix entry (or add a 0.88.0 entry) so this bump is exercised. The SwiftPM workflow is intentionally pinned to 0.87.1 as the first RN version with SwiftPM integration.
Evidence
packages/core/package.jsonnow pinsreact-nativeto0.88.0..github/workflows/e2e-v2.ymlsetsRN_VERSIONfrommatrix.rn-version, whose build matrix still lists0.87.1as its newest version; the test matrix also lists only0.87.1.dev-packages/e2e-tests/cli.mjsusesRN_VERSIONto choose the app's RN version, so the workflow override prevents it from using the new package default.
Identified by Warden · code-review · XFC-WRG


Bumps scripts/update-rn.sh from v0.87.1 to v0.88.0.
Auto-generated by a dependency updater.
Changelog
v0.87.1
Added
iOS specific
Changed
Fixed
Animated.Value.addListener()types its callback payload as{value: number}rather thanany(3eab03df4c by huntie)Animated.event()is typed as an event handler rather thanany(3eb330a365 by huntie)iOS specific
add_rn_third_party_dependencies(71c6bfbfdc by Kudo)v0.87.0
Breaking
useColorScheme()hook (nowColorSchemeName | null) (ef6463c25d by huntie)useColorScheme()no longer returns'unspecified'(this was always the case, but is a breaking type change) (8ac88f481a by huntie)react-native/core-cli-utilspackage is no longer published. It remains available in the React Native repo as a reference implementation. (9c3fddf9cd by huntie)'react-native/src/private/...'have been restricted, and are no longer visible to TypeScript. These subpaths still exist, but do not have type coverage. (142b6172a9 by huntie)NativeDialogManagerAndroidexport is removed. (a793d21a7e by huntie)Touchableroot export (undocumented) is removed. If you are extendingTouchableas a type, please useViewPropsinstead. (6fbf3062f9 by huntie)react-native/rn-get-polyfillsis removed — please usereact-native/js-polyfills(package) (b6a535afee by huntie)react-native/jest-presetis removed — all projects must now migrate toreact-native/jest-preset(package) (9ee21ddd9b by huntie)LogBoxto avoid layout breaking (4aef2b0126 by pchalupa)react-devtoolspackage via WebSocket. Use React Native DevTools instead. (f1971caa44 by huntie)SceneTrackermodule fromLibraries/Utilities, stop setting the active scene fromAppRegistry.runApplication, and pass the app key as an optional second argument toWrapperComponentProvider(bbb5be9b41 by rubennorte)ScrollViewkeyboardShouldPersistTaps(5bf3e38db2 by zoontek)StatusBarbackgroundColor/translucent/networkActivityIndicatorVisibleprops andsetBackgroundColor/setTranslucent/setNetworkActivityIndicatorVisiblemethods (6b45e579d6 by zoontek)NativeMethodsandNativeMethodsMixintypes (b724611aec by huntie)customConditions: ["react-native-legacy-deep-imports"]to opt out. (c948b61c05 by huntie)Android specific
iOS specific
Added
useNativeDriverunder featureflag animatedForceNativeDriver (9cf30b6e4b by zeyap)useNativeDriverunder featureflag animatedForceNativeDriver (cffe14ff57 by zeyap)optimizedAnimatedPropUpdatesfeature flag (ed96b22af2 by Bartlomiej Bloniarz)react-native/asset-utilspackage (relocates Android path utils for libraries/frameworks) (41d52189e2 by huntie)'react-native/Libraries/Core/InitializeCore'. Use'react-native/setup-env'instead. (bfa679f0ea by huntie)RCT_REMOVE_LEGACY_COMPONENT_INTEROP(9885fe95ef by christophpurrer)RCT_REMOVE_LEGACY_COMPONENT_INTEROP(8b959b46ea by christophpurrer)RCT_REMOVE_LEGACY_MODULE_INTEROP(3278f309e2 by christophpurrer)IntBufferandDoubleBufferentry types to MapBuffer for compact homogeneous int/double arrays (e7cadaf9f3 by javache)Systrace.tracehelper that wraps a function with begin/end events using try/finally (e6c7a269d2 by rubennorte)Page.addScriptToEvaluateOnNewDocumentandPage.removeScriptToEvaluateOnNewDocumentCDP methods in the modern inspector (bc20ec88eb by GijsWeterings)barStyle="auto"to follow the current color scheme (61c8b040bf by zoontek)Animated.Numeric(6206b0b01f by huntie)*Instanceref types for all built-in components (a3827f32f4 by huntie)textAlign: 'start'andtextAlign: 'end'. (ca29d38537 by SJvaca30)textDecorationStyle(solid,double,dotted,dashed,wavy) (87184c8fba by quantizor)ArrayBuffersupport to C++ TurboModules (226ef2e7c5 by paradowstack)selectiontoTextInputChangeEventDatain TypeScript types (e745c41a6b by nsbarsukov)AccessibilityActionInfo,ImageResizeMode,EdgeInsetsProp, andTextInputBlurEventtypes (ee36c67a27 by huntie)Promise.try+Promise.withResolverstypescript types (b99ddaf606 by retyui)causeproperty (abcb7821b1 by gimi-anders)YGErrataMinSizeUndefinedInsteadOfAutoerrata bit onYGConfig. (b766986387 by adityasharat)YGErrataMinSizeUndefinedInsteadOfAutoerrata bit onYGConfig. AddsYGNodeSetMinContentWidth/Heightfor static contributions andYGMinContentMeasureFuncfor dynamic ones.' (7f396d1116 by adityasharat)Android specific
compileSdkandbuildToolsto 37 (3e8dfb1e64 by alanjhughes)MapBufferListtype toMapBufferfor ordered lists of nestedMapBuffers (6a957746f6 by javache)ACCESS_LOCAL_NETWORKtoPermissionsAndroidand request it so the dev server stays reachable on Android 17 (SDK 37) (2bc2c8d7e6 by alanjhughes)ReactContext.getRuntimeExecutor()(dc9043e940 by javache)iOS specific
RCTDidInitializeModuleNotificationModuleKeyconstant forRCTDidInitializeModuleNotificationuserInfo (217ee52d4f by Eapen George)enableIOSCompressedTextFrameAdjustmentfeature flag forTextrendering adjustments. (b933d45276 by sbuggay)textDecorationStyle: 'dotted'and'dashed'for<Text>render with custom CoreGraphics paths instead of UIKit pattern bits, matching browser geometry more closely (9d037509bf by quantizor)Changed
animatedShouldDebounceQueueFlush) by default (5c197fb303 by zeyap)abort-controllerwith fork version from react-native (6f3375a140 by retyui)EventTargetmethods enumerable by spec (25c25b3c7c by retyui)experimental.instance_t_objkit_fixacross fbsource roots (71fee907fb by SamChou19815)in/out(9f558a4d6a by marcoww6)IntersectionObserverEntryas a global (4deb32a507 by rubennorte)windowglobal non-writable and non-configurable, and thenavigatorglobal non-writable (347f8d081e by rubennorte)interfacedeclarations, enabling module augmentation by libraries like Uniwind (preserve compatibility) (2574863642 by huntie)interfacedeclarations, enabling module augmentation by libraries like NativeWind and Expo (preserve compatibility) (db89600b56 by huntie)flattenStyleavoid extra intermediate objects when flattening nested style arrays. (d26f7b338d by tarikfp)experimental_prefix frombackgroundImage(58688bf176 by intergalacticspacehighway)useTurboModulesReactNativeFeatureFlags flag is nowtrue(db4c6ee3b6 by mdvacca)Android specific
ReactHorizontalScrollViewfrom Java to Kotlin (5c680995bd by cortinico)ReactScrollViewandReactNestedScrollViewfrom Java to Kotlin (9d65e6c497 by cortinico)ReactShadowNodeinterface from Java to Kotlin (f07c7cceee by cortinico)UIManagerModulefrom Java to Kotlin (21dfc2a855 by cortinico)UIViewOperationQueuefrom Java to Kotlin (7a8344c037 by cortinico)BridgeReactContextfrom Java to Kotlin (6720760faf by cortinico)ReactNativeHostfrom Java to Kotlin (no behavioral changes) (7eb11331b6 by cortinico)arc lint --take KTFMT(f9ba09d60e by generatedunixname1430061942044674)ViewManager#measure(63683f091c by javache)iOS specific
s.dependencyon RCT-Folly/glog/boost/etc. via dependency-only facade pods (a8156acf8b by chrfalch)unstableModulesRequiringMainQueueSetupare now always initialized eagerly on the main queue during React Native init; the previousenableEagerMainQueueModulesOnIOSopt-in flag has been removed. (36bec56b0b by javache)BeforeWaitingmain run loop observer instead of dispatching each merge as a separate main-queue block (d80377cd60 by j-piasecki)RCTUnsafeExecuteOnMainQueueSyncand bridgeless sync runtime-thread calls now always use the coordinator implementation that pumps UI tasks while waiting for JS, eliminating a class of deadlocks. The previous opt-in flag has been removed. (eaf770433a by javache)Deprecated
Appearance.setColorScheme('unspecified')is deprecated, use'auto'instead. (91702e50fe by huntie)react-native/assets-registry. UseAssetRegistryfromreact-nativeandreact-native/asset-utilsinstead. (715eeaad69 by huntie)ImageBackground, use aViewwith an absolutely positionedImageinstead (2361189716 by zoontek)UTFSequencemodule as deprecated (549e4e2d8d by retyui)UTFSequencemodule as deprecated (fd49bf2e2c by retyui)NativeMethodsinterface is deprecated. UseHostInstanceinstead. (19f5691e39 by huntie)Android specific
DrawerLayoutAndroid, usereact-native-drawer-layoutinstead (5c5e6cd8ce by zoontek)UIBlockinterface andUIManagerModule.addUIBlock/prependUIBlockmethods. UseUIManagerListeneror View Commands instead. (29a76918a9 by cortinico)Removed
enableVirtualViewDebugFeaturesfeature flag and the associatedFlingItemOverlay/FlingDebugItemOverlaydebug surfaces. (083fd99ba4 by javache)disableMaintainVisibleContentPositionfeature flag from ReactNativeFeatureFlags (661ce06e02 by generatedunixname1608173377072046)useLISAlgorithmInDifferentiatorfeature flag and LIS algorithm code from the Differentiator (9f4513c751 by javache)InteractionManager(userequestIdleCallbackinstead) (ed893f7d98 by rubennorte)Modalanimatedprop (fd10410d51 by zoontek)PublicScrollViewInstanceandPublicModalInstancetypes. UseScrollViewInstanceandModalInstanceinstead. (74fdfd1eab by huntie)useTurboModulesfeature flag. TurboModules are now always enabled. (b4a715ca1f by mdvacca)Android specific
DevServerHelper.websocketProxyURLproperty (legacy remote JS debugger) (9cb2e63c87 by huntie)DisplayMetricsHolder.getWindowDisplayMetrics,setWindowDisplayMetrics, andgetDisplayMetricsWritableMap(82536f230f by zoontek)UIImplementation. This class was already non-functional (all methods were empty stubs). (cf28e6b73c by cortinico)UIImplementation. This class was already non-functional (all methods were empty stubs). (0825f21171 by cortinico)logMarkerBridgelessandlogTaggedMarkerBridgelessin favor oflogMarkerandlogTaggedMarker(319610d328 by javache)iOS specific
TimingModule; will be removed in a future React Native release (b0a6386995 by christophpurrer)Fixed
Animated.Valuewith the post-animation value before invokingAnimated.timing(...).start({finished})callbacks so reads from inside the callback (or from React re-renders it triggers) observe the post-animation value rather than the pre-animation value. Gated behind a new JS-only feature flag,animatedShouldSyncValueBeforeStartCallback, defaulting totrue(set tofalseto opt out). (ee6958a9f4 by fabriziocucci)react-native/Libraries/Image/AssetRegistryis removed. Please use theAssetRegistryAPI (apps/library code) and/or thereact-native/asset-registryentrypoint (Metro/build configs). (6cfde8f296 by huntie)Blob.slice()for negative start offsets and inverted ranges (b29dc966a4 by durvesh1992)AbortSignal.any()process its input signals in multiple passes to match the DOM specification (1136e41bd8 by rubennorte)parentNode/parentElementreturning the document instead of the containing element for<Modal>and other nested root host views, which severed capture/bubble event propagation to ancestors rendered above them (e410ff5471 by rubennorte)FileReaderreadyStatetoLOADINGduring a read soabort()correctly emitsabort/loadend(c00813c6ee by durvesh1992)react-native/scripts/*imports are now mandated; explicit.jsimport specifiers are rejected. (97727ba67f by huntie)memcpy(_, nullptr, 0)UB inMapBufferBuilder::buildfor empty / scalar-only MapBuffers (34ccf4f331 by javache)JCxxInspectorPackagerConnectionDelegateImpl::connectWebSocketto prevent null dereference (fa05b8c88b by shubhamksavita)ReactCxxPlatform'sReactHost(ac81869f05 by etodanik)setProp:automaticallyAdjustKeyboardInsets,dynamicTypeRamp,writingDirection,experimental_accessibilityOrder,transformOrigin, and the fullborderCurvescascaded set. (15b1f5529a by javache)HMRClient.setup()redbox) because the environment setup module was dropped from the bundle (eb987ef550 by cipolleschi)textAlignVerticalprop on<TextInput>(e04ff69ab3 by huntie)pointerEventsprop toTextcomponent (a2e042f76a by huntie)getNativeScrollRefreturn type across ScrollView, FlatList, and SectionList (535b844680 by huntie)| undefinedforexactOptionalPropertyTypescompatibility (0fc76bb527 by zeyap)