Skip to content

Remove RCT_HERMES_V1_ENABLED from CocoaPods infrastructure (#56735)#56735

Open
cipolleschi wants to merge 3 commits intomainfrom
export-D104247277
Open

Remove RCT_HERMES_V1_ENABLED from CocoaPods infrastructure (#56735)#56735
cipolleschi wants to merge 3 commits intomainfrom
export-D104247277

Conversation

@cipolleschi
Copy link
Copy Markdown
Contributor

@cipolleschi cipolleschi commented May 8, 2026

Summary:

  • Remove RCT_HERMES_V1_ENABLED environment variable from react_native_pods.rb
  • Simplify jsengine.rb to always use .hermesversion tag file
  • Remove conditional HERMES_V1_ENABLED=1 preprocessor definition from utils.rb
  • Simplify hermes-engine.podspec: always read HERMES_VERSION_NAME, use V1 source files, remove legacy inspector subspecs
  • Simplify hermes-utils.rb: remove hermes_v1_enabled() function, always use 250829098.0.0-stable branch, always use .hermesversion tag file

Changelog:

[iOS][Removed] - Remove the RCT_HERMES_V1_ENABLED from Cocoapods

Test plan

  • iOS: bundle exec pod install — success
  • iOS: xcodebuild rn-tester on iPhone 16 Pro simulator — BUILD SUCCEEDED

Reviewed By: cortinico

Differential Revision: D104247277

@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 May 8, 2026
@meta-codesync
Copy link
Copy Markdown

meta-codesync Bot commented May 8, 2026

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

Copy link
Copy Markdown
Contributor

@cortinico cortinico left a comment

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.

@facebook-github-tools facebook-github-tools Bot added p: Facebook Partner: Facebook Partner labels May 8, 2026
@meta-codesync meta-codesync Bot changed the title Remove RCT_HERMES_V1_ENABLED from CocoaPods infrastructure Remove RCT_HERMES_V1_ENABLED from CocoaPods infrastructure (#56735) May 8, 2026
meta-codesync Bot pushed a commit that referenced this pull request May 8, 2026
Summary:

  - Remove `RCT_HERMES_V1_ENABLED` environment variable from `react_native_pods.rb`
  - Simplify `jsengine.rb` to always use `.hermesversion` tag file
  - Remove conditional `HERMES_V1_ENABLED=1` preprocessor definition from `utils.rb`
  - Simplify `hermes-engine.podspec`: always read `HERMES_VERSION_NAME`, use V1 source files, remove legacy inspector subspecs
  - Simplify `hermes-utils.rb`: remove `hermes_v1_enabled()` function, always use `250829098.0.0-stable` branch, always use `.hermesversion` tag file

## Changelog:
[iOS][Removed] - Remove the RCT_HERMES_V1_ENABLED from Cocoapods
                                                                                                             
  ## Test plan
  - [x] iOS: `bundle exec pod install` — success
  - [x] iOS: `xcodebuild` rn-tester on iPhone 16 Pro simulator — BUILD SUCCEEDED

Reviewed By: cortinico

Differential Revision: D104247277
@meta-codesync meta-codesync Bot force-pushed the export-D104247277 branch 2 times, most recently from 000b428 to e0db644 Compare May 8, 2026 15:45
meta-codesync Bot pushed a commit that referenced this pull request May 8, 2026
Summary:

  - Remove `RCT_HERMES_V1_ENABLED` environment variable from `react_native_pods.rb`
  - Simplify `jsengine.rb` to always use `.hermesversion` tag file
  - Remove conditional `HERMES_V1_ENABLED=1` preprocessor definition from `utils.rb`
  - Simplify `hermes-engine.podspec`: always read `HERMES_VERSION_NAME`, use V1 source files, remove legacy inspector subspecs
  - Simplify `hermes-utils.rb`: remove `hermes_v1_enabled()` function, always use `250829098.0.0-stable` branch, always use `.hermesversion` tag file

## Changelog:
[iOS][Removed] - Remove the RCT_HERMES_V1_ENABLED from Cocoapods
                                                                                                             
  ## Test plan
  - [x] iOS: `bundle exec pod install` — success
  - [x] iOS: `xcodebuild` rn-tester on iPhone 16 Pro simulator — BUILD SUCCEEDED

Reviewed By: cortinico

Differential Revision: D104247277
#56731)

Summary:

  - Remove all dead C++ code behind `!defined(HERMES_V1_ENABLED)` guards in `HermesExecutorFactory.cpp` and `HermesInstance.cpp`
  - Delete `Registration.h`, `Registration.cpp`, `ConnectionDemux.h`, `ConnectionDemux.cpp`, and `ConnectionDemuxTests.cpp` (entirely legacy code)
  - Remove `HERMES_V1_ENABLED` compile definition from `react-native-flags.cmake`
  - Remove `HERMES_V1_ENABLED` cache variable from Android `CMakeLists.txt`

  This is Phase 1 of removing legacy Hermes support. Since Hermes V1 is already the default on all platforms and the 0.86 branch has been cut, all legacy Hermes code
   is dead and can be safely removed.

## Changelog:
[General][Breaking] - Remove Legacy Hermes from C++ code

  ## Test plan
  - [x] Android: `./gradlew :packages:rn-tester:android:app:assembleDebug` — BUILD SUCCEEDED
  - [x] iOS: `xcodebuild` rn-tester on iPhone 16 Pro simulator — BUILD SUCCEEDED

Reviewed By: cortinico

Differential Revision: D104228879
…solution (#56733)

Summary:

  - Remove `hermesV1Enabled` / `react.hermesV1Enabled` Gradle property and all branching it controls
  - Rename `HERMES_V1_VERSION_NAME` to `HERMES_VERSION_NAME` in `version.properties`
  - Remove `hermesV1Enabled` from `PrivateReactExtension`, `ProjectUtils`, `PropertyUtils`, `ReactPlugin`
  - Simplify `DependencyUtils.Coordinates` to single Hermes version
  - Make `-DHERMESVM_HEAP_HV_MODE=HEAP_HV_PREFER32` CMake flag unconditional
  - Remove `-DHERMES_V1_ENABLED=1` CMake argument from `ReactAndroid` and Fantom builds
  - Delete `hermesV1Enabled=true` from `gradle.properties`
  - Update all Gradle plugin tests

## Changelog:
[Android][Removed] - Remove hermesV1Enabled and simplify the code

  ## Test plan
  - [x] Gradle plugin: `./gradlew -p packages/gradle-plugin build` — BUILD SUCCESSFUL, all tests pass
  - [x] Android: `./gradlew :packages:rn-tester:android:app:assembleDebug` — BUILD SUCCESSFUL

Reviewed By: cortinico

Differential Revision: D104244582
Summary:

  - Remove `RCT_HERMES_V1_ENABLED` environment variable from `react_native_pods.rb`
  - Simplify `jsengine.rb` to always use `.hermesversion` tag file
  - Remove conditional `HERMES_V1_ENABLED=1` preprocessor definition from `utils.rb`
  - Simplify `hermes-engine.podspec`: always read `HERMES_VERSION_NAME`, use V1 source files, remove legacy inspector subspecs
  - Simplify `hermes-utils.rb`: remove `hermes_v1_enabled()` function, always use `250829098.0.0-stable` branch, always use `.hermesversion` tag file

## Changelog:
[iOS][Removed] - Remove the RCT_HERMES_V1_ENABLED from Cocoapods

  ## Test plan
  - [x] iOS: `bundle exec pod install` — success
  - [x] iOS: `xcodebuild` rn-tester on iPhone 16 Pro simulator — BUILD SUCCEEDED

Reviewed By: cortinico

Differential Revision: D104247277
@meta-codesync meta-codesync Bot force-pushed the export-D104247277 branch from e0db644 to a7624f0 Compare May 8, 2026 16:50
cipolleschi pushed a commit that referenced this pull request May 8, 2026
Summary:
Pull Request resolved: #56735

  - Remove `RCT_HERMES_V1_ENABLED` environment variable from `react_native_pods.rb`
  - Simplify `jsengine.rb` to always use `.hermesversion` tag file
  - Remove conditional `HERMES_V1_ENABLED=1` preprocessor definition from `utils.rb`
  - Simplify `hermes-engine.podspec`: always read `HERMES_VERSION_NAME`, use V1 source files, remove legacy inspector subspecs
  - Simplify `hermes-utils.rb`: remove `hermes_v1_enabled()` function, always use `250829098.0.0-stable` branch, always use `.hermesversion` tag file

## Changelog:
[iOS][Removed] - Remove the RCT_HERMES_V1_ENABLED from Cocoapods

  ## Test plan
  - [x] iOS: `bundle exec pod install` — success
  - [x] iOS: `xcodebuild` rn-tester on iPhone 16 Pro simulator — BUILD SUCCEEDED

Differential Revision: D104247277

Reviewed By: cortinico
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. fb-exported meta-exported p: Facebook Partner: Facebook Partner

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants