Skip to content

Add ReactNativeVersion.h to react/utils (#58403) - #58403

Open
j-piasecki wants to merge 7 commits into
react:mainfrom
j-piasecki:export-D119163947
Open

Add ReactNativeVersion.h to react/utils (#58403)#58403
j-piasecki wants to merge 7 commits into
react:mainfrom
j-piasecki:export-D119163947

Conversation

@j-piasecki

@j-piasecki j-piasecki commented Sep 8, 2026

Copy link
Copy Markdown
Contributor

Summary:

Changelog: [General][Added] - Added ReactNativeVersion.h to public react/utils module.

Existing one inside private cxxreact/bridge module is now deprecated and still accessible when not opted in to RN_STRICT_API.

Reviewed By: javache

Differential Revision: D119163947

@meta-cla meta-cla Bot added the CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. label Sep 8, 2026
@facebook-github-tools facebook-github-tools Bot added p: Software Mansion Partner: Software Mansion Partner p: Facebook Partner: Facebook labels Sep 8, 2026
@meta-codesync

meta-codesync Bot commented Sep 8, 2026

Copy link
Copy Markdown

@j-piasecki has exported this pull request. If you are a Meta employee, you can view the originating Diff in D119163947.

j-piasecki added a commit to j-piasecki/react-native that referenced this pull request Sep 9, 2026
Summary:
Pull Request resolved: react#58403

Changelog: [General][Added] - Added `ReactNativeVersion.h` to public `react/utils` module.

Existing one inside private `cxxreact/bridge` module is now deprecated and still accessible when not opted in to `RN_STRICT_API`.

Differential Revision: D119163947
@meta-codesync meta-codesync Bot changed the title Add ReactNativeVersion.h to react/utils Add ReactNativeVersion.h to react/utils (#58403) Sep 9, 2026
Jakub Piasecki and others added 6 commits September 9, 2026 03:04
Summary:
Classifies `react/utils:utils` as a public target under the C++ stable API three-tier visibility model. Adds `#include <react/cxxstableapi/UmbrellaGuard.h>` to the module's 22 exported headers and introduces the module umbrella `React/Utils.h`, wiring the guard dependency into BUCK, CMake and CocoaPods and the umbrella into BUCK, CocoaPods, the iOS prebuild header config and the Android prefab export.

Consumers that opt into `RN_STRICT_API` now get an error if they include the module's headers directly, and should include `<React/Utils.h>` instead; without that flag the guards are inert, so no existing build changes behaviour.

Changelog: [Internal]

Differential Revision: D117858212
Summary:
Classifies `cxxreact:jsbigstring` as a public target under the C++ stable API three-tier visibility model. Adds `#include <react/cxxstableapi/UmbrellaGuard.h>` to the target's 2 exported C++ headers and introduces the module umbrella `React/JSBigString.h`, wiring the guard dependency into BUCK, CMake and CocoaPods and the umbrella into BUCK, CMake, CocoaPods, the iOS prebuild header config and the Android prefab export.

Consumers that opt into `RN_STRICT_API` now get an error if they include the target's headers directly, and should include `<React/JSBigString.h>` instead; without that flag the guards are inert, so no existing build changes behaviour.

Under `USE_FRAMEWORKS` the pod now maps its headers relative to `ReactCommon`, so they install under `cxxreact/` inside the built framework rather than at its root. Pods that pick up the framework's `Headers` directory through `install_modules_dependencies` are unaffected. `React-RCTFabric`, `ReactCommon` and `React-NativeModulesApple` pin their own search paths instead and are updated here; pods outside the repository that do the same have to make the equivalent change.

Changelog:
[iOS][Breaking] - Install `React-cxxreact` headers under `cxxreact/` inside its framework when `USE_FRAMEWORKS` is enabled. Pods that include `<cxxreact/...>` without calling `install_modules_dependencies` must add `React_cxxreact.framework/Headers` to `HEADER_SEARCH_PATHS`.

Differential Revision: D119144023
Summary:
Classifies `cxxreact:messagequeuethread` as a "for frameworks" target under the three-tier C++ stable API visibility model. Consumers that opt into `RN_STRICT_API` now get a warning if they include its headers directly, which they can acknowledge with `RN_ALLOW_FRAMEWORKS`; without that flag the guards are inert, so no existing build changes behaviour.

Changelog: [Internal]

Differential Revision: D119163883
Summary:
Classifies `cxxreact:tracesection` as a "for frameworks" target under the three-tier C++ stable API visibility model. Consumers that opt into `RN_STRICT_API` now get a warning if they include its headers directly, which they can acknowledge with `RN_ALLOW_FRAMEWORKS`; without that flag the guards are inert, so no existing build changes behaviour.

Changelog: [Internal]

Differential Revision: D119163904
Summary:
Classifies `cxxreact:module` as a private target under the three-tier C++ stable API visibility model. Consumers that opt into `RN_STRICT_API` now get an error if they include its headers directly; without that flag the guards are inert, so no existing build changes behaviour.

Changelog: [Internal]

Differential Revision: D119163922
Summary:
Classifies `cxxreact:bridge` as a private target under the three-tier C++ stable API visibility model. Consumers that opt into `RN_STRICT_API` now get an error if they include its headers directly; without that flag the guards are inert, so no existing build changes behaviour. `ReactNativeVersion.h` is a generated file, so its guard also goes into `scripts/releases/templates/ReactNativeVersion.h-template.js`; without that the next version stamp would rewrite the header and silently drop the guard from every release and nightly artifact.

Changelog: [Internal]

Differential Revision: D119163927
j-piasecki added a commit to j-piasecki/react-native that referenced this pull request Sep 9, 2026
Summary:
Pull Request resolved: react#58403

Changelog: [General][Added] - Added `ReactNativeVersion.h` to public `react/utils` module.

Existing one inside private `cxxreact/bridge` module is now deprecated and still accessible when not opted in to `RN_STRICT_API`.

Differential Revision: D119163947
j-piasecki added a commit to j-piasecki/react-native that referenced this pull request Sep 9, 2026
Summary:
Pull Request resolved: react#58403

Changelog: [General][Added] - Added `ReactNativeVersion.h` to public `react/utils` module.

Existing one inside private `cxxreact/bridge` module is now deprecated and still accessible when not opted in to `RN_STRICT_API`.

Differential Revision: D119163947
Summary:
Pull Request resolved: react#58403

Changelog: [General][Added] - Added `ReactNativeVersion.h` to public `react/utils` module.

Existing one inside private `cxxreact/bridge` module is now deprecated and still accessible when not opted in to `RN_STRICT_API`.

Reviewed By: javache

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

Labels

CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. meta-exported p: Facebook Partner: Facebook p: Software Mansion Partner: Software Mansion Partner

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant