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β
- You should see a new publish job complete here which will be automatically triggered after a new tag is pushed to the
react-native
repository. - If not, check out the guide on how to update Upgrade Helper.
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.