Update react-native to v0.87.0 - #61
Closed
dfalling wants to merge 1 commit into
Closed
Conversation
dfalling
force-pushed
the
renovate/react-native
branch
from
July 28, 2026 07:02
949e4f7 to
cc089ad
Compare
dfalling
force-pushed
the
renovate/react-native
branch
from
August 11, 2026 06:25
cc089ad to
906e40c
Compare
dfalling
force-pushed
the
renovate/react-native
branch
from
August 12, 2026 06:37
906e40c to
e2a0527
Compare
Owner
Author
|
Superseded by #73, which combines this with the jest 30 upgrade (#42) — neither lands alone, since jest 30 needs overrides against RN's preset and 0.87 needs an Android toolchain bump that jest is indifferent to. #73 also carries the 0.87 migration this branch was missing: |
dfalling
added a commit
that referenced
this pull request
Aug 17, 2026
Renovate raised react-native 0.87 (#61) and jest 30 (#42) separately, but neither can land alone: jest 30 needs overrides that only make sense alongside RN's preset, and RN 0.87 needs the same Android toolchain bump that jest is indifferent to. Combined so CI can go green on one commit. react-native 0.87 - `View`/`TextInput` are function components now, so those names no longer double as their instance types. Refs move to the dedicated `ViewInstance`/`TextInputInstance` aliases RN 0.87 exports for exactly this. - AGP 9.2.1 comes with RN 0.87 and wants Gradle >= 9.4.1, so the wrapper goes to 9.4.1 — the version RN's own gradle-plugin ships. AGP 9 also registers its own `kotlin` extension and rejects the `-dontoptimize` default proguard file; both need the opt-outs RN 0.87's template uses. - kotlinVersion 2.2.0 matches the Kotlin the RN gradle-plugin is built with, which is what lets Gradle 9.4's bundled stdlib be read at all. - maplibre-react-native and react-native-screens are moved to their latest in-range releases; the pinned ones fail to compile against 0.87 (`getReactTag()` and a `Bitmap?` nullability error). - react/react-test-renderer stay at 19.2.3 — still the renderer version bundled in react-native, checked per renovate.json's instructions. - view-shot 5.1.1 has no 0.87 support yet and is typechecked from source via its "react-native" export condition, so tsc reads its published declarations instead. Metro still bundles from src/, so runtime is unchanged. jest 30 - @react-native/jest-preset 0.87 still asks for jest-environment-node, babel-jest and @jest/create-cache-key-function at ^29.7.0. Its testEnvironment extends whichever jest-environment-node sits next to the preset, so a v29 environment met jest-runtime 30 and every suite died on `clearMocksOnScope is not a function`. Overridden to v30. Babel 8 (#55) is not included: @react-native/babel-preset's plugin chain asserts `^7.0.0-0`, so under @babel/core 8 it throws before any suite runs. Metro, babel-jest and the preset each vendor their own @babel/core 7, so a top-level v8 only shadows them — held at v7 in renovate.json until RN moves. That also pins @babel/plugin-transform-export-namespace-from, which babel.config.js applies directly but only had a transitive install. The Gradle ceiling in renovate.json moves 9.4 -> 9.7 for the same reason it existed: Gradle 9.7 bundles Kotlin 2.4.0 and RN's 2.2.0 plugin reads metadata only to 2.3.0. 9.5.1 and 9.6.1 were verified to configure cleanly. Verified: tsc, biome, 51 tests, clean `assembleDebug`, and a `--dev false` release bundle. Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
0.86.0→0.87.00.86.0→0.87.00.86.0→0.87.00.86.0→0.87.00.86.0→0.87.00.86.0→0.87.0reactandreact-test-rendererare coupled to this release but are not in this group — they must exactly match the react-native-renderer bundled in react-native, a version Renovate can't read, so they're pinned by hand (mismatch crashes the app at launch). Read the bundled version withgrep -rhoE '19\.[0-9.]+' node_modules/react-native/Libraries/Renderer/implementations/ReactFabric-prod.js | sort -u, set both packages inpackage.jsonto that exact version, and runbun install.Release Notes
react/react-native (@react-native/babel-preset)
v0.87.0: 0.87.0Compare Source
Hermes V1 dSYMS:
ReactNativeDependencies dSYMs:
ReactNative Core dSYMs:
You can file issues or pick requests against this release here.
To help you upgrade to this version, you can use the Upgrade Helper ⚛️.
View the whole changelog in the CHANGELOG.md file.
v0.86.2: 0.86.2Compare Source
Fixed
display: contentsnodes havinghasNewLayoutset incorrectly (36f69eff0d by j-piasecki)Android
ReactInstanceManager.mHasStartedDestroyingLockinstead of usingReactInstanceManager.mHasStartedDestroying(cdfba520fa by jingjing2222)java.lang.Boolean. (821045a24f by Yqwed)Changed
2508290.0.16 (95538111bf by @gabrieldonadel)Hermes dSYMS:
Hermes V1 dSYMS:
ReactNativeDependencies dSYMs:
ReactNative Core dSYMs:
You can file issues or pick requests against this release here.
To help you upgrade to this version, you can use the Upgrade Helper ⚛️.
View the whole changelog in the CHANGELOG.md file.
v0.86.1Compare Source
Configuration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about these updates again.
This PR has been generated by Mend Renovate.