Skip to content

Cover react/renderer/core with stable API guards (#58374) - #58374

Closed
j-piasecki wants to merge 1 commit into
react:mainfrom
j-piasecki:export-D119065020
Closed

j-piasecki wants to merge 1 commit into
react:mainfrom
j-piasecki:export-D119065020

Conversation

@j-piasecki

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

Copy link
Copy Markdown
Contributor

Summary:

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

The Apple-only rawValue target also exports RawValue.h and RawPropsPrimitives.h, so it picks up the guard dependency as well, but it gets no umbrella of its own. Its only consumers are core and react/renderer/graphics — both React Native's own targets, which define RN_BUILDING and so see the guards as inert. Outside Buck there is no rawValue module at all: CocoaPods, CMake and the Android prefab ship a single core, and React/RendererCore.h already re-exports both headers. A second umbrella would have published a Buck-internal cycle-breaker as a public entry point with no callers.

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

Changelog: [General][Added] - Added an umbrella header for the react/renderer/core module

Differential Revision: D119065020

@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 7, 2026
@facebook-github-tools facebook-github-tools Bot added p: Software Mansion Partner: Software Mansion Partner p: Facebook Partner: Facebook labels Sep 7, 2026
@meta-codesync

meta-codesync Bot commented Sep 7, 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 D119065020.

@meta-codesync meta-codesync Bot changed the title Cover react/renderer/core with stable API guards Cover react/renderer/core with stable API guards (#58374) Sep 9, 2026
j-piasecki added a commit to j-piasecki/react-native that referenced this pull request Sep 9, 2026
Summary:
Pull Request resolved: react#58374

Classifies `react/renderer/core:core` and `react/renderer/core:rawValue` as public targets under the C++ stable API three-tier visibility model. Adds `#include <react/cxxstableapi/UmbrellaGuard.h>` to the modules' 50 exported headers and introduces the module umbrellas `React/RendererCore.h` and `React/RawValue.h`, wiring the guard dependency into BUCK and CMake and the umbrellas 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 modules' headers directly, and should include `<React/RendererCore.h>` or `<React/RawValue.h>` instead; without that flag the guards are inert, so no existing build changes behaviour.

Changelog: [General][Added] - Added umbrella headers for `react/renderer/core:core` and `react/renderer/core:rawValue` modules

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

Classifies `react/renderer/core:core` and `react/renderer/core:rawValue` as public targets under the C++ stable API three-tier visibility model. Adds `#include <react/cxxstableapi/UmbrellaGuard.h>` to the modules' 50 exported headers and introduces the module umbrellas `React/RendererCore.h` and `React/RawValue.h`, wiring the guard dependency into BUCK and CMake and the umbrellas 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 modules' headers directly, and should include `<React/RendererCore.h>` or `<React/RawValue.h>` instead; without that flag the guards are inert, so no existing build changes behaviour.

Changelog: [General][Added] - Added umbrella headers for `react/renderer/core:core` and `react/renderer/core:rawValue` modules

Differential Revision: D119065020
@j-piasecki
j-piasecki force-pushed the export-D119065020 branch 2 times, most recently from 91fe81f to 098eda3 Compare September 11, 2026 09:31
j-piasecki added a commit to j-piasecki/react-native that referenced this pull request Sep 11, 2026
Summary:
Pull Request resolved: react#58374

Classifies `react/renderer/core:core` and `react/renderer/core:rawValue` as public targets under the C++ stable API three-tier visibility model. Adds `#include <react/cxxstableapi/UmbrellaGuard.h>` to the modules' 50 exported headers and introduces the module umbrellas `React/RendererCore.h` and `React/RawValue.h`, wiring the guard dependency into BUCK and CMake and the umbrellas 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 modules' headers directly, and should include `<React/RendererCore.h>` or `<React/RawValue.h>` instead; without that flag the guards are inert, so no existing build changes behaviour.

Changelog: [General][Added] - Added umbrella headers for `react/renderer/core:core` and `react/renderer/core:rawValue` modules

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

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

The Apple-only `rawValue` target also exports `RawValue.h` and `RawPropsPrimitives.h`, so it picks up the guard dependency as well, but it gets no umbrella of its own. Its only consumers are `core` and `react/renderer/graphics` — both React Native's own targets, which define `RN_BUILDING` and so see the guards as inert. Outside Buck there is no `rawValue` module at all: CocoaPods, CMake and the Android prefab ship a single `core`, and `React/RendererCore.h` already re-exports both headers. A second umbrella would have published a Buck-internal cycle-breaker as a public entry point with no callers.

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

Changelog: [General][Added] - Added an umbrella header for the `react/renderer/core` module

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

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

The Apple-only `rawValue` target also exports `RawValue.h` and `RawPropsPrimitives.h`, so it picks up the guard dependency as well, but it gets no umbrella of its own. Its only consumers are `core` and `react/renderer/graphics` — both React Native's own targets, which define `RN_BUILDING` and so see the guards as inert. Outside Buck there is no `rawValue` module at all: CocoaPods, CMake and the Android prefab ship a single `core`, and `React/RendererCore.h` already re-exports both headers. A second umbrella would have published a Buck-internal cycle-breaker as a public entry point with no callers.

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

Changelog: [General][Added] - Added an umbrella header for the `react/renderer/core` module

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

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

The Apple-only `rawValue` target also exports `RawValue.h` and `RawPropsPrimitives.h`, so it picks up the guard dependency as well, but it gets no umbrella of its own. Its only consumers are `core` and `react/renderer/graphics` — both React Native's own targets, which define `RN_BUILDING` and so see the guards as inert. Outside Buck there is no `rawValue` module at all: CocoaPods, CMake and the Android prefab ship a single `core`, and `React/RendererCore.h` already re-exports both headers. A second umbrella would have published a Buck-internal cycle-breaker as a public entry point with no callers.

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

Changelog: [General][Added] - Added an umbrella header for the `react/renderer/core` module

Differential Revision: D119065020
@j-piasecki
j-piasecki force-pushed the export-D119065020 branch 2 times, most recently from 1dfe28c to e34d429 Compare September 15, 2026 08:23
j-piasecki added a commit to j-piasecki/react-native that referenced this pull request Sep 15, 2026
Summary:
Pull Request resolved: react#58374

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

The Apple-only `rawValue` target also exports `RawValue.h` and `RawPropsPrimitives.h`, so it picks up the guard dependency as well, but it gets no umbrella of its own. Its only consumers are `core` and `react/renderer/graphics` — both React Native's own targets, which define `RN_BUILDING` and so see the guards as inert. Outside Buck there is no `rawValue` module at all: CocoaPods, CMake and the Android prefab ship a single `core`, and `React/RendererCore.h` already re-exports both headers. A second umbrella would have published a Buck-internal cycle-breaker as a public entry point with no callers.

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

Changelog: [General][Added] - Added an umbrella header for the `react/renderer/core` module

Differential Revision: D119065020
Summary:
Pull Request resolved: react#58374

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

The Apple-only `rawValue` target also exports `RawValue.h` and `RawPropsPrimitives.h`, so it picks up the guard dependency as well, but it gets no umbrella of its own. Its only consumers are `core` and `react/renderer/graphics` — both React Native's own targets, which define `RN_BUILDING` and so see the guards as inert. Outside Buck there is no `rawValue` module at all: CocoaPods, CMake and the Android prefab ship a single `core`, and `React/RendererCore.h` already re-exports both headers. A second umbrella would have published a Buck-internal cycle-breaker as a public entry point with no callers.

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

Changelog: [General][Added] - Added an umbrella header for the `react/renderer/core` module

Differential Revision: D119065020
@meta-codesync meta-codesync Bot closed this in dcc872a Sep 15, 2026
@meta-codesync meta-codesync Bot added the Merged This PR has been merged. label Sep 15, 2026
@meta-codesync

meta-codesync Bot commented Sep 15, 2026

Copy link
Copy Markdown

This pull request has been merged in dcc872a.

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. Merged This PR has been merged. 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