[0.88] Make Hermes source archive extraction repository-agnostic

Open Beginner friendly
#1,491 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
2/5
Estimated time
1-3 hours
Newbie friendliness
75/100
Issue type
Bug
Clarity
Clearly specified
Activity status
Active
Tech stack
cmake, javascript, react-native
Domain
build-system

Research direction

On the 0.88 branch, find unzipHermes and compare its archive extraction behavior with the linked PR. Reproduce with ./fantom/reproduce.sh build 0.88-stable; done means the Hermes sources are extracted at the expected level and the build gets past configureBuildForHermesWithDebugger.

Written by the indexing model from the issue text.

Description

Target Branch

0.88

Link to commit or PR to be picked

https://github.com/react/react-native/pull/59589

Description

Building Hermes from source on 0.88 fails. The tarball 0.88 downloads, https://github.com/facebook/hermes/tarball/<version>, now redirects to meta/hermes, so its top folder is meta-hermes-<sha>, while 0.88's unzipHermes strips only a facebook-hermes- prefix, so the sources land one folder too deep and configureBuildForHermesWithDebugger finds no CMakeLists.txt. react/react-native#59589 (react/react-native@f6a5042c8445c29d169a8b0a641fdd5e47794ecd on main) strips the top folder whatever its name.

On 0.88-stable at 0a83e72f67d737569c2ac4bf3605126bbc79245a, Fantom's CI build (yarn workspace @react-native/fantom build) stops there:

> Task :packages:react-native:ReactAndroid:hermes-engine:configureBuildForHermesWithDebugger FAILED
CMake Error: The source directory "/react-native/packages/react-native/sdks/hermes" does not appear to contain CMakeLists.txt.

The same build on main gets past Hermes. To reproduce: ./fantom/reproduce.sh build 0.88-stable in https://github.com/YevheniiKotyrlo/react-native-fantom-reproducer.

Dominant language
JavaScript
Stars
429
Forks
11
Avg merge
4h 13m
Merged PRs (30d)
7

Getting set up

This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from reactwg/react-native-releases

All issues in reactwg/react-native-releases

Similar issues

More JavaScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.