Skip to content

feat: support every stable New Architecture React Native release (2.0.1) - #8

Merged
marcocrupi merged 1 commit into
mainfrom
feat/new-architecture-support-window
Oct 16, 2026
Merged

marcocrupi merged 1 commit into
mainfrom
feat/new-architecture-support-window

Conversation

@marcocrupi

Copy link
Copy Markdown
Owner

Why

React Native 0.88.0 became npm latest on 2026-10-15. The 2.0.0 peer range react-native >=0.73.0 <0.88.0 rejects it, so a fresh RN app gets ERESOLVE on install, and every new RN minor release would do the same.

What

  • Peers uncapped: react-native >=0.73.0, react >=18.2.0. Supported: every stable RN release with the New Architecture from 0.76. 0.73–0.75 and Old Architecture stay best effort.
  • Android: six-argument ReactModuleInfo constructor, which is not deprecated and exists from RN 0.73. TurboReactPackage is kept on purpose: BaseReactPackage only exists from 0.74. Checked against the 0.89 nightly of 2026-10-16: still present, deprecation at warning level only.
  • Native CI: each lane in matrix.json names its SDK/NDK and macOS runner/Xcode.
    • stable (every PR): 0.88.0, 0.87.1
    • window (weekly support schedule / manual): 0.82.1, 0.78.3, 0.76.9. iOS 0.76/0.78 use macos-15 / Xcode 16.4 because their bundled fmt fails with a consteval error on newer Xcode. This is upstream and also affects apps that don't use this package.
  • Release monitor: a scheduled job that fails when npm latest is newer than the newest lane. It is not part of the required check.
  • Contract tests reject capped peers and require lanes from the 0.76 floor to the newest release.
  • Version 2.0.1, CHANGELOG, README, MIGRATION and native compatibility/release docs updated.

Local evidence (before commit)

RN Android iOS (Xcode 27.0)
0.88.0 PASS (AGP 9.2.1, 44/44 host tests, Debug/Release) PASS
0.87.1 PASS (AGP 9.2.1) not rerun locally
0.82.1 PASS (AGP 8.12.0) PASS
0.78.3 PASS (AGP 8.8.0) upstream fmt failure; package compiles/links with fmt patched (diagnostic only)
0.76.9 PASS (AGP 8.6.0) upstream fmt failure; package compiles/links with fmt patched (diagnostic only)

Before merge / release

  • stable run green on this PR
  • manual support run green (first macos-15 / Xcode 16.4 lanes)
  • release checklist in docs/release-readiness.md (npm publish not done)

🤖 Generated with Claude Code

RN 0.88.0 became npm latest on 2026-10-15 and was rejected by the
`<0.88.0` peer cap. Remove the RN and React peer upper bounds and declare
support for every stable RN release with the New Architecture from 0.76.

- Android: use the non-deprecated six-argument ReactModuleInfo constructor
  (available from RN 0.73); keep TurboReactPackage until the floor reaches
  0.74, where BaseReactPackage exists.
- Native CI: per-release toolchains in matrix.json (SDK/NDK, macOS runner,
  Xcode). PR lanes RN 0.88.0/0.87.1; weekly/manual window lanes RN
  0.82.1/0.78.3/0.76.9, with 0.76/0.78 iOS on Xcode 16.4 because their
  bundled fmt does not compile with newer Xcode.
- Add a scheduled release monitor that fails when npm latest is newer
  than the newest lane; it never gates pull requests.
- Contract tests reject capped peers and require lanes from the 0.76
  floor to the newest release.
- Bump to 2.0.1 and document the support policy and local lane evidence.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@marcocrupi
marcocrupi merged commit 1e794bb into main Oct 16, 2026
22 checks passed
@marcocrupi
marcocrupi deleted the feat/new-architecture-support-window branch October 16, 2026 07:55
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.

1 participant