Skip to content

pkg: Update react-native to 0.88 - #4401

Merged
ntucker merged 3 commits into
masterfrom
claude/rn-0.88-weybhp
Oct 17, 2026
Merged

ntucker merged 3 commits into
masterfrom
claude/rn-0.88-weybhp

Conversation

@ntucker

@ntucker ntucker commented Oct 17, 2026 •

Copy link
Copy Markdown
Collaborator

Requested by Nathaniel · project thread

Takes over #4399 (Renovate's non-major group, which carries the RN 0.88 bump) and adds what React Native 0.88 needs. Once this merges Renovate closes #4399, since its updates are already applied.

Motivation

On #4399, unit_tests-native failed: every suite that rendered a core component crashed with Could not locate module react-native/react-private-interface.

React Native 0.88 adds react-native/react-private-interface as an entry point that exists only in package exports. Our jest config copied @react-native/jest-preset's aliases by hand, so it was missing this one. Also, 0.88 bundles the React 19.3 renderer (peer react ^19.3.0), but the native CI job downgraded React to 19.2.3 before running the React Native suites.

React Native 0.88 itself makes no user-facing breaking changes, and Data Client's native code needs no change. InteractionManager stays removed, and the requestIdleCallback fallback from #4355 still covers it. The new react-native/setup-env / InitializeCore deprecation and the Touchable export removal don't affect us. So there's no changeset; the pending 0.87 changeset still describes the user-visible fix.

Solution

  • jest.config.js: the ReactNative project now spreads @react-native/jest-preset's moduleNameMapper, and also takes its resolver, testEnvironment, setupFiles and haste, instead of copying them. Entry points React Native adds later come in with the preset upgrade. We still can't use it as the preset, because the project layers on @anansi/jest-preset.
  • CircleCI unit_tests-native: runs the ReactNative suites on the installed React 19.3, then downgrades to 19.2.3 for the previous-minor ReactDOM suites, so that coverage stays.

Verified locally: yarn test:ci --selectProjects ReactNative passes, with 9 suites and 66 tests.


Generated by Claude Code


Note

Low Risk
Primarily dev/CI and test tooling; no published library API changes, though Jest native resolution behavior now tracks the upstream preset.

Overview
Upgrades react-native and @react-native/jest-preset from 0.87 to 0.88 across the root and workspace devDependencies (with lockfile churn). CI uses cimg/node:26.12.

The ReactNative Jest project now pulls resolver, moduleNameMapper, testEnvironment, setupFiles, and haste from @react-native/jest-preset instead of maintaining partial copies—so new exports-only entry points (e.g. react-native/react-private-interface) resolve without manual aliases.

For the native unit-test matrix job, ReactNative suites run on the installed React 19.3 (matching RN 0.88’s peer); the 19.2.3 downgrade and targeted ReactDOM per-minor tests run after those suites, not during install.

The examples/nextjs lockfile bumps Next.js 15.5.27 → 15.5.28.

Reviewed by Cursor Bugbot for commit bbe1d8a. Bugbot is set up for automated code reviews on this repo. Configure here.

renovate Bot and others added 2 commits October 17, 2026 13:37
Take react-native's jest aliases from @react-native/jest-preset instead of
copying them: 0.88 adds the exports-only react-native/react-private-interface
entry, which the copied mapper resolved as a missing directory.

React Native 0.88 bundles the React 19.3 renderer, so the native job runs
the ReactNative suites on the installed React and only then downgrades to
19.2.3 for the previous-minor ReactDOM suites.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DtLiYpnhzjcWBNPipb6j8W
@changeset-bot

changeset-bot Bot commented Oct 17, 2026 •

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: bbe1d8a

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@ntucker ntucker self-assigned this Oct 17, 2026
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 17, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-17T19:06:23.364284Z 345a8ea PR opened
ℹ️ 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" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@github-actions github-actions 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.

Benchmark Spread

Details
Benchmark suite Current: bbe1d8a Previous: a50e3aa Ratio
setOneEntity in 10k entity store 195 ops/sec (±0.82%) 150 ops/sec (±0.58%) 0.77

This comment was automatically generated by workflow using github-action-benchmark.

@github-actions

Copy link
Copy Markdown
Contributor

Size Change: 0 B

Total Size: 112 kB

ℹ️ View Unchanged
Filename Size
examples/test-bundlesize/dist/App.js 1.45 kB
examples/test-bundlesize/dist/polyfill.js 301 B
examples/test-bundlesize/dist/rdcClient.js 10.8 kB
examples/test-bundlesize/dist/rdcEndpoint.js 8.04 kB
examples/test-bundlesize/dist/rdcNextjs.js 12.4 kB
examples/test-bundlesize/dist/rdcPipeableStream.js 9.65 kB
examples/test-bundlesize/dist/react.js 68.6 kB
examples/test-bundlesize/dist/webpack-runtime.js 698 B

compressed-size-action

@codecov

codecov Bot commented Oct 17, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 98.37%. Comparing base (4d44605) to head (bbe1d8a).
⚠️ Report is 2 commits behind head on master.

Additional details and impacted files
@@           Coverage Diff           @@
##           master    #4401   +/-   ##
=======================================
  Coverage   98.37%   98.37%           
=======================================
  Files         161      161           
  Lines        3072     3072           
  Branches      604      604           
=======================================
  Hits         3022     3022           
  Misses         10       10           
  Partials       40       40           

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@github-actions github-actions 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.

Benchmark React

Details
Benchmark suite Current: bbe1d8a Previous: a50e3aa Ratio
data-client: getlist-100 198.04 ops/s (± 7.9%) 151.52 ops/s (± 9.3%) 0.77
data-client: getlist-500 65.79 ops/s (± 3.1%) 52.91 ops/s (± 3.4%) 0.80
data-client: update-entity 454.55 ops/s (± 7.4%) 339.08 ops/s (± 7.0%) 0.75
data-client: update-user 416.67 ops/s (± 8.0%) 384.62 ops/s (± 7.9%) 0.92
data-client: getlist-500-sorted 52.08 ops/s (± 7.3%) 52.22 ops/s (± 8.3%) 1.00
data-client: update-entity-sorted 339.08 ops/s (± 7.7%) 281.75 ops/s (± 7.8%) 0.83
data-client: update-entity-multi-view 345.24 ops/s (± 4.7%) 322.58 ops/s (± 6.1%) 0.93
data-client: list-detail-switch-10 15.53 ops/s (± 9.0%) 10.8 ops/s (± 7.5%) 0.70
data-client: update-user-10000 93.9 ops/s (± 8.4%) 85.11 ops/s (± 10.7%) 0.91
data-client: invalidate-and-resolve 52.63 ops/s (± 4.9%) 41.5 ops/s (± 5.8%) 0.79
data-client: unshift-item 303.03 ops/s (± 2.0%) 227.27 ops/s (± 5.5%) 0.75
data-client: delete-item 454.55 ops/s (± 7.8%) 363.76 ops/s (± 9.8%) 0.80
data-client: move-item 200 ops/s (± 8.1%) 183.5 ops/s (± 6.7%) 0.92

This comment was automatically generated by workflow using github-action-benchmark.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DtLiYpnhzjcWBNPipb6j8W

@github-actions github-actions 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.

Benchmark

Details
Benchmark suite Current: bbe1d8a Previous: a50e3aa Ratio
normalizeLong 431 ops/sec (±3.58%) 211 ops/sec (±19.22%) 0.49
normalizeLong Values 390 ops/sec (±1.15%) 200 ops/sec (±15.76%) 0.51
normalizeLong Scalar 355 ops/sec (±3.24%) 319 ops/sec (±10.45%) 0.90
normalizeLong Scalar update 906 ops/sec (±0.25%) 909 ops/sec (±0.20%) 1.00
denormalizeLong 237 ops/sec (±6.03%) 234 ops/sec (±5.60%) 0.99
denormalizeLong Values 221 ops/sec (±4.20%) 218 ops/sec (±4.91%) 0.99
denormalizeLong donotcache 940 ops/sec (±0.62%) 1001 ops/sec (±0.74%) 1.06
denormalizeLong Values donotcache 732 ops/sec (±0.93%) 742 ops/sec (±0.14%) 1.01
denormalizeLong Scalar donotcache 1067 ops/sec (±0.16%) 1042 ops/sec (±0.34%) 0.98
denormalizeShort donotcache 500x 1412 ops/sec (±0.24%) 1423 ops/sec (±0.10%) 1.01
denormalizeShort 500x 654 ops/sec (±6.64%) 619 ops/sec (±7.09%) 0.95
denormalizeShort 500x withCache 6975 ops/sec (±0.13%) 7031 ops/sec (±0.71%) 1.01
queryShort 500x withCache 3075 ops/sec (±0.92%) 3118 ops/sec (±0.96%) 1.01
buildQueryKey All 58610 ops/sec (±0.53%) 60001 ops/sec (±0.49%) 1.02
query All withCache 6062 ops/sec (±2.69%) 6137 ops/sec (±2.76%) 1.01
denormalizeLong with mixin Entity 211 ops/sec (±7.31%) 205 ops/sec (±7.25%) 0.97
denormalizeLong withCache 6453 ops/sec (±0.25%) 6297 ops/sec (±1.79%) 0.98
denormalizeLong withCache (Scalar churn) 6432 ops/sec (±0.45%) 6453 ops/sec (±0.70%) 1.00
denormalizeLong Values withCache 5217 ops/sec (±1.40%) 5061 ops/sec (±2.13%) 0.97
denormalizeLong Scalar withCache 7643 ops/sec (±0.25%) 7935 ops/sec (±0.42%) 1.04
denormalizeLong Scalar update withCache 4055 ops/sec (±0.23%) 4113 ops/sec (±0.96%) 1.01
denormalizeLong All withCache 6295 ops/sec (±0.23%) 4795 ops/sec (±33.61%) 0.76
denormalizeLong Query-sorted withCache 6344 ops/sec (±2.09%) 5209 ops/sec (±17.26%) 0.82
denormalizeLongAndShort withEntityCacheOnly 1702 ops/sec (±0.31%) 1319 ops/sec (±4.66%) 0.77
denormalize bidirectional 50 4630 ops/sec (±9.72%) 3535 ops/sec (±15.50%) 0.76
denormalize bidirectional 50 donotcache 42635 ops/sec (±1.67%) 37496 ops/sec (±2.94%) 0.88
getResponse 4528 ops/sec (±3.32%) 3531 ops/sec (±12.49%) 0.78
getResponse (null) 10332296 ops/sec (±0.63%) 8900681 ops/sec (±4.41%) 0.86
getResponse (clear cache) 207 ops/sec (±7.77%) 128 ops/sec (±12.04%) 0.62
getSmallResponse 3364 ops/sec (±0.85%) 2669 ops/sec (±9.59%) 0.79
getSmallInferredResponse 2847 ops/sec (±0.24%) 2543 ops/sec (±2.81%) 0.89
getResponse Collection 4265 ops/sec (±4.39%) 3845 ops/sec (±8.73%) 0.90
get Collection 2738 ops/sec (±0.22%) 1503 ops/sec (±44.20%) 0.55
get Query-sorted 5111 ops/sec (±1.25%) 3835 ops/sec (±27.89%) 0.75
setLong 424 ops/sec (±0.24%) 343 ops/sec (±11.56%) 0.81
setLongWithMerge 246 ops/sec (±0.71%) 213 ops/sec (±2.16%) 0.87
setLongWithSimpleMerge 258 ops/sec (±0.70%) 230 ops/sec (±2.39%) 0.89
setSmallResponse 500x 905 ops/sec (±1.55%) 902 ops/sec (±1.35%) 1.00
setMany 50x one-per-row 151 ops/sec (±0.40%) 138 ops/sec (±1.94%) 0.91
setMany 50 batch 3577 ops/sec (±2.62%) 3442 ops/sec (±1.32%) 0.96
setMany 500x one-per-row 15.22 ops/sec (±0.64%) 13.9 ops/sec (±4.10%) 0.91
setMany 500 batch 1429 ops/sec (±0.15%) 1362 ops/sec (±2.84%) 0.95

This comment was automatically generated by workflow using github-action-benchmark.

@ntucker
ntucker added this pull request to the merge queue Oct 17, 2026
Merged via the queue into master with commit 7c55890 Oct 17, 2026
38 checks passed
@ntucker
ntucker deleted the claude/rn-0.88-weybhp branch October 17, 2026 19:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants