Skip to content

Use public umbrellas in root headers (#58575) - #58575

Open
coado wants to merge 2 commits into
react:mainfrom
coado:export-D120532145
Open

coado wants to merge 2 commits into
react:mainfrom
coado:export-D120532145

Conversation

@coado

@coado coado commented Sep 17, 2026 •

Copy link
Copy Markdown
Contributor

Summary:

Route public C++ dependencies through their supported umbrella entry points so framework consumers can use the root module with strict API enforcement enabled.

Stage the iOS ImageRequestParams header under its canonical imagemanager include path in the prebuilt header inventory. The public ImageManager umbrella exposes this platform-specific type transitively, so framework builds need it alongside the root imagemanager headers.

Changelog:
[Internal]

Reviewed By: cortinico

Differential Revision: D120532145

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

meta-codesync Bot commented Sep 17, 2026

Copy link
Copy Markdown

@coado has exported this pull request. If you are a Meta employee, you can view the originating Diff in D120532145.

@meta-codesync meta-codesync Bot changed the title Use public umbrellas in root headers Use public umbrellas in root headers (#58575) Sep 18, 2026
coado added a commit to coado/react-native that referenced this pull request Sep 18, 2026
Summary:

Route public C++ dependencies through their supported umbrella entry points so framework consumers can use the root module with strict API enforcement enabled.

Changelog: [Internal]

Differential Revision: D120532145

@cortinico cortinico left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review automatically exported from Phabricator review in Meta.

coado added a commit to coado/react-native that referenced this pull request Sep 21, 2026
Summary:

Route public C++ dependencies through their supported umbrella entry points so framework consumers can use the root module with strict API enforcement enabled.

Changelog: [Internal]

Reviewed By: cortinico

Differential Revision: D120532145
coado added a commit to coado/react-native that referenced this pull request Sep 21, 2026
Summary:
Pull Request resolved: react#58575

Route public C++ dependencies through their supported umbrella entry points so framework consumers can use the root module with strict API enforcement enabled.

Changelog: [Internal]

Reviewed By: cortinico

Differential Revision: D120532145
coado added a commit to coado/react-native that referenced this pull request Sep 21, 2026
Summary:

Route public C++ dependencies through their supported umbrella entry points so framework consumers can use the root module with strict API enforcement enabled.

Changelog: [Internal]

Reviewed By: cortinico

Differential Revision: D120532145
coado added a commit to coado/react-native that referenced this pull request Sep 21, 2026
Summary:
Pull Request resolved: react#58575

Route public C++ dependencies through their supported umbrella entry points so framework consumers can use the root module with strict API enforcement enabled.

Changelog: [Internal]

Reviewed By: cortinico

Differential Revision: D120532145
coado added a commit to coado/react-native that referenced this pull request Sep 22, 2026
Summary:
Pull Request resolved: react#58575

Route public C++ dependencies through their supported umbrella entry points so framework consumers can use the root module with strict API enforcement enabled.

Changelog: [Internal]

Reviewed By: cortinico

Differential Revision: D120532145
@meta-codesync meta-codesync Bot changed the title Use public umbrellas in root headers (#58575) Use public umbrellas in root headers Sep 22, 2026
coado added a commit to coado/react-native that referenced this pull request Sep 22, 2026
Summary:

Route public C++ dependencies through their supported umbrella entry points so framework consumers can use the root module with strict API enforcement enabled.

Stage the iOS ImageRequestParams header under its canonical imagemanager include path in the prebuilt header inventory. The public ImageManager umbrella exposes this platform-specific type transitively, so framework builds need it alongside the root imagemanager headers.

Changelog:
[Internal]

Reviewed By: cortinico

Differential Revision: D120532145
coado added a commit to coado/react-native that referenced this pull request Sep 22, 2026
Summary:

Route public C++ dependencies through their supported umbrella entry points so framework consumers can use the root module with strict API enforcement enabled.

Stage the iOS ImageRequestParams header under its canonical imagemanager include path in the prebuilt header inventory. The public ImageManager umbrella exposes this platform-specific type transitively, so framework builds need it alongside the root imagemanager headers.

Changelog:
[Internal]

Reviewed By: cortinico

Differential Revision: D120532145
coado added a commit to coado/react-native that referenced this pull request Sep 23, 2026
Summary:

Route public C++ dependencies through their supported umbrella entry points so framework consumers can use the root module with strict API enforcement enabled.

Stage the iOS ImageRequestParams header under its canonical imagemanager include path in the prebuilt header inventory. The public ImageManager umbrella exposes this platform-specific type transitively, so framework builds need it alongside the root imagemanager headers.

Changelog:
[Internal]

Reviewed By: cortinico

Differential Revision: D120532145
coado added a commit to coado/react-native that referenced this pull request Sep 23, 2026
Summary:

Route public C++ dependencies through their supported umbrella entry points so framework consumers can use the root module with strict API enforcement enabled.

Stage the iOS ImageRequestParams header under its canonical imagemanager include path in the prebuilt header inventory. The public ImageManager umbrella exposes this platform-specific type transitively, so framework builds need it alongside the root imagemanager headers.

Changelog:
[Internal]

Reviewed By: cortinico

Differential Revision: D120532145
@meta-codesync meta-codesync Bot changed the title Use public umbrellas in root headers Use public umbrellas in root headers (#58575) Sep 23, 2026
coado added a commit to coado/react-native that referenced this pull request Sep 23, 2026
Summary:

Route public C++ dependencies through their supported umbrella entry points so framework consumers can use the root module with strict API enforcement enabled.

Stage the iOS ImageRequestParams header under its canonical imagemanager include path in the prebuilt header inventory. The public ImageManager umbrella exposes this platform-specific type transitively, so framework builds need it alongside the root imagemanager headers.

Changelog:
[Internal]

Reviewed By: cortinico

Differential Revision: D120532145
coado added a commit to coado/react-native that referenced this pull request Sep 23, 2026
Summary:

Route public C++ dependencies through their supported umbrella entry points so framework consumers can use the root module with strict API enforcement enabled.

Stage the iOS ImageRequestParams header under its canonical imagemanager include path in the prebuilt header inventory. The public ImageManager umbrella exposes this platform-specific type transitively, so framework builds need it alongside the root imagemanager headers.

Changelog:
[Internal]

Reviewed By: cortinico

Differential Revision: D120532145
coado added a commit to coado/react-native that referenced this pull request Sep 23, 2026
Summary:
Pull Request resolved: react#58575

Route public C++ dependencies through their supported umbrella entry points so framework consumers can use the root module with strict API enforcement enabled.

Stage the iOS ImageRequestParams header under its canonical imagemanager include path in the prebuilt header inventory. The public ImageManager umbrella exposes this platform-specific type transitively, so framework builds need it alongside the root imagemanager headers.

Changelog:
[Internal]

Reviewed By: cortinico

Differential Revision: D120532145
coado added a commit to coado/react-native that referenced this pull request Sep 23, 2026
Summary:

Route public C++ dependencies through their supported umbrella entry points so framework consumers can use the root module with strict API enforcement enabled.

Stage the iOS ImageRequestParams header under its canonical imagemanager include path in the prebuilt header inventory. The public ImageManager umbrella exposes this platform-specific type transitively, so framework builds need it alongside the root imagemanager headers.

Changelog:
[Internal]

Reviewed By: cortinico

Differential Revision: D120532145
coado added a commit to coado/react-native that referenced this pull request Sep 23, 2026
Summary:

Route public C++ dependencies through their supported umbrella entry points so framework consumers can use the root module with strict API enforcement enabled.

Stage the iOS ImageRequestParams header under its canonical imagemanager include path in the prebuilt header inventory. The public ImageManager umbrella exposes this platform-specific type transitively, so framework builds need it alongside the root imagemanager headers.

Changelog:
[Internal]

Reviewed By: cortinico

Differential Revision: D120532145
coado added a commit to coado/react-native that referenced this pull request Sep 24, 2026
Summary:

Route public C++ dependencies through their supported umbrella entry points so framework consumers can use the root module with strict API enforcement enabled.

Stage the iOS ImageRequestParams header under its canonical imagemanager include path in the prebuilt header inventory. The public ImageManager umbrella exposes this platform-specific type transitively, so framework builds need it alongside the root imagemanager headers.

Changelog:
[Internal]

Reviewed By: cortinico

Differential Revision: D120532145
coado added a commit to coado/react-native that referenced this pull request Sep 24, 2026
Summary:
Pull Request resolved: react#58575

Route public C++ dependencies through their supported umbrella entry points so framework consumers can use the root module with strict API enforcement enabled.

Stage the iOS ImageRequestParams header under its canonical imagemanager include path in the prebuilt header inventory. The public ImageManager umbrella exposes this platform-specific type transitively, so framework builds need it alongside the root imagemanager headers.

Changelog:
[Internal]

Reviewed By: cortinico

Differential Revision: D120532145
coado added a commit to coado/react-native that referenced this pull request Sep 24, 2026
Summary:

Route public C++ dependencies through their supported umbrella entry points so framework consumers can use the root module with strict API enforcement enabled.

Stage the iOS ImageRequestParams header under its canonical imagemanager include path in the prebuilt header inventory. The public ImageManager umbrella exposes this platform-specific type transitively, so framework builds need it alongside the root imagemanager headers.

Changelog:
[Internal]

Reviewed By: cortinico

Differential Revision: D120532145
coado added a commit to coado/react-native that referenced this pull request Sep 24, 2026
Summary:

Route public C++ dependencies through their supported umbrella entry points so framework consumers can use the root module with strict API enforcement enabled.

Stage the iOS ImageRequestParams header under its canonical imagemanager include path in the prebuilt header inventory. The public ImageManager umbrella exposes this platform-specific type transitively, so framework builds need it alongside the root imagemanager headers.

Changelog:
[Internal]

Reviewed By: cortinico

Differential Revision: D120532145
coado added a commit to coado/react-native that referenced this pull request Sep 24, 2026
Summary:

Route public C++ dependencies through their supported umbrella entry points so framework consumers can use the root module with strict API enforcement enabled.

Stage the iOS ImageRequestParams header under its canonical imagemanager include path in the prebuilt header inventory. The public ImageManager umbrella exposes this platform-specific type transitively, so framework builds need it alongside the root imagemanager headers.

Changelog:
[Internal]

Reviewed By: cortinico

Differential Revision: D120532145
coado added a commit to coado/react-native that referenced this pull request Sep 24, 2026
Summary:

Route public C++ dependencies through their supported umbrella entry points so framework consumers can use the root module with strict API enforcement enabled.

Stage the iOS ImageRequestParams header under its canonical imagemanager include path in the prebuilt header inventory. The public ImageManager umbrella exposes this platform-specific type transitively, so framework builds need it alongside the root imagemanager headers.

Changelog:
[Internal]

Reviewed By: cortinico

Differential Revision: D120532145
coado added a commit to coado/react-native that referenced this pull request Sep 24, 2026
Summary:

Route public C++ dependencies through their supported umbrella entry points so framework consumers can use the root module with strict API enforcement enabled.

Ensure CocoaPods dynamic-framework builds can resolve those entry points both while compiling React-Fabric and from downstream consumers. The root subspec selects the core and view umbrella subspecs so their headers are packaged, while framework header search paths live on the top-level pod target because exported root headers are also compiled from sibling subspecs such as mounting.

Stage the iOS ImageRequestParams header under its canonical imagemanager include path in the prebuilt header inventory. The public ImageManager umbrella exposes this platform-specific type transitively, so framework builds need it alongside the root imagemanager headers.

Changelog:
[Internal]

Reviewed By: cortinico

Differential Revision: D120532145
coado added a commit to coado/react-native that referenced this pull request Sep 24, 2026
Summary:
Pull Request resolved: react#58575

Route public C++ dependencies through their supported umbrella entry points so framework consumers can use the root module with strict API enforcement enabled.

Ensure CocoaPods dynamic-framework builds can resolve those entry points both while compiling React-Fabric and from downstream consumers. The root subspec selects the core and view umbrella subspecs so their headers are packaged, while framework header search paths live on the top-level pod target because exported root headers are also compiled from sibling subspecs such as mounting.

Stage the iOS ImageRequestParams header under its canonical imagemanager include path in the prebuilt header inventory. The public ImageManager umbrella exposes this platform-specific type transitively, so framework builds need it alongside the root imagemanager headers.

Changelog:
[Internal]

Reviewed By: cortinico

Differential Revision: D120532145
coado added a commit to coado/react-native that referenced this pull request Sep 25, 2026
Summary:

Route public C++ dependencies through their supported umbrella entry points so framework consumers can use the root module with strict API enforcement enabled.

Ensure CocoaPods dynamic-framework builds can resolve those entry points both while compiling React-Fabric and from downstream consumers. The root subspec selects the core and view umbrella subspecs so their headers are packaged, while framework header search paths live on the top-level pod target because exported root headers are also compiled from sibling subspecs such as mounting.

Stage the iOS ImageRequestParams header under its canonical imagemanager include path in the prebuilt header inventory. The public ImageManager umbrella exposes this platform-specific type transitively, so framework builds need it alongside the root imagemanager headers.

Changelog:
[Internal]

Reviewed By: cortinico

Differential Revision: D120532145
@meta-codesync meta-codesync Bot changed the title Use public umbrellas in root headers (#58575) Use public umbrellas in root headers Sep 25, 2026
@coado
coado force-pushed the export-D120532145 branch 2 times, most recently from 97c6adf to 2a58977 Compare September 25, 2026 11:38
coado added a commit to coado/react-native that referenced this pull request Sep 25, 2026
Summary:

Route public C++ dependencies through their supported umbrella entry points so framework consumers can use the root module with strict API enforcement enabled.

Stage the iOS ImageRequestParams header under its canonical imagemanager include path in the prebuilt header inventory. The public ImageManager umbrella exposes this platform-specific type transitively, so framework builds need it alongside the root imagemanager headers.

Changelog:
[Internal]

Reviewed By: cortinico

Differential Revision: D120532145
coado added a commit to coado/react-native that referenced this pull request Sep 25, 2026
Summary:
Pull Request resolved: react#58575

Route public C++ dependencies through their supported umbrella entry points so framework consumers can use the root module with strict API enforcement enabled.

Stage the iOS ImageRequestParams header under its canonical imagemanager include path in the prebuilt header inventory. The public ImageManager umbrella exposes this platform-specific type transitively, so framework builds need it alongside the root imagemanager headers.

Changelog:
[Internal]

Reviewed By: cortinico

Differential Revision: D120532145
@meta-codesync meta-codesync Bot changed the title Use public umbrellas in root headers Use public umbrellas in root headers (#58575) Sep 25, 2026
coado added a commit to coado/react-native that referenced this pull request Sep 25, 2026
Summary:

Route public C++ dependencies through their supported umbrella entry points so framework consumers can use the root module with strict API enforcement enabled.

Stage the iOS ImageRequestParams header under its canonical imagemanager include path in the prebuilt header inventory. The public ImageManager umbrella exposes this platform-specific type transitively, so framework builds need it alongside the root imagemanager headers.

Changelog:
[Internal]

Reviewed By: cortinico

Differential Revision: D120532145
coado and others added 2 commits September 25, 2026 08:27
…rs (react#58679)

Summary:
Fix dynamic-framework header resolution for stable C++ umbrella headers. Header paths are now added only to targets that depend on the owning framework, including transitively, without exposing a framework’s built headers to its own compilation.

## Changelog:
[Internal]


Test Plan:
- Focused CocoaPods tests: 16 tests, 27 assertions, all passing.
- Dynamic-framework CocoaPods generation: passing.
- Verified React-RuntimeApple → React-RCTFabric → React-Fabric receives the React-Fabric umbrella path.
- Verified React-Fabric does not receive its own built-framework path.
- Verified the dynamic React-Fabric pod target resolves `$(PODS_TARGET_SRCROOT)/react/renderer/components/view` and `$(PODS_TARGET_SRCROOT)/react/renderer/core` before the framework exists.
- `ruby --disable-gems -c packages/react-native/ReactCommon/React-Fabric.podspec`
- `yarn format-check`
- `arc lint xplat/js/react-native-github/packages/react-native/ReactCommon/React-Fabric.podspec`
- Agent validators: arc-format, arc-lint, and arc-lint-testquality passed.

The full CocoaPods Ruby test process could not start on this host because its RubyGems/JSON installation is broken; the existing focused CocoaPods coverage remains unchanged.

Differential Revision: D121777587

Pulled By: coado
Summary:

Route public C++ dependencies through their supported umbrella entry points so framework consumers can use the root module with strict API enforcement enabled.

Stage the iOS ImageRequestParams header under its canonical imagemanager include path in the prebuilt header inventory. The public ImageManager umbrella exposes this platform-specific type transitively, so framework builds need it alongside the root imagemanager headers.

Changelog:
[Internal]

Reviewed By: cortinico

Differential Revision: D120532145

This branch has not been deployed

No deployments
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.

2 participants