Skip to content

Commit 1dfe28c

Browse files
j-piaseckimeta-codesync[bot]
authored andcommitted
Cover react/renderer/core with stable API guards (#58374)
Summary: Pull Request resolved: #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
1 parent 9038350 commit 1dfe28c

55 files changed

Lines changed: 201 additions & 2 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

packages/react-native/ReactAndroid/build.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,7 @@ val preparePrefab by
142142
),
143143
// react_renderer_core
144144
Pair("../ReactCommon/react/renderer/core/", "react/renderer/core/"),
145+
Pair("../ReactCommon/react/renderer/core/React/", "React/"),
145146
// react_renderer_css
146147
Pair("../ReactCommon/react/renderer/css/", "react/renderer/css/"),
147148
Pair("../ReactCommon/react/renderer/css/React/", "React/"),

packages/react-native/ReactCommon/React-Fabric.podspec

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,13 +108,19 @@ Pod::Spec.new do |s|
108108
end
109109

110110
ss.source_files = podspec_sources("react/renderer/core/**/*.{m,mm,cpp,h}", "react/renderer/core/**/*.{h}")
111-
ss.exclude_files = "react/renderer/core/tests"
111+
ss.exclude_files = ["react/renderer/core/tests", "react/renderer/core/React"]
112112
ss.header_dir = "react/renderer/core"
113113
ss.pod_target_xcconfig = {
114114
"HEADER_SEARCH_PATHS" => header_search_path.join(" ")
115115
}
116116
end
117117

118+
s.subspec "coreUmbrella" do |ss|
119+
ss.source_files = "react/renderer/core/React/*.h"
120+
ss.header_dir = ""
121+
ss.header_mappings_dir = "react/renderer/core"
122+
end
123+
118124
s.subspec "componentregistry" do |ss|
119125
ss.source_files = podspec_sources("react/renderer/componentregistry/*.{m,mm,cpp,h}", "react/renderer/componentregistry/*.{h}")
120126
ss.header_dir = "react/renderer/componentregistry"

packages/react-native/ReactCommon/react/renderer/core/CMakeLists.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,13 @@ file(GLOB react_renderer_core_SRC CONFIGURE_DEPENDS *.cpp)
1212
add_library(react_renderer_core OBJECT ${react_renderer_core_SRC})
1313

1414
target_include_directories(react_renderer_core PUBLIC ${REACT_COMMON_DIR})
15+
target_include_directories(react_renderer_core INTERFACE ${REACT_COMMON_DIR}/react/renderer/core)
1516
target_link_libraries(react_renderer_core
1617
folly_runtime
1718
glog
1819
jsi
1920
logger
21+
react_cxxstableapi
2022
react_debug
2123
react_featureflags
2224
react_renderer_debug

packages/react-native/ReactCommon/react/renderer/core/ComponentDescriptor.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77

88
#pragma once
99

10+
#include <react/cxxstableapi/UmbrellaGuard.h>
11+
1012
#include <react/renderer/core/EventDispatcher.h>
1113
#include <react/renderer/core/InstanceHandle.h>
1214
#include <react/renderer/core/Props.h>

packages/react-native/ReactCommon/react/renderer/core/ConcreteComponentDescriptor.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77

88
#pragma once
99

10+
#include <react/cxxstableapi/UmbrellaGuard.h>
11+
1012
#include <memory>
1113
#include <vector>
1214

packages/react-native/ReactCommon/react/renderer/core/ConcreteShadowNode.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77

88
#pragma once
99

10+
#include <react/cxxstableapi/UmbrellaGuard.h>
11+
1012
#include <react/debug/react_native_assert.h>
1113
#include <react/renderer/core/ConcreteState.h>
1214
#include <react/renderer/core/Props.h>

packages/react-native/ReactCommon/react/renderer/core/ConcreteState.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77

88
#pragma once
99

10+
#include <react/cxxstableapi/UmbrellaGuard.h>
11+
1012
#include <functional>
1113
#include <memory>
1214

packages/react-native/ReactCommon/react/renderer/core/DynamicEventPayload.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77

88
#pragma once
99

10+
#include <react/cxxstableapi/UmbrellaGuard.h>
11+
1012
#include <folly/dynamic.h>
1113
#include <react/renderer/core/EventPayload.h>
1214

packages/react-native/ReactCommon/react/renderer/core/DynamicPointerEvent.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77

88
#pragma once
99

10+
#include <react/cxxstableapi/UmbrellaGuard.h>
11+
1012
#include <folly/dynamic.h>
1113
#include <react/renderer/core/DynamicEventPayload.h>
1214
#include <react/renderer/core/EventPayload.h>

packages/react-native/ReactCommon/react/renderer/core/DynamicPropsUtilities.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77

88
#pragma once
99

10+
#include <react/cxxstableapi/UmbrellaGuard.h>
11+
1012
#include <folly/dynamic.h>
1113
#include <react/renderer/core/RawProps.h>
1214

0 commit comments

Comments
 (0)