Repository navigation
Let the C++ API snapshot config select its visibility (#58838) - #58838
Open
j-piasecki wants to merge 4 commits into
Open
j-piasecki wants to merge 4 commits into
j-piasecki wants to merge 4 commits into
Conversation
|
@j-piasecki has exported this pull request. If you are a Meta employee, you can view the originating Diff in D123001791. |
j-piasecki
force-pushed
the
export-D123001791
branch
from
October 7, 2026 08:33
a64a497 to
bedefd5
Compare
j-piasecki
added a commit
to j-piasecki/react-native
that referenced
this pull request
Oct 7, 2026
Summary: Adds a `visibility` option to the C++ API snapshot `config.yml`, listing which C++ stable API tiers (`public`, `frameworks`, `private`) a view includes. It can be set per view or at the top level, where it applies to views that do not set their own. When omitted it defaults to `public`, so existing snapshots are unchanged. Headers in tiers outside the selection are skipped unless a header in an included tier reaches them. Unclassified headers are still kept. Changelog: [Internal] Differential Revision: D123001791
j-piasecki
added a commit
to j-piasecki/react-native
that referenced
this pull request
Oct 7, 2026
Summary: Pull Request resolved: react#58838 Adds a `visibility` option to the C++ API snapshot `config.yml`, listing which C++ stable API tiers (`public`, `frameworks`, `private`) a view includes. It can be set per view or at the top level, where it applies to views that do not set their own. When omitted it defaults to `public`, so existing snapshots are unchanged. Headers in tiers outside the selection are skipped unless a header in an included tier reaches them. Unclassified headers are still kept. Changelog: [Internal] Differential Revision: D123001791
j-piasecki
force-pushed
the
export-D123001791
branch
from
October 7, 2026 08:33
bedefd5 to
0476406
Compare
j-piasecki
added a commit
to j-piasecki/react-native
that referenced
this pull request
Oct 7, 2026
Summary: Pull Request resolved: react#58838 Adds a `visibility` option to the C++ API snapshot `config.yml`, listing which C++ stable API tiers (`public`, `frameworks`, `private`) a view includes. It can be set per view or at the top level, where it applies to views that do not set their own. When omitted it defaults to `public`, so existing snapshots are unchanged. Headers in tiers outside the selection are skipped unless a header in an included tier reaches them. Unclassified headers are still kept. Changelog: [Internal] Differential Revision: D123001791
j-piasecki
force-pushed
the
export-D123001791
branch
from
October 7, 2026 08:38
0476406 to
904ace5
Compare
Summary: Classifies `JavaModuleWrapper.h`, `JavaScriptExecutorHolder.h`, `JniJSModulesUnbundle.h`, `MethodInvoker.h` and `ModuleRegistryBuilder.h` from the `reactnativejni` target as "private" under the three-tier C++ stable API visibility model. They exist only to wire the legacy bridge and expose private `cxxreact` types. Consumers that opt into `RN_STRICT_API` now get an error if they include them directly; without that flag the guards are inert, so no existing build changes behaviour. The remaining headers of `reactnativejni` are not classified yet. Changelog: [Internal] Differential Revision: D122764164
Summary: Adds a header tier classifier to the C++ API snapshot generator. A header's tier comes from the stable API guard it includes; headers without one are unclassified. With the new `--log-boundary-breaks` flag, the generator logs every public header that reaches a frameworks or private header, and every frameworks header that reaches a private one, with the include chain. Snapshot output is unchanged. Changelog: [Internal] Differential Revision: D123001749
…act#58837) Summary: The C++ API snapshots now cover only the public tier of the C++ stable API. Symbols declared in headers that include `PrivateGuard.h` or `FrameworksGuard.h` are left out, unless a public header reaches them directly or transitively, in which case they are public in practice. Unclassified headers are kept. In verbose mode the generator reports how many private or frameworks headers are kept that way. The snapshots are regenerated, and the README and snapshot docs describe the filtering. Changelog: [Internal] Reviewed By: coado Differential Revision: D123001770
Summary: Adds a `visibility` option to the C++ API snapshot `config.yml`, listing which C++ stable API tiers (`public`, `frameworks`, `private`) a view includes. It can be set per view or at the top level, where it applies to views that do not set their own. When omitted it defaults to `public`, so existing snapshots are unchanged. Headers in tiers outside the selection are skipped unless a header in an included tier reaches them. Unclassified headers are still kept. Changelog: [Internal] Differential Revision: D123001791
j-piasecki
force-pushed
the
export-D123001791
branch
from
October 7, 2026 09:28
904ace5 to
2ff3e14
Compare
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary:
Adds a
visibilityoption to the C++ API snapshotconfig.yml, listing which C++ stable API tiers (public,frameworks,private) a view includes. It can be set per view or at the top level, where it applies to views that do not set their own. When omitted it defaults topublic, so existing snapshots are unchanged.Headers in tiers outside the selection are skipped unless a header in an included tier reaches them. Unclassified headers are still kept.
Changelog: [Internal]
Differential Revision: D123001791