Skip to content

Road to 0.83 #2901

Open
Open

Description

@Saadnajmi

Tracking issue for the merge-up from upstream 0.83-stable (facebook/react-native).
Work is happening on the 0.83-merge branch.

  • Merge chore: merge up to 0.83-stable branch #2824 — Initial 0.83-stable merge into 0.83-merge branch
  • CI for merge branches — Add *-merge to workflow triggers (microsoft-pr.yml, test-all.yml, publish-bumped-packages.yml, codeql-analysis.yml) so CI runs on 0.83-merge
  • ** Verify focus changes ** - Added upstream in core, but we need to make sure macOS didn't regress
  • Hermes V1 support — From 0.83+, Hermes is published separately (com/facebook/hermes/hermes-ios) with its own versioning. Add version.properties, update hermes-engine.podspec and hermes-utils.rb to support RCT_HERMES_V1_ENABLED env var and new Maven coordinates, with findMatchingHermesVersion() fallback
  • RCTUIKit Swift module — RCTUIKit.h can't be imported from Swift (needed by RCTSwiftUIContainerView.swift). Already broken out into its own module on main, needs rebase into 0.83-merge
  • Codegen package name constant — react-native.config.js:192 hardcodes 'react-native-macos' instead of using the REACT_NATIVE constant from constants.js. Follow up on core
  • Audit upstream breaking changes — Review 0.83 release notes for breaking changes and update macOS-specific APIs as needed
  • RNTester validation — Verify RNTester builds and runs on macOS, pod install works (both legacy and V1 Hermes)
  • react-native-test-app integration — Test RNTA compatibility with 0.83 changes
  • Merge 0.83-merge → main — Final review, all CI green, merge

Activity

  1. tvinhas commented on May 13, 2026

    @tvinhas

    I spent time validating 0.83-merge end-to-end (RNTester pod install cycle on macOS) and opened a batch of PRs against the unchecked items in this issue. Filing them together so the scope is visible at a glance.

    PRs

    "Audit upstream breaking changes" — a diff sweep of v0.82.0...v0.83.0 upstream cross-referenced with the current 0.83-merge tree suggests this is already absorbed:

    • GenerateModuleCpp.js removal + tests + snapshots: no callsites remain in the fork.
    • ReactFabricHostComponent.js consolidated into ReactFabricPublicInstance.js: standalone file already gone.
    • AppDelegate header reorg + devMenuConfiguration parameter threading: RCTReactNativeFactory.h:120 has the property; RCTRootViewFactory.{h,mm} carries the new viewWithModuleName:...:devMenuConfiguration: signature;
      RCT_REMOVE_LEGACY_ARCH guards are in place across RCTAppSetupUtils.mm and RCTReactNativeFactory.mm.
    • React 19.1 → 19.2 peer: packages/react-native/package.json already at "react": "^19.2.0".

    The 8 JS files that carry [macOS] markers AND were also modified upstream (ViewNativeComponent.js, ScrollView.js, TextInput.js, AccessibilityInfo.js, ImageInjection.js, others) still warrant per-file three-way-merge spot
    checks — happy to take that as a follow-up if useful.

    Validation methodology

    For each fix:

    xcodebuild of the RNTester-macOS scheme is the natural next validation step once #2960 (or an equivalent) lands.

    Let me know if any of these want restructuring (split / narrowed scope / different framing) — happy to adapt.

  2. tvinhas commented on May 13, 2026

    @tvinhas

    Quick follow-up on Hermes V1 support — completed end-to-end validation locally.

    Result: RCT_HERMES_V1_ENABLED=1 works on 0.83-merge for macOS through the full build pipeline.

    • pod install resolves: Installing hermes-engine 250829098.0.2 (was 0.14.0) — V1 Maven artifact downloads cleanly
    • Podfile.lock records hermes-engine (250829098.0.2) + hermes-engine/Pre-built (250829098.0.2)
    • xcodebuild -scheme RNTester-macOS -configuration Debug completes with ** BUILD SUCCEEDED **
    • The produced RNTester-macOS.app/Contents/Frameworks/hermesvm.framework is the V1-named binary (not legacy hermes.framework)

    Validated with #2957 (Ruby static_h branch fix) + #2952 (your JS-side companion, still draft) + #2961 (fmt FMT_USE_CONSTEVAL=0 — required to get past the fmt compile on Xcode 26.x) + #2962 (RCTViewComponentView macOS guards — required
    to get past the React-RCTFabric compile).

    The remaining "from-source fallback" path (RCT_BUILD_HERMES_FROM_SOURCE=true with no Maven artifact) wasn't exercised since the Maven release was available. With #2952 + #2957 the branch logic is correct; the from-source build should
    follow.

    Suggest ticking "Hermes V1 support" on this issue once #2952 and #2957 land. The V1 plumbing in 0.83-merge is otherwise complete.

  3. tyrauber commented on Sep 10, 2026

    @tyrauber

    Status check on this list — most of it has already landed, just never got checked off here. Cross-referencing against the merged PRs:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions