Important
Only Meta release crew should publish Hermes releases. If you are a community releaser that is picking a Hermes pick request, ping a Meta release crew member to publish the Hermes release.
Prerequisites: You'll need access to the Hermes repo. You can give yourself permission via the Meta Internal OSS dashboard.
Create a Hermes release branch of the form rn/<major>.<minor>-stable
from latest main
.
Check out the Hermes release branch for your minor. It should be of the form rn/<major>.<minor>-stable
.
Tip
If one doesn't exist and you are not releasing a release candidate, use the latest tag for your minor. Check out that tag, and create the branch of the form rn/<major>.<minor>-stable
. We should be creating these during release candidate cuts.
Important
If you cutting a release candidate, skip this step
Pick the relevant commits onto that branch. The pick requests should be from main
and no other branch on Hermes.
Push the picks to the remote branch.
Head to the Publish Tag workflow in the Hermes repo.
Click the "Run Workflow" button. Run the workflow from main
, input the React Native version you are releasing (ex. 0.73.5), and the SHA of the head of your Hermes release branch.
Once the workflow is complete, it will create a new tag with the release you inputed and SHA. See Hermes tags
Using the newly generated Hermes tag run the following script on the React Native release branch:
# Replace <the_hermes_tag> with the tag that will look like 'hermes-2022-07-20-RNv0.70.0-bc97c5399e0789c0a323f8e1431986e207a9e8ba'
./packages/react-native/scripts/hermes/bump-hermes-version.js -t <the_hermes_tag>
Add and commit the extra file that got created at packages/react-native/sdks/hermes/.hermesversion. Now you can continue with the rest of your React Native release.