Skip to main content

Release Stable Patch

Pre-requisites​

  • You have some pick requests that qualify for a patch release and people have agreed it’s good to release a patch.

1. Check out the latest version from release branch​

# Be on relevant release branch
# update the stable branch with tags
git pull origin <release-branch> --tags

# cherry pick relevant commits
git cherry-pick <commit>

# once done picking, push changes to the remote
git push

2. Test the current changes​

Before continuing further, follow the testing guide to ensure the release doesn't have any major issues.

3. Run bump-oss-version script​

# run a script to bump the version
# You most likely **don't** want this release marked as "latest"
./scripts/bump-oss-version.js --version x.y.z-rc.x --token circle-ci-token

4. Verify Upgrade helper is updated​

5. Create a new patch discussion post using template below​

<!-- Template for new patch -->

# Should we release 0.67.1?

Current Release: [0.67.0](https://github.com/facebook/react-native/releases/tag/v0.67.0)

Conversations on this thread are limited:

- [major release issues](https://reactnative.dev/contributing/release-faq#what-is-release-blocking).
- [qualified cherry-pick requests](https://reactnative.dev/contributing/release-faq#what-is-a-qualified-pick-request) of commits on main that [did not make the previous patch version](https://reactnative.dev/contributing/release-faq#how-do-i-know-if-my-fixfeature-is-in-a-certain-release).

Please include a link to the specific commit on main to be cherry-picked, for example: [facebook/react-native@bd2b7d6](https://github.com/facebook/react-native/commit/20b0eba581a00e5e7e300f6377379b836617c147)

In other words, if you cannot point to a particular commit on main, then your request likely belongs as a new issue.
If the issue is a [major release issues](https://reactnative.dev/contributing/release-faq#what-is-release-blocking), please reference the issue here.

---

#### List of qualified picks

<!-- Keep these in chronological order in time of commit -->

1.

#### Local commits to backport to main

1.

6. Update previous discussion post​

  • Label it Released.
  • Update the title saying the patch has been released and link to new patch discussion.
  • Lock the discussion.

7. Create GitHub Release​

Use template below for the GitHub Release:

<!-- Template for a stable patch -->

<!-- You can run `npx @rnx-kit/rn-changelog-generator --base v0.66.0 --compare v0.66.1 --repo path-to-repository/react-native --changelog path-to-repository/react-native/CHANGELOG.md` to generate the markdown for the cherry-picked changes. Make sure to use the right tags in the command and create a new PR with the changes generated by the changelog generator. You can read more about the changelog generator [here](https://github.com/microsoft/rnx-kit/tree/main/incubator/rn-changelog-generator). -->

- TODO Enumerate picks.

---

You can participate in the conversation on the status of this release in this [discussion](TODO: your discussion link)

---

To help you upgrade to this version, you can use the [upgrade helper](https://react-native-community.github.io/upgrade-helper/) βš›οΈ

---

You can find the whole changelog history in the [changelog.md file](https://github.com/facebook/react-native/blob/main/CHANGELOG.md).

8. Upload prebuilt Hermes binary​

In the publish_release CI workflow, the build_hermes_macos step produces a tmp/hermes/output/hermes-runtime-darwin-vx.y.z.tar.gz artifact, for example here are the artifacts for 0.69.0 release. Download it and attach it to the GitHub release.