Skip to content

[RN][HermesV1] Use Hermes V1 as default engine - #54989

Closed
cipolleschi wants to merge 9 commits into
mainfrom
cipolleschi/enable-hermes-v1-by-default
Closed

[RN][HermesV1] Use Hermes V1 as default engine#54989
cipolleschi wants to merge 9 commits into
mainfrom
cipolleschi/enable-hermes-v1-by-default

Conversation

@cipolleschi

@cipolleschicipolleschi commented Dec 29, 2025

Copy link
Copy Markdown
Contributor

Summary:

This change makes Hermes V1 the default engine for React Native for both platforms. This change needs to land before the branch cut of react native 0.84

Changelog:

[iOS][Changed] - Make Hermes V1 the default engine for iOS

Test Plan:

  1. Run bundle exec pod install and verified that Hermes V1 is used when building from source
Simulator Screenshot - iPhone 17 Pro - 2025-12-29 at 11 28 44 2. Run `prebuild-ios -s` and verified that the scripts downloads the Hermes V1 tarball Screenshot 2025-12-29 at 10 37 53 3. GHA and nightlies

@meta-clameta-claBot 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 Dec 29, 2025
@cipolleschicipolleschi changed the title [RN][HermesV1] Use Hermes V1 as default engine[RN][iOS][HermesV1] Use Hermes V1 as default engineDec 29, 2025
@cipolleschi
cipolleschi marked this pull request as ready for review December 29, 2025 09:50
@meta-codesync

Copy link
Copy Markdown

@cipolleschi has imported this pull request. If you are a Meta employee, you can view this in D89881943.

@github-actions

Copy link
Copy Markdown

Job Summary for Gradle

Test All :: build_android
Gradle Root ProjectRequested TasksGradle VersionBuild OutcomeBuild Scan®
react-native-githubpublishAllToMavenTempLocal build9.0.0Build Scan not published

@cipolleschi
cipolleschiforce-pushed the cipolleschi/enable-hermes-v1-by-default branch 3 times, most recently from 5064dfa to 350a654CompareDecember 29, 2025 14:15
@complexapps2026

Copy link
Copy Markdown

I’m pretty new to React Native and this change for iOS looks great. Could you help me understand if Android will use Hermes V1 by default too?

@cipolleschi

Copy link
Copy Markdown
ContributorAuthor

@complexapps2026 the goal is also for Android to do that. this PR only contains changes related to iOS. A similar PR for Android will be opened soon!

@cipolleschi
cipolleschiforce-pushed the cipolleschi/enable-hermes-v1-by-default branch 2 times, most recently from 4faf893 to d88d553CompareJanuary 5, 2026 13:50
@cipolleschi
cipolleschiforce-pushed the cipolleschi/enable-hermes-v1-by-default branch from d88d553 to b42ebc6CompareJanuary 5, 2026 16:57
@cipolleschi
cipolleschiforce-pushed the cipolleschi/enable-hermes-v1-by-default branch from b42ebc6 to 874f569CompareJanuary 6, 2026 10:05
@cipolleschicipolleschi changed the title [RN][iOS][HermesV1] Use Hermes V1 as default engine[RN][HermesV1] Use Hermes V1 as default engineJan 6, 2026
@github-actions

Copy link
Copy Markdown

Job Summary for Gradle

Test All :: run_fantom_tests
Gradle Root ProjectRequested TasksGradle VersionBuild OutcomeBuild Scan®
react-native-github:private:react-native-fantom:buildFantomTester9.0.0Build Scan not published

@github-actions

Copy link
Copy Markdown

Job Summary for Gradle

Test All :: build_android
Gradle Root ProjectRequested TasksGradle VersionBuild OutcomeBuild Scan®
react-native-githubpublishAllToMavenTempLocal build9.0.0Build Scan not published

@cipolleschi
cipolleschiforce-pushed the cipolleschi/enable-hermes-v1-by-default branch 2 times, most recently from eb1669e to e99a190CompareJanuary 6, 2026 13:31
@github-actions

Copy link
Copy Markdown

Job Summary for Gradle

Test All :: run_fantom_tests
Gradle Root ProjectRequested TasksGradle VersionBuild OutcomeBuild Scan®
react-native-github:private:react-native-fantom:buildFantomTester9.0.0Build Scan not published

@github-actions

Copy link
Copy Markdown

Job Summary for Gradle

Test All :: build_android
Gradle Root ProjectRequested TasksGradle VersionBuild OutcomeBuild Scan®
react-native-githubpublishAllToMavenTempLocal build9.0.0Build Scan not published

@github-actions

Copy link
Copy Markdown

Job Summary for Gradle

Test All :: run_fantom_tests
Gradle Root ProjectRequested TasksGradle VersionBuild OutcomeBuild Scan®
react-native-github:private:react-native-fantom:buildFantomTester9.0.0Build Scan not published

@github-actions

Copy link
Copy Markdown

Job Summary for Gradle

Test All :: build_android
Gradle Root ProjectRequested TasksGradle VersionBuild OutcomeBuild Scan®
react-native-githubpublishAllToMavenTempLocal build9.0.0Build Scan not published

@cipolleschi
cipolleschiforce-pushed the cipolleschi/enable-hermes-v1-by-default branch from e99a190 to 9eddb95CompareJanuary 6, 2026 17:32
@github-actions

Copy link
Copy Markdown

Job Summary for Gradle

Test All :: run_fantom_tests
Gradle Root ProjectRequested TasksGradle VersionBuild OutcomeBuild Scan®
react-native-github:private:react-native-fantom:buildFantomTester9.0.0Build Scan not published

@github-actions

Copy link
Copy Markdown

Job Summary for Gradle

Test All :: build_android
Gradle Root ProjectRequested TasksGradle VersionBuild OutcomeBuild Scan®
react-native-githubpublishAllToMavenTempLocal build9.0.0Build Scan not published

@cipolleschi
cipolleschiforce-pushed the cipolleschi/enable-hermes-v1-by-default branch from 9eddb95 to fcdd1a0CompareJanuary 6, 2026 18:11
@github-actions

Copy link
Copy Markdown

Job Summary for Gradle

Test All :: run_fantom_tests
Gradle Root ProjectRequested TasksGradle VersionBuild OutcomeBuild Scan®
react-native-github:private:react-native-fantom:buildFantomTester9.0.0Build Scan not published

1 similar comment
@github-actions

Copy link
Copy Markdown

Job Summary for Gradle

Test All :: run_fantom_tests
Gradle Root ProjectRequested TasksGradle VersionBuild OutcomeBuild Scan®
react-native-github:private:react-native-fantom:buildFantomTester9.0.0Build Scan not published

@cortinicocortinico 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.

@react-native-bot

Copy link
Copy Markdown
Collaborator

This pull request was successfully merged by @cipolleschi in f140c49

When will my fix make it into a release? | How to file a pick request?

@react-native-botreact-native-bot added the Merged This PR has been merged. label Jan 7, 2026
react-native-bot pushed a commit that referenced this pull request Jan 12, 2026
Summary:
This change makes Hermes V1 the default engine for React Native for both platforms. This change needs to land before the branch cut of react native 0.84
bypass-github-export-checks
## Changelog:
[iOS][Changed] - Make Hermes V1 the default engine for iOS
Pull Request resolved: #54989
Test Plan:
1. Run `bundle exec pod install` and verified that Hermes V1 is used when building from source
<img height="480" alt="Simulator Screenshot - iPhone 17 Pro - 2025-12-29 at 11 28 44" src="https://github.com/user-attachments/assets/0889f16c-f2ee-4a0e-9a4d-529dd82c8283" />
2. Run `prebuild-ios -s` and verified that the scripts downloads the Hermes V1 tarball
<img width="831" height="324" alt="Screenshot 2025-12-29 at 10 37 53" src="https://github.com/user-attachments/assets/9a60565e-1e13-4967-a4a4-dd079e6b040f" />
3. GHA and nightlies
Reviewed By: vzaidman, cortinico, huntie
Differential Revision: D89881943
Pulled By: cipolleschi
fbshipit-source-id: 958b6d31bd4230ba4a5c7fee2bffc19e03dcbc89
@react-native-bot

Copy link
Copy Markdown
Collaborator

This pull request was successfully merged by @cipolleschi in bbe02de

When will my fix make it into a release? | How to file a pick request?

@hannojg

Copy link
Copy Markdown
Contributor

Hey, this seems to have broken the fantom tests:

@cortinico

Copy link
Copy Markdown
Contributor

Yeah we're aware of it @hannojg

meta-codesyncBot pushed a commit that referenced this pull request Feb 5, 2026
Summary:
Changing the line in `ReactPlugin.kt` that always set `hermesV1Enabled` to `true` even if it was explicitly disabled, accidentally omitted in #54989.
In recent update of hermes V1 binary a file `RuntimeAdapter.h` was removed.
## Changelog:
[ANDROID] [FIXED] - ReactPlugin.kt always setting `hermesV1Enabled` to `true`
Pull Request resolved: #55399
Test Plan: Build React Native from source on latest 0.84 RC, disable hermesV1 and see that it compiles now.
Reviewed By: cipolleschi
Differential Revision: D92267385
Pulled By: cortinico
fbshipit-source-id: 58ecae6d3064995ef9e63ddbd67ac04db2a1126b
react-native-bot pushed a commit that referenced this pull request Feb 26, 2026
Summary:
Changing the line in `ReactPlugin.kt` that always set `hermesV1Enabled` to `true` even if it was explicitly disabled, accidentally omitted in #54989.
In recent update of hermes V1 binary a file `RuntimeAdapter.h` was removed.
## Changelog:
[ANDROID] [FIXED] - ReactPlugin.kt always setting `hermesV1Enabled` to `true`
Pull Request resolved: #55399
Test Plan: Build React Native from source on latest 0.84 RC, disable hermesV1 and see that it compiles now.
Reviewed By: cipolleschi
Differential Revision: D92267385
Pulled By: cortinico
fbshipit-source-id: 58ecae6d3064995ef9e63ddbd67ac04db2a1126b
Saadnajmi added a commit to Saadnajmi/react-native-macos that referenced this pull request Jul 8, 2026
… 0.84
Upstream 0.83-stable defaults to Hermes V0 (sdks/.hermesversion =
hermes-v0.14.1); V1 is opt-in via RCT_HERMES_V1_ENABLED and only becomes
the default in 0.84 (react#54989, commit bbe02de, not
backported to 0.83). The `hermes` -> `hermesvm` product rename, however,
already landed in 0.83 (react#53094), so the fork's
resolve-hermes.mts genuinely needed to catch up to the new artifact name.
Reduce the PR to just that V0-compatible rename catch-up and revert the
V1-engine bits to match upstream 0.83:
- resolve-hermes.mts: keep hermes.* -> hermesvm.* (needed on 0.83).
- Package.swift: drop HERMES_V1_ENABLED define (inherited at 0.84 merge).
- microsoft-hermes.js: revert static_h -> main; drop unused hermesV1Tag().
- hermes-utils.rb: revert static_h/main gate back to main (V0).
- build-apple-framework.sh: revert inspector-header guard (V0 ships them).
- microsoft-resolve-hermes.yml: revert cache-key rename + cmake hermesc
change (build_host_hermesc works for V0).
Net: 6 files -> 1; the five reverted files now match upstream/0.83-merge.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CLA SignedThis label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed.MergedThis PR has been merged.p: FacebookPartner: FacebookPartner

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants

@cipolleschi@complexapps2026@react-native-bot@hannojg@cortinico@facebook-github-bot