Integrate RN Nightly Build 0.85.0-nightly-20260128-36f07a1b2#16217
Open
anuagragith wants to merge 8 commits into
Open
Integrate RN Nightly Build 0.85.0-nightly-20260128-36f07a1b2#16217anuagragith wants to merge 8 commits into
anuagragith wants to merge 8 commits into
Conversation
Resolved 14 files with conflicts from the RN 0.85.0-nightly-20260128 integration: packages/ (10 files): - monorepo/package.json, tester/package.json: kept nightly versions - AccessibilityInfo.win32.js: upstream keyof + Win32 platform branch - TextInput.flow.win32.js: upstream ReadonlyArray + Win32 accessibility props - Touchable.win32.js: upstream ReadonlyArray + Win32 keyboard/mouse props - CoreEventTypes.win32.js: upstream ReadonlyArray + Win32 ctrlKey - RNTesterExampleFilter.win32.js: upstream ReadonlyArray + Win32 bookmarks - TextExample.windows.js: upstream FiraCode examples + Windows view close - TextSharedExamples.windows.js: kept RNW override pattern - Text.win32.js: major refactor - removed legacy TextImplLegacy branch, removed ReactNativeFeatureFlags checks, adopted processedProps pattern, preserved all Win32 accessibility additions vnext/ (4 files): - AccessibilityInfo.windows.js: upstream keyof + Windows platform branch - TextInput.flow.windows.js: upstream ReadonlyArray + Windows props - Touchable.windows.js: upstream ReadonlyArray + Windows touch props - Text.windows.js: same major refactor as win32 variant with Windows accessibility props (aria-level, aria-readonly, etc.) All files pass node --check and Metro bundle succeeds. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- ReactCommon.vcxproj: Suppress C4267 warning in upstream MapBuffer.cpp (size_t to int32_t conversion, warnings-as-errors) - ImageComponentView.cpp: Adapt to upstream API change where addObserver/removeObserver now take shared_ptr instead of raw reference Linker errors (AnimationBackend) remain to be addressed in next iteration. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Add new upstream animationbackend module source files to ReactCommon.vcxproj: - AnimatedPropSerializer.cpp - AnimatedPropsRegistry.cpp - AnimationBackend.cpp - AnimationBackendCommitHook.cpp Create Windows-patched AnimatedPropSerializer.cpp in TEMP_UntilReactCommonUpdate to handle platform Color struct (not int32_t on Windows) with colorToInt32() helper. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Performance Test ResultsBranch: ✅ Passed161 scenario(s) across 28 suite(s) — no regressionsSectionList
FlatList
TouchableOpacity
ScrollView
TouchableHighlight
Pressable
Modal
Image
ActivityIndicator
Switch
Button
TextInput
View
Text
SectionList.native-perf-test.ts
FlatList.native-perf-test.ts
TouchableHighlight.native-perf-test.ts
TouchableOpacity.native-perf-test.ts
Pressable.native-perf-test.ts
ScrollView.native-perf-test.ts
ActivityIndicator.native-perf-test.ts
TextInput.native-perf-test.ts
Switch.native-perf-test.ts
Button.native-perf-test.ts
Modal.native-perf-test.ts
Image.native-perf-test.ts
View.native-perf-test.ts
Text.native-perf-test.ts
|
Contributor
There was a problem hiding this comment.
Pull request overview
Integrates React Native Windows against upstream React Native nightly 0.85.0-nightly-20260128-36f07a1b2 (from 0.85.0-nightly-20260114-f15985f4f), updating JS/Flow surfaces and bringing in upstream changes across RNW’s platform override layers and native code.
Changes:
- Bumped React Native nightly versions and related RN packages across the monorepo (package.json/yarn.lock/overrides.json).
- Synced multiple upstream Flow typing updates (e.g.,
$Keys→keyof,$ReadOnlyArray→ReadonlyArray) across Windows and Win32 override sources and RNTester. - Added/updated native integration pieces related to animation backend and jsinspector network agent plumbing.
Reviewed changes
Copilot reviewed 80 out of 81 changed files in this pull request and generated 7 comments.
Show a summary per file
| File | Description |
|---|---|
| yarn.lock | Updates lockfile to RN nightly 2026-01-28 and related dependency bumps (Flow, Hermes, ESLint plugin versions, etc.). |
| vnext/src-win/src/private/specs_DEPRECATED/components/RCTModalHostViewNativeComponent.js | Flow type sync ($ReadOnlyArray → ReadonlyArray) for modal supported orientations. |
| vnext/src-win/src/private/featureflags/ReactNativeFeatureFlagsBase.js | Flow type sync ($Keys → keyof) for feature-flag getters. |
| vnext/src-win/Libraries/Types/CoreEventTypes.windows.js | Flow type sync ($ReadOnlyArray → ReadonlyArray) for touch event types. |
| vnext/src-win/Libraries/Text/Text.windows.js | Upstream Text implementation sync; removes old feature-flag branching and consolidates processing. |
| vnext/src-win/Libraries/Renderer/shims/ReactNativeTypes.windows.js | Updates generated SignedSource header metadata. |
| vnext/src-win/Libraries/Network/RCTNetworking.windows.js | Flow type sync for generic key typing (keyof). |
| vnext/src-win/Libraries/Modal/Modal.windows.js | Flow type sync for modal supported orientations array typing. |
| vnext/src-win/Libraries/Components/View/ViewAccessibility.windows.js | Flow type sync for accessibilityActions array typing. |
| vnext/src-win/Libraries/Components/Touchable/Touchable.windows.js | Flow type sync for touch arrays. |
| vnext/src-win/Libraries/Components/TextInput/TextInput.flow.windows.js | Adds selection to change event payload + Flow array typing updates. |
| vnext/src-win/Libraries/Components/ScrollView/ScrollViewNativeComponent.windows.js | Adds scrollsChildToFocus to view config attributes (android branch). |
| vnext/src-win/Libraries/Components/ScrollView/ScrollView.windows.js | Adds scrollsChildToFocus prop typing and upstream ScrollView behavior changes; enables nested scroll in Android refresh-control path. |
| vnext/src-win/Libraries/Components/RefreshControl/RefreshControl.windows.js | Flow type sync for colors array typing. |
| vnext/src-win/Libraries/Components/Button.windows.js | Flow type sync for accessibilityActions array typing. |
| vnext/src-win/Libraries/Components/AccessibilityInfo/AccessibilityInfo.windows.js | Flow type sync (keyof) and refactors event-name map typing/initialization. |
| vnext/src-win/jest/setup.js | Adds Flow suppression comment for mocked useColorScheme. |
| vnext/src-win/index.windows.js.flow | Exposes EventEmitter and related types from vendor emitter; adjusts exported subscription types. |
| vnext/src-win/index.windows.js | Adds lazy getter export for EventEmitter. |
| vnext/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/uimanager/UIManager.cpp | Integrates shared animation backend changes and adjusts tick behavior behind feature flag. |
| vnext/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/animationbackend/AnimatedPropSerializer.cpp | Adds animation-backend prop serialization implementation (new file). |
| vnext/ReactCommon/TEMP_UntilReactCommonUpdate/jsinspector-modern/NetworkIOAgent.h | Adds destructor + deletes copy/move operations; tracks network agent ID for cleanup. |
| vnext/ReactCommon/TEMP_UntilReactCommonUpdate/jsinspector-modern/NetworkIOAgent.cpp | Implements cleanup on destruction; switches to per-agent enable/disable APIs. |
| vnext/ReactCommon/ReactCommon.vcxproj | Adds animation backend sources; suppresses MapBuffer warning 4267. |
| vnext/package.json | Bumps RN nightly dependencies used by vnext. |
| vnext/overrides.json | Updates baseVersion/baseHash references for platform overrides to new RN nightly. |
| vnext/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.cpp | Updates observer coordinator calls to use shared_ptr observer directly. |
| vnext/.flowconfig | Bumps Flow version requirement to ^0.298.0. |
| packages/sample-custom-component/package.json | Bumps RN nightly dependency + metro-config to new nightly. |
| packages/sample-app-fabric/package.json | Bumps RN nightly dependency + metro-config to new nightly. |
| packages/react-native-windows-init/package.json | Bumps RN nightly dependency to new nightly. |
| packages/playground/package.json | Bumps RN nightly dependency + metro-config to new nightly. |
| packages/e2e-test-app-fabric/package.json | Bumps RN nightly dependency + metro-config to new nightly. |
| packages/@rnw-scripts/metro-dev-config/package.json | Bumps RN nightly dependency + metro-config to new nightly. |
| packages/@rnw-scripts/integrate-rn/package.json | Bumps RN nightly dependency to new nightly. |
| packages/@rnw-scripts/eslint-config/package.json | Bumps @react-native/eslint-config to new nightly. |
| packages/@rnw-scripts/babel-react-native-config/package.json | Bumps @react-native/babel-preset to new nightly. |
| packages/@react-native/tester/package.json | Bumps tester package version and dependencies to new nightly; updates node engine range. |
| packages/@react-native/tester/overrides.json | Updates tester overrides baseVersion and baseHash references for new nightly. |
| packages/@react-native/tester/NativeComponentExample/js/MyNativeViewNativeComponent.js | Flow type sync for read-only arrays in codegen example types. |
| packages/@react-native/tester/js/utils/RNTesterNavigationReducer.js | Flow type sync ($Keys → keyof typeof). |
| packages/@react-native/tester/js/examples/TextInput/TextInputSharedExamples.js | Updates TextInput example to log selection on change + Flow read-only array type sync. |
| packages/@react-native/tester/js/examples/IntersectionObserver/IntersectionObserverExplicitRoot.js | Flow type sync for entries array type. |
| packages/@react-native/tester/js/examples/IntersectionObserver/IntersectionObserverClippingRoot.js | Flow type sync for entries array type. |
| packages/@react-native/tester/js/examples/IntersectionObserver/IntersectionObserverClippingParent.js | Flow type sync for entries array type. |
| packages/@react-native/monorepo/package.json | Bumps metro-config/transformer + Flow + prettier-plugin-hermes-parser versions aligned with new nightly. |
| packages/@react-native/monorepo/overrides.json | Updates baseVersion/baseHash for monorepo override to new nightly. |
| packages/@react-native-windows/tester/src/js/examples/Text/TextExample.windows.js | Updates Text tester example content (font variant demo additions). |
| packages/@react-native-windows/tester/src/js/examples/Image/ImageExample.windows.js | Flow type sync for events/progress arrays. |
| packages/@react-native-windows/tester/package.json | Bumps peer/dev RN nightly dependencies to new nightly. |
| packages/@react-native-windows/tester/overrides.json | Updates baseVersion/baseHash references to new nightly. |
| packages/@react-native-windows/perf-testing/package.json | Bumps peer RN nightly dependency to new nightly. |
| packages/@react-native-windows/cli/package.json | Bumps peer/dev RN nightly dependency to new nightly. |
| packages/@react-native-windows/automation-channel/package.json | Bumps peer/dev RN nightly dependency to new nightly. |
| packages/@office-iss/react-native-win32/src-win/src/private/animated/NativeAnimatedHelper.win32.js | Flow type sync for variadic native operation typing. |
| packages/@office-iss/react-native-win32/src-win/Libraries/Utilities/useMergeRefs.js | Flow type sync for read-only array typing in ref utility. |
| packages/@office-iss/react-native-win32/src-win/Libraries/Types/CoreEventTypes.win32.js | Flow type sync ($ReadOnlyArray → ReadonlyArray) for touch types (Win32). |
| packages/@office-iss/react-native-win32/src-win/Libraries/Text/Text.win32.js | Syncs upstream Text implementation; removes old feature-flag branching and consolidates Win32 accessibility handling. |
| packages/@office-iss/react-native-win32/src-win/Libraries/Renderer/shims/ReactNativeTypes.win32.js | Updates generated SignedSource header metadata (Win32). |
| packages/@office-iss/react-native-win32/src-win/Libraries/Network/RCTNetworking.win32.js | Flow type sync (keyof) for event definitions in Win32 networking. |
| packages/@office-iss/react-native-win32/src-win/Libraries/Components/View/ViewAccessibility.win32.js | Flow type sync for accessibilityActions array typing (Win32). |
| packages/@office-iss/react-native-win32/src-win/Libraries/Components/Touchable/Touchable.win32.js | Flow type sync for touch arrays (Win32). |
| packages/@office-iss/react-native-win32/src-win/Libraries/Components/TextInput/TextInput.flow.win32.js | Adds selection to change event payload + Flow array typing updates (Win32). |
| packages/@office-iss/react-native-win32/src-win/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.js | Flow type sync ($Keys → keyof) inside utility Omit type. |
| packages/@office-iss/react-native-win32/src-win/Libraries/Components/Button.win32.js | Flow type sync for accessibilityActions array typing (Win32). |
| packages/@office-iss/react-native-win32/src-win/Libraries/Components/AccessibilityInfo/AccessibilityInfo.win32.js | Flow type sync (keyof) and refactors event-name map typing/initialization (Win32). |
| packages/@office-iss/react-native-win32/src-win/index.win32.js.flow | Exposes EventEmitter and related types; adjusts exported subscription types (Win32). |
| packages/@office-iss/react-native-win32/src-win/index.win32.js | Adds lazy getter export for EventEmitter (Win32). |
| packages/@office-iss/react-native-win32/package.json | Bumps RN nightly dependencies to new nightly (Win32 package). |
| packages/@office-iss/react-native-win32/overrides.json | Updates baseVersion/baseHash references for Win32 overrides to new nightly. |
| packages/@office-iss/react-native-win32/.flowconfig | Bumps Flow version requirement to ^0.298.0 (Win32 package). |
| packages/@office-iss/react-native-win32-tester/src/js/components/RNTesterExampleFilter.win32.js | Flow type sync for read-only array typing. |
| packages/@office-iss/react-native-win32-tester/package.json | Bumps tester’s RN nightly dependency to new nightly. |
| packages/@office-iss/react-native-win32-tester/overrides.json | Updates baseVersion/baseHash references to new nightly. |
| package.json | Bumps root RN nightly dependency to new nightly. |
| change/react-native-windows-init-45c7b878-1e1d-4199-8d6b-1f38e4c2c557.json | Adds beachball change entry for react-native-windows-init integration. |
| change/react-native-windows-0e30cb57-509c-4f17-b53d-85afe42a7aed.json | Adds beachball change entry for react-native-windows integration. |
| change/@react-native-windows-perf-testing-c7b38639-cd88-4506-84a4-1c9e0367f703.json | Adds beachball change entry for perf-testing integration. |
| change/@react-native-windows-cli-b5d209e0-f9dc-4cfc-8dfa-d25841689ae1.json | Adds beachball change entry for CLI integration. |
| change/@react-native-windows-automation-channel-de51f219-371f-459d-9dd7-365fb91cfbc0.json | Adds beachball change entry for automation-channel integration. |
| change/@office-iss-react-native-win32-a9e23f9c-3200-4e7b-a927-c1524d5f3be2.json | Adds beachball change entry for @office-iss/react-native-win32 integration. |
Comment on lines
214
to
216
| if (ReactNativeFeatureFlags::useSharedAnimatedBackend()) { | ||
| if (auto animationBackend = animationBackend_.lock()) { | ||
| animationBackend->clearRegistry(surfaceId); | ||
| } | ||
| animationBackend_->clearRegistry(surfaceId); | ||
| } |
| "type": "prerelease", | ||
| "comment": "Integrate RN 0.85.0-nightly-20260128-36f07a1b2", | ||
| "packageName": "react-native-windows-init", | ||
| "email": "email not defined", |
| "type": "prerelease", | ||
| "comment": "Integrate RN 0.85.0-nightly-20260128-36f07a1b2", | ||
| "packageName": "react-native-windows", | ||
| "email": "email not defined", |
| "type": "prerelease", | ||
| "comment": "Integrate RN 0.85.0-nightly-20260128-36f07a1b2", | ||
| "packageName": "@react-native-windows/perf-testing", | ||
| "email": "email not defined", |
| "type": "prerelease", | ||
| "comment": "Integrate RN 0.85.0-nightly-20260128-36f07a1b2", | ||
| "packageName": "@react-native-windows/cli", | ||
| "email": "email not defined", |
| "type": "prerelease", | ||
| "comment": "Integrate RN 0.85.0-nightly-20260128-36f07a1b2", | ||
| "packageName": "@react-native-windows/automation-channel", | ||
| "email": "email not defined", |
| "type": "prerelease", | ||
| "comment": "Integrate RN 0.85.0-nightly-20260128-36f07a1b2", | ||
| "packageName": "@office-iss/react-native-win32", | ||
| "email": "email not defined", |
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.
Description
Integrate RN Nightly Build 0.85.0-nightly-20260128-36f07a1b2 - This PR integrates React Native Windows with a newer upstream React Native nightly build (Jan 28, 2026), advancing from the previous checkpoint of Jan 14, 2026. RNW is currently several months behind the latest RN nightly, so we are catching up in +14 day increments. This is the first PR in a series of catch-up integrations to bring RNW back to parity with the latest RN nightlies.
Please note:
This is my first attempt at RN → RNW integration. I used the integration script as a starting point and leveraged AI to help resolve merge conflicts, build issues, and linker errors, while reviewing and validating the resulting changes throughout the process.
In addition to ensuring the solution builds successfully, I validated the Playground app, including most controls and scenarios. Paid particular attention to the Text page, which had significant merge conflicts, and everything appears to be functioning correctly based on my testing.
Given the scope of the changes and the amount of conflict resolution involved, I'd appreciate a thorough review - especially for packages/@office-iss/react-native-win32/src-win/Libraries/Text/Text.win32.js to help catch anything that may have been inadvertently missed. Adding multiple reviewers to provide broader coverage across the different areas impacted by this integration. Thank you for taking a look.
Integration Details:
Commit range: facebook/react-native@f15985f...36f07a1
Type of Change
Why
Staying current with upstream ensures we pick up bug fixes, API changes, and performance improvements from core React Native, and reduces the risk of large, painful integrations later.
What
Integrate RN Nightly Build 0.85.0-nightly-20260128-36f07a1b2
Screenshots
N/A
Testing
Javascript validation:
⚠️ Flow — Version mismatch (pre-existing): config requires ^0.298.0, installed version is 0.296.1
✅ yarn build (lage monorepo) — All packages pass
✅ yarn lint (ESLint) — 0 errors (21 pre-existing warnings)
✅ node --check on all resolved files — No syntax errors
✅ No conflict markers in repo — Confirmed via grep
✅ Metro bundle loads successfully — JS bundle served at localhost:8081
Native Build Validation:
✅ NuGet restore — Passed
✅ ReactCommon.vcxproj compile — Passed
Included MapBuffer C4267 suppression
Included AnimationBackend source files
✅ Microsoft.ReactNative.vcxproj compile — Passed
✅ Microsoft.ReactNative.vcxproj link — Passed
AnimationBackend symbols resolved successfully
✅ Playground-Composition.vcxproj compile — Passed
✅ Full solution build — Build succeeded
Playground App Validation:
✅ App launch (playground-composition) — Successful
✅ Metro bundler — Serving JavaScript correctly
✅ File → Open JavaScript File → RNTester samples — Loads successfully
Changelog
Should this change be included in the release notes: no
Microsoft Reviewers: Open in CodeFlow