Skip to content

Use umbrellas instead of direct includes in rendererdebug module (#58619) - #58619

Closed
j-piasecki wants to merge 2 commits into
react:mainfrom
j-piasecki:export-D121001495
Closed

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

Conversation

@j-piasecki

@j-piasecki j-piasecki commented Sep 21, 2026 •

Copy link
Copy Markdown
Contributor

Summary:

Changelog: [Internal]

Update the rendererdebug module to use the React/Debug.h and React/Utils.h umbrella includes instead of direct ones.

Reviewed By: cipolleschi

Differential Revision: D121001495

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

meta-codesync Bot commented Sep 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 D121001495.

@facebook-github-tools facebook-github-tools Bot added the p: Facebook Partner: Facebook label Sep 21, 2026
@meta-codesync meta-codesync Bot changed the title Use umbrellas instead of direct includes in rendererdebug module Use umbrellas instead of direct includes in rendererdebug module (#58619) Sep 22, 2026
j-piasecki added a commit to j-piasecki/react-native that referenced this pull request Sep 22, 2026
…ct#58619)

Summary:

Changelog: [Internal]

Update the rendererdebug module to use the `React/Debug.h` and `React/Utils.h` umbrella includes instead of direct ones.

Differential Revision: D121001495
j-piasecki added a commit to j-piasecki/react-native that referenced this pull request Sep 24, 2026
…ct#58619)

Summary:

Changelog: [Internal]

Update the rendererdebug module to use the `React/Debug.h` and `React/Utils.h` umbrella includes instead of direct ones.

Differential Revision: D121001495
j-piasecki added a commit to j-piasecki/react-native that referenced this pull request Sep 24, 2026
…ct#58619)

Summary:

Changelog: [Internal]

Update the rendererdebug module to use the `React/Debug.h` and `React/Utils.h` umbrella includes instead of direct ones.

Differential Revision: D121001495
j-piasecki added a commit to j-piasecki/react-native that referenced this pull request Sep 25, 2026
…ct#58619)

Summary:

Changelog: [Internal]

Update the rendererdebug module to use the `React/Debug.h` and `React/Utils.h` umbrella includes instead of direct ones.

Reviewed By: cipolleschi

Differential Revision: D121001495
cortinico and others added 2 commits September 25, 2026 07:08
Summary:
Apply the repository formatter to the iOS prebuild header documentation. This restores the expected Markdown line wrapping and the public format check.

Changelog: [Internal]

bypass-github-export-checks

___

Differential Revision: D121797341
…ct#58619)

Summary:

Changelog: [Internal]

Update the rendererdebug module to use the `React/Debug.h` and `React/Utils.h` umbrella includes instead of direct ones.

Reviewed By: cipolleschi

Differential Revision: D121001495
@meta-codesync meta-codesync Bot closed this in 972860a Sep 25, 2026
@meta-codesync meta-codesync Bot added the Merged This PR has been merged. label Sep 25, 2026
@meta-codesync

meta-codesync Bot commented Sep 25, 2026

Copy link
Copy Markdown

This pull request has been merged in 972860a.

meta-codesync Bot pushed a commit that referenced this pull request Sep 30, 2026
…#58759)

Summary:
`React-utils`'s `platformios` subspec inherits `header_dir = "react/utils"` from the parent spec, and maps its headers relative to `platform/ios` — a directory whose own layout already begins with `react/utils`. Outside `use_frameworks!` both layers are applied in sequence (`PodTarget#header_mappings`), so `FollyConvert.h` / `LowPriorityExecutor.h` end up one level too deep:

```
Pods/Headers/{Public,Private}/React-utils/react/utils/react/utils/*.h
```

and the documented include path can no longer be resolved. Since #58619 the `react/utils` umbrella is reached through `react/renderer/debug/flags.h` and `debugStringConvertibleUtils.h`, so the failure is not limited to direct consumers of `react/utils`: in the default static configuration any pod that transitively includes those headers stops compiling, e.g. in target `React-ImageManager`:

```
Pods/Headers/Public/React-utils/React/Utils.h:36:10: fatal error:
'react/utils/LowPriorityExecutor.h' file not found
```

Inside `use_frameworks!` the framework header copy path only takes the mapping directory into account (`pod_target_installer#add_header`; `link_headers` skips framework targets, which is why `Pods/Headers` is empty there), so `platform/ios` is correct for that configuration and only the static layout is broken.

The fix clears the inherited `header_dir` on that subspec instead of moving the mapping directory: the mapping already contributes the `react/utils` prefix, so the static layout becomes `Pods/Headers/Public/React-utils/react/utils/*.h` — the same place the module's other headers land — while the frameworks layout (`React_utils.framework/Headers/react/utils/*.h`) is unchanged, because `header_dir` does not participate in that path. `header_dir = ""` together with `header_mappings_dir = …` is also the convention the `*Umbrella` subspecs of this repo already use (`React-utils`, `React-Mapbuffer`, `React-FabricImage`, `ReactCommon`).

## Changelog:

[iOS] [FIXED] - React-utils: link `platform/ios` headers at `react/utils/…` in non-frameworks builds instead of a duplicated `react/utils/react/utils/…`, restoring `#include <react/utils/…>` and `<React/Utils.h>`

Pull Request resolved: #58759

Test Plan: RNTester using `pod install` or `USE_FRAMEWORKS=dynamic pod install` to build and can build successfully.

Reviewed By: javache

Differential Revision: D122536016

Pulled By: cipolleschi

fbshipit-source-id: e0bf2a0ecef6e8db713a276eb9a2f07b5f2daad0
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.

2 participants