Skip to content

Add stable public Debug C++ entry point (#58160) - #58160

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

Add stable public Debug C++ entry point (#58160)#58160
j-piasecki wants to merge 2 commits into
react:mainfrom
j-piasecki:export-D116930195

Conversation

@j-piasecki

@j-piasecki j-piasecki commented Aug 27, 2026

Copy link
Copy Markdown
Contributor

Summary:

Add <React/Debug.h> as the canonical public C++ entry point for React Native's debug assertion macros: react_native_assert, react_native_expect, and the REACT_NATIVE_DEBUG / REACT_NATIVE_PRODUCTION flags. Guard direct leaf-header inclusion for strict API consumers while preserving existing React Native builds and legacy include paths.

Classify the redbox/ headers as private instead. They live in namespace unstable_redbox, have no consumers outside React Native, and are reachable only from three dev-menu .mm files, so they are fenced off with the private guard and deliberately left out of the umbrella.

Changelog:
[Internal]

Reviewed By: cipolleschi

Differential Revision: D116930195

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

meta-codesync Bot commented Aug 27, 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 D116930195.

@facebook-github-tools facebook-github-tools Bot added the p: Facebook Partner: Facebook label Aug 27, 2026
j-piasecki added a commit to j-piasecki/react-native that referenced this pull request Aug 27, 2026
Summary:
Pull Request resolved: react#58160

Pull Request resolved: react#58053

Add `<React/Debug.h>` as the canonical public C++ entry point for React Native's debug assertion macros: `react_native_assert`, `react_native_expect`, and the `REACT_NATIVE_DEBUG` / `REACT_NATIVE_PRODUCTION` flags. Guard direct leaf-header inclusion for strict API consumers while preserving existing React Native builds and legacy include paths.

Classify the `redbox/` headers as private instead. They live in namespace `unstable_redbox`, have no consumers outside React Native, and are reachable only from three dev-menu `.mm` files, so they are fenced off with the private guard and deliberately left out of the umbrella.

Changelog:
[Internal]

Reviewed By: cipolleschi

Differential Revision: D116930195
@meta-codesync meta-codesync Bot changed the title Add stable public Debug C++ entry point (#58053) Add stable public Debug C++ entry point (#58160) Aug 27, 2026
Summary:


Add `<React/CallInvoker.h>` as the canonical public C++ entry point for `CallInvoker`, `NativeMethodCallInvoker`, and `SchedulerPriority`. Guard direct leaf-header inclusion for strict API consumers while preserving existing React Native builds and legacy include paths.

Export and stage the umbrella consistently through Buck, CMake, Android Prefab, CocoaPods, and the Apple prebuilt-header inventory. SwiftPM needs no change, since its header mapping for this module already preserves the directory structure.

The `ios-prebuild` header configuration needs an explicit entry here: the generic podspec parser only reads the first `header_dir`, so it would have flattened the umbrella into `ReactCommon/` and collided with the existing leaf header of the same basename.

Changelog:
[Internal]

Reviewed By: cipolleschi

Differential Revision: D116921026
Summary:


Add `<React/Debug.h>` as the canonical public C++ entry point for React Native's debug assertion macros: `react_native_assert`, `react_native_expect`, and the `REACT_NATIVE_DEBUG` / `REACT_NATIVE_PRODUCTION` flags. Guard direct leaf-header inclusion for strict API consumers while preserving existing React Native builds and legacy include paths.

Classify the `redbox/` headers as private instead. They live in namespace `unstable_redbox`, have no consumers outside React Native, and are reachable only from three dev-menu `.mm` files, so they are fenced off with the private guard and deliberately left out of the umbrella.

Changelog:
[Internal]

Reviewed By: cipolleschi

Differential Revision: D116930195
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