Skip to content

Cover react/renderer/uimanager/consistency:consistency with Stable API guards - #58047

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

Cover react/renderer/uimanager/consistency:consistency with Stable API guards#58047
j-piasecki wants to merge 2 commits into
react:mainfrom
j-piasecki:export-D116920012

Conversation

@j-piasecki

Copy link
Copy Markdown
Contributor

Summary:
Classifies react/renderer/uimanager/consistency:consistency as a private target under the C++ stable API three-tier visibility model. Adds #include <react/cxxstableapi/PrivateGuard.h> to both headers in the module and declares the guard dependency in BUCK and CMake. The module is a React-Fabric subspec, so the CocoaPods dependency is already on the parent spec.

The private headers were reachable from a higher tier: ShadowTreeRevisionProvider.h was included by UIManager.h, which is public, and that would make the guard a hard error for consumers under RN_STRICT_API. Every use is a pointer, so UIManager.h now forward declares the type and the include moves to the four source files that dereference it: UIManager.cpp, UIManagerBinding.cpp, ViewTransitionModule.cpp and NativeDOM.cpp.

Changelog: [Internal]

Differential Revision: D116920012

Summary:
Classifies `react/renderer/consistency:consistency` as a private target under the C++ stable API three-tier visibility model. Adds `#include <react/cxxstableapi/PrivateGuard.h>` to both headers in the module and declares the guard dependency in BUCK, CMake and the podspec.

The private headers were reachable from higher tiers: `ShadowTreeRevisionConsistencyManager.h` was included by the for-frameworks `RuntimeScheduler.h` (and its two forks) and by the public `UIManager.h`, which would make the guard a hard error for consumers under `RN_STRICT_API`. Every use is a pointer, so those headers now forward declare the type and the include moves to `UIManager.cpp`. `UIManager.h` also drops `LazyShadowTreeRevisionConsistencyManager.h`, which re-exposed the same header through inheritance.

Changelog: [Internal]

Differential Revision: D116601683
…API guards

Summary:
Classifies `react/renderer/uimanager/consistency:consistency` as a private target under the C++ stable API three-tier visibility model. Adds `#include <react/cxxstableapi/PrivateGuard.h>` to both headers in the module and declares the guard dependency in BUCK and CMake. The module is a `React-Fabric` subspec, so the CocoaPods dependency is already on the parent spec.

The private headers were reachable from a higher tier: `ShadowTreeRevisionProvider.h` was included by `UIManager.h`, which is public, and that would make the guard a hard error for consumers under `RN_STRICT_API`. Every use is a pointer, so `UIManager.h` now forward declares the type and the include moves to the four source files that dereference it: `UIManager.cpp`, `UIManagerBinding.cpp`, `ViewTransitionModule.cpp` and `NativeDOM.cpp`.

Changelog: [Internal]

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

meta-codesync Bot commented Aug 21, 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 D116920012.

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