Skip to content

Cover cxxreact:jsbigstring with Stable API guards (#58393) - #58393

Open
j-piasecki wants to merge 2 commits into
react:mainfrom
j-piasecki:export-D119144023
Open

Cover cxxreact:jsbigstring with Stable API guards (#58393)#58393
j-piasecki wants to merge 2 commits into
react:mainfrom
j-piasecki:export-D119144023

Conversation

@j-piasecki

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

Copy link
Copy Markdown
Contributor

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

@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 D119144023.

@meta-codesync meta-codesync Bot changed the title Cover cxxreact:jsbigstring with Stable API guards Cover cxxreact:jsbigstring with Stable API guards (#58393) Sep 8, 2026
j-piasecki added a commit to j-piasecki/react-native that referenced this pull request Sep 8, 2026
Summary:
Pull Request resolved: react#58393

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.

Changelog: [Internal]

Differential Revision: D119144023
@meta-codesync meta-codesync Bot changed the title Cover cxxreact:jsbigstring with Stable API guards (#58393) Cover cxxreact:jsbigstring with Stable API guards Sep 9, 2026
Jakub Piasecki and others added 2 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:
Pull Request resolved: react#58393

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
@meta-codesync meta-codesync Bot changed the title Cover cxxreact:jsbigstring with Stable API guards Cover cxxreact:jsbigstring with Stable API guards (#58393) Sep 9, 2026
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