Skip to content

fix(hermes): pick static_h vs main branch by RCT_HERMES_V1_ENABLED in hermes-utils.rb - #2957

Closed
Thiago Vinhas (tvinhas) wants to merge 1 commit into
microsoft:0.83-mergefrom
tvinhas:fix-hermes-utils-v1-static-h-branch
Closed

fix(hermes): pick static_h vs main branch by RCT_HERMES_V1_ENABLED in hermes-utils.rb#2957
Thiago Vinhas (tvinhas) wants to merge 1 commit into
microsoft:0.83-mergefrom
tvinhas:fix-hermes-utils-v1-static-h-branch

Conversation

@tvinhas

Copy link
Copy Markdown

Summary

Companion to #2952 (JS-side / microsoft-hermes.js). That PR switches the producer-side hermesCommitAtMergeBase() in JS from mainstatic_h when resolving Hermes V1; this PR applies the same logic to the consumer-side Ruby
equivalent in hermes-utils.rb.

Before:

gitclone -q --bare --filter=blob:none --single-branch --branchmain#{HERMES_GITHUB_URL} ...commit=`git --git-dir=... rev-list -1 --before=#{timestamp} refs/heads/main`.stripAfter:
hermes_branch=hermes_v1_enabled() ? "static_h" : "main"gitclone ... --branch#{hermes_branch} ...commit=`git --git-dir=... rev-list -1 --before=#{timestamp} refs/heads/#{hermes_branch}`.stripWhyitmattersThehermes_commit_at_merge_baseRubyfunctionisthefrom-sourcefallbackpath: itfireswhenneithertheV0norV1MaventarballisavailableANDRCT_BUILD_HERMES_FROM_SOURCE=true.Withthehardcodedmainbranch,RCT_HERMES_V1_ENABLED=1
+ from-sourcebuildwouldcloneV0HermessourcewhiletherestofthepodspecexpectstheV1hermesvm.framework / hermesvm.xcframeworkartifactsasilentmismatchthatfailslateinthebuildwithconfusing"missing framework"errors.Afterthischangethebranchmatchestheenginevarianttherestofthepodspecresolvesat.Partiallyclosesthe"Hermes V1 support"itemontheRoadto0.83trackingissue(#2901) — together with #2952 (CI / JS side), the producer + consumer Ruby/JS sides are aligned. The other Hermes-V1 plumbing in hermes-engine.podspec,version.properties,and.hermesv1versionwasalreadybroughtinbytheupstream0.83merge.TestPlan
- Defaultpath(RCT_HERMES_V1_ENABLED=0,legacyV0): hermes_branchresolvesto"main",behaviorunchanged.Verifiedbyreadingthediffonlythevariablesubstitutiondiffersfromtheprevioushardcodedpath.
- V1path(RCT_HERMES_V1_ENABLED=1): hermes_branchresolvesto"static_h",matching#2952's JS-side selection and matching the actual upstream Hermes branch that hosts the V1 (0.83+) source.
- podinstallinpackages/rn-testeron0.83-mergesucceedswith86deps / 85installed(validatedlocally;thispathisdormantonthecache-hit / Maven-tarball-availablepathsbutexercisingitmanuallywithV1 + from-sourceproducestheexpectedhermesvm.xcframeworkshape).
- Rubysyntaxcheck(ruby -c): clean.Related
- #2952 — CI / JS-side companion fix (still draft as of writing)
- #2901 — Road to 0.83 tracking issue (partial close)

@tvinhas
Thiago Vinhas (tvinhas) requested a review from a team as a code ownerMay 13, 2026 19:35
@tvinhasThiago Vinhas (tvinhas) mentioned this pull request May 13, 2026
10 tasks
Christopher Wallace (christopherwxyz) added a commit to officialunofficial/react-native-macos that referenced this pull request Jun 6, 2026
…crosoft#2957microsoft#2959microsoft#2963microsoft#2964)
Finishes the 0.83 stabilization on uno/desktop-0.85: codegen npmPackageName
constant, hermes-utils static_h/main branch selection by RCT_HERMES_V1_ENABLED,
three Fabric focus regressions (blur/sendAccessibilityEvent/VirtualView),
React-RCTUIKit.podspec in package files, TouchableBounce focusable +
AccessibilityInfo guards. RNTester-macOS unit tests remain green.
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@tvinhas@Saadnajmi