Uh oh!
There was an error while loading. Please reload this page.
[RN][HermesV1] Use Hermes V1 as default engine - #54989
Conversation
@cipolleschi has imported this pull request. If you are a Meta employee, you can view this in D89881943. |
Job Summary for GradleTest All :: build_android
|
5064dfa to
350a654Comparecomplexapps2026
commented
Dec 29, 2025
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
commented
Dec 29, 2025
@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! |
4faf893 to
d88d553Compared88d553 to
b42ebc6Compareb42ebc6 to
874f569CompareJob Summary for GradleTest All :: run_fantom_tests
|
Job Summary for GradleTest All :: build_android
|
eb1669e to
e99a190CompareJob Summary for GradleTest All :: run_fantom_tests
|
Job Summary for GradleTest All :: build_android
|
Job Summary for GradleTest All :: run_fantom_tests
|
Job Summary for GradleTest All :: build_android
|
e99a190 to
9eddb95CompareJob Summary for GradleTest All :: run_fantom_tests
|
Job Summary for GradleTest All :: build_android
|
9eddb95 to
fcdd1a0CompareJob Summary for GradleTest All :: run_fantom_tests
|
1 similar comment
Job Summary for GradleTest All :: run_fantom_tests
|
cortinico
left a comment
There was a problem hiding this comment.
Review automatically exported from Phabricator review in Meta.
react-native-bot
commented
Jan 7, 2026
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? |
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
commented
Jan 12, 2026
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
commented
Jan 15, 2026
Hey, this seems to have broken the fantom tests: |
cortinico
commented
Jan 15, 2026
Yeah we're aware of it @hannojg |
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
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
… 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>
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:
bundle exec pod installand verified that Hermes V1 is used when building from source