Skip to content

Remove Fabric and TurboModule dead config (#58434) - #58434

Open
christophpurrer wants to merge 2 commits into
react:mainfrom
christophpurrer:export-D119380472
Open

Remove Fabric and TurboModule dead config (#58434)#58434
christophpurrer wants to merge 2 commits into
react:mainfrom
christophpurrer:export-D119380472

Conversation

@christophpurrer

@christophpurrer christophpurrer commented Sep 10, 2026

Copy link
Copy Markdown
Contributor

Summary:

Follow-up to D116318829, addressing rubennorte's review comment. Fabric and TurboModules shipped before bridgeless and are always on, so the toggles for them were hardcoded and read nowhere.

Android, DefaultNewArchitectureEntryPoint — now only selects the release channel and loads the SO:

  • removed fabricEnabled, turboModulesEnabled, concurrentReactEnabled
  • removed the deprecated load(turboModulesEnabled) and load(turboModulesEnabled, fabricEnabled) overloads
  • removed isConfigurationValid, and with it DefaultNewArchitectureEntryPointTest (every test targeted it)
  • updated the 8 in-repo call sites that passed fabricEnabled into the deprecated 3-arg DefaultReactActivityDelegate constructor, which discarded it

iOS:

  • removed fabricEnabled / turboModuleEnabled from RCTRootViewFactoryConfiguration
  • removed the corresponding RCTDefaultReactNativeFactoryDelegate stubs and the RCTAppDelegate.h doc references

ReactAndroid.api and the ReactApple*Cxx.api snapshots are regenerated.

One call site is not updated here: users/zh/zhaogang/benchmarks/SimpleRN/android/app/src/main/java/com/simplern/MainActivity.kt still imports DefaultNewArchitectureEntryPoint.fabricEnabled. It is a personal benchmark app under users/ that is not materialized in this working copy, so it could not be edited.

Changelog:
[General][Breaking] - Remove the fabricEnabled / turboModulesEnabled / concurrentReactEnabled accessors and remaining deprecated load overloads from DefaultNewArchitectureEntryPoint, and the fabricEnabled / turboModuleEnabled properties from RCTRootViewFactoryConfiguration; Fabric and TurboModules are always enabled

https://www.internalfb.com/agent-home?session_id=dmh-2bfbb113-43fc-4bc4-819d-874c5101a1c8

Differential Revision: D119380472

@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 10, 2026
@meta-codesync

meta-codesync Bot commented Sep 10, 2026

Copy link
Copy Markdown

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

)

Summary:

TurboModules, Fabric and bridgeless are all unconditionally enabled in the New
Architecture, so every remaining flag on `DefaultNewArchitectureEntryPoint` was
dead configuration. Reduce it to the one thing it still selects: the release
level.

Removes the deprecated parameterized `load(...)` overloads, the `fabricEnabled`,
`turboModulesEnabled` and `concurrentReactEnabled` getters, and
`isConfigurationValid`. Call sites that passed `fabricEnabled` to
`DefaultReactActivityDelegate` now use its two-argument constructor, which
already ignored the flag.

Changelog:
[Android][Breaking] - Remove the deprecated `DefaultNewArchitectureEntryPoint.load(turboModulesEnabled, fabricEnabled)` overloads; use `load()` instead
[Android][Breaking] - Remove `DefaultNewArchitectureEntryPoint.fabricEnabled`, `turboModulesEnabled`, `concurrentReactEnabled` and `isConfigurationValid`

Differential Revision: D119370657
Summary:

Follow-up to D116318829, addressing rubennorte's review comment. Fabric and TurboModules shipped before bridgeless and are always on, so the toggles for them were hardcoded and read nowhere.

Android, `DefaultNewArchitectureEntryPoint` — now only selects the release channel and loads the SO:
- removed `fabricEnabled`, `turboModulesEnabled`, `concurrentReactEnabled`
- removed the deprecated `load(turboModulesEnabled)` and `load(turboModulesEnabled, fabricEnabled)` overloads
- removed `isConfigurationValid`, and with it `DefaultNewArchitectureEntryPointTest` (every test targeted it)
- updated the 8 in-repo call sites that passed `fabricEnabled` into the deprecated 3-arg `DefaultReactActivityDelegate` constructor, which discarded it

iOS:
- removed `fabricEnabled` / `turboModuleEnabled` from `RCTRootViewFactoryConfiguration`
- removed the corresponding `RCTDefaultReactNativeFactoryDelegate` stubs and the `RCTAppDelegate.h` doc references

`ReactAndroid.api` and the `ReactApple*Cxx.api` snapshots are regenerated.

One call site is not updated here: `users/zh/zhaogang/benchmarks/SimpleRN/android/app/src/main/java/com/simplern/MainActivity.kt` still imports `DefaultNewArchitectureEntryPoint.fabricEnabled`. It is a personal benchmark app under `users/` that is not materialized in this working copy, so it could not be edited.

Changelog:
[General][Breaking] - Remove the `fabricEnabled` / `turboModulesEnabled` / `concurrentReactEnabled` accessors and remaining deprecated `load` overloads from `DefaultNewArchitectureEntryPoint`, and the `fabricEnabled` / `turboModuleEnabled` properties from `RCTRootViewFactoryConfiguration`; Fabric and TurboModules are always enabled

https://www.internalfb.com/agent-home?session_id=dmh-2bfbb113-43fc-4bc4-819d-874c5101a1c8

Differential Revision: D119380472
@meta-codesync meta-codesync Bot changed the title Remove Fabric and TurboModule dead config Remove Fabric and TurboModule dead config (#58434) Sep 10, 2026
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 Partner

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant