Skip to content

Include utils umbrella from renderer CSS headers (#58789) - #58789

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

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

Conversation

@coado

@coado coado commented Oct 1, 2026 •

Copy link
Copy Markdown
Contributor

Summary:

The renderer CSS headers are framework-tier APIs, but several of them included fine-grained public react/utils/* headers directly. Those headers are guarded by the public umbrella guard, so a strict consumer that includes a CSS header without first including <React/Utils.h> hit a hard error even after acknowledging framework-tier usage with RN_ALLOW_FRAMEWORKS.

Include <React/Utils.h> from the affected CSS headers instead of the fine-grained utils headers, matching how other exported headers reach public modules. Export the utils dependency from the CSS Buck target, since utils is now part of the CSS headers' public interface; CMake and CocoaPods already expose it.

Changelog: [Internal]

Reviewed By: cipolleschi

Differential Revision: D122337018

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

meta-codesync Bot commented Oct 1, 2026

Copy link
Copy Markdown

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

coado added a commit to coado/react-native that referenced this pull request Oct 2, 2026
Summary:
Pull Request resolved: react#58789

The renderer CSS headers are framework-tier APIs, but several of them included fine-grained public `react/utils/*` headers directly. Those headers are guarded by the public umbrella guard, so a strict consumer that includes a CSS header without first including `<React/Utils.h>` hit a hard error even after acknowledging framework-tier usage with `RN_ALLOW_FRAMEWORKS`.

Include `<React/Utils.h>` from the affected CSS headers instead of the fine-grained utils headers, matching how other exported headers reach public modules. Export the utils dependency from the CSS Buck target, since utils is now part of the CSS headers' public interface; CMake and CocoaPods already expose it.

Changelog: [Internal]

Reviewed By: cipolleschi

Differential Revision: D122337018
@coado
coado force-pushed the export-D122337018 branch from 48f038c to 84298a0 Compare October 2, 2026 11:03
@meta-codesync meta-codesync Bot changed the title Include utils umbrella from renderer CSS headers Include utils umbrella from renderer CSS headers (#58789) Oct 2, 2026
coado added a commit to coado/react-native that referenced this pull request Oct 2, 2026
Summary:
Pull Request resolved: react#58789

The renderer CSS headers are framework-tier APIs, but several of them included fine-grained public `react/utils/*` headers directly. Those headers are guarded by the public umbrella guard, so a strict consumer that includes a CSS header without first including `<React/Utils.h>` hit a hard error even after acknowledging framework-tier usage with `RN_ALLOW_FRAMEWORKS`.

Include `<React/Utils.h>` from the affected CSS headers instead of the fine-grained utils headers, matching how other exported headers reach public modules. Export the utils dependency from the CSS Buck target, since utils is now part of the CSS headers' public interface; CMake and CocoaPods already expose it.

Changelog: [Internal]

Reviewed By: cipolleschi

Differential Revision: D122337018
@coado
coado force-pushed the export-D122337018 branch from 84298a0 to cadefcd Compare October 2, 2026 12:47
Dawid Małecki and others added 2 commits October 5, 2026 01:50
Summary:
Reclassify the renderer CSS headers (`react/renderer/css/*.h`) as framework-tier APIs by switching them from the public umbrella guard to the for-frameworks guard. Framework integrations keep access to the fine-grained headers and acknowledge that usage by defining `RN_ALLOW_FRAMEWORKS`.

Remove the `React/CSS.h` umbrella and stop publishing it from Buck, CocoaPods, Android prefab, the iOS prebuild header config, and the iOS prebuild header linking step. Its only consumer, the attributed string conversions header (itself framework-tier), now includes the CSS headers it uses (`CSSFontVariant.h` and `CSSValueParser.h`) directly.

Changelog: [Internal]

Differential Revision: D119642784
Summary:
Pull Request resolved: react#58789

The renderer CSS headers are framework-tier APIs, but several of them included fine-grained public `react/utils/*` headers directly. Those headers are guarded by the public umbrella guard, so a strict consumer that includes a CSS header without first including `<React/Utils.h>` hit a hard error even after acknowledging framework-tier usage with `RN_ALLOW_FRAMEWORKS`.

Include `<React/Utils.h>` from the affected CSS headers instead of the fine-grained utils headers, matching how other exported headers reach public modules. Export the utils dependency from the CSS Buck target, since utils is now part of the CSS headers' public interface; CMake and CocoaPods already expose it.

Changelog: [Internal]

Reviewed By: cipolleschi

Differential Revision: D122337018
@coado
coado force-pushed the export-D122337018 branch from cadefcd to 80c1e79 Compare October 5, 2026 08:56
@meta-codesync meta-codesync Bot closed this in 4e6bf24 Oct 5, 2026
@meta-codesync meta-codesync Bot added the Merged This PR has been merged. label Oct 5, 2026
@meta-codesync

meta-codesync Bot commented Oct 5, 2026

Copy link
Copy Markdown

This pull request has been merged in 4e6bf24.

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. Merged This PR has been merged. 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