-
Notifications
You must be signed in to change notification settings - Fork 24.4k
Release Process
Luna edited this page Oct 11, 2021
·
19 revisions
The following will describe the steps shown in the diagram.
- Write access to react-native repo
- Write access for
react-native-community/releases
(this repo) to label, update issues. - If testing, follow pre-requisites for testing
- Create the stable branch in
react-native
repo with the appropriate name. Usually0.X-stable
git checkout main git pull git checkout -b 0.42-stable git push origin 0.42-stable # your remote alias might be different
- Create a changelog of the release branch. Instructions here. Example of 0.66 changelog
- Create a new tracking issue and update to new target release. This is now where we’ll track incoming cherry-pick requests and update to any release-blocking issues. See 0.66 issue as reference
- Ask the contributors involved in the highlights of this version to start preparing a blog-post to accompany the release. Can use Google Doc for collaboration at first, then convert to PR against react-native-website
- See dependencies and coordinate if these projects need to release a new version.
- ex. Hermes will probably need another release.
- See definition: What qualifies as release blocking?
- Ask people to create release-blocking issues when something comes up.
- Add the
Needs: React Native Attention
label if needs FB attention.
-
Qualified pick requests made on the tracking issues, fixes from release issues get cherry-picked in.
react-native(rc-branch)$ git cherry-pick <hash>
- On your local checkout of the release branch, make sure you have no local changes and run
scripts/bump-oss-version
.- This script will update the version, commit, and push those changes to the remote branch.
- It will also create a tag of the version you supply.
react-native$ ./scripts/bump-oss-version.js -v 0.X.0-rc.Y # ex. 0.66.0-rc.2
- Once those changes have been pushed, CircleCI will start a job to publish the release via npm.
- Note: Look under “All Branches” to find the publish job. CircleCI does not give a way to search for these jobs.
- Once complete you should be able to run
npm view react-native
and verifynext
is expected release version$ npm view react-native .... dist-tags: latest: 0.65.1 next: 0.66.0-rc.2 nightly: 0.0.0-f617e022c
- After publishing, create a “Github Release”.
-
Select the tag you just created
-
Check the
pre-release
checkbox. -
You can copy the template used for this release candidate patch
-
- After creating Github release, update the upgrade-helper
- Broadcast that the release candidate is out
- On tracking issue
- Discord #releases channel
- Twitter?
- See dependencies and make sure their releases are picked in.
- Make sure these are qualified blockers
- Changelog PR is ready to land
- Blog post is drafted and looks good
- Publish the stable branch as a stable version. (Similar to step 4, only version change to stable)
react-native$ ./scripts/bump-oss-version.js -v 0.X.0 # ex. 0.66.0 react-native$ npm view react-native # verify
- Create a patch release issue to track issues in the stable release.
- Create a Github Release (similar to step 4) but no longer a
Pre-release
. Example Github release - Upgrade the upgrade helper
- Make a PR with the new release of the website documentation by following the steps in their guide, then merge it so it will show show the new version as the currently available version.
- You can verify that it's defaulting correctly by checking the website-config file.
- Point people to this form (TODO)
- Is the testing any different for patch releases (TODO)
- Anything different than #4?
React Native • Contributor Guide • Getting Started • Website
How to Contribute
- How to File an Issue ↗
- Triaging GitHub Issues ↗
- How to Label an Issue ↗
- Managing Pull Requests ↗
- How to Contribute Code ↗
- How to Open a Pull Request ↗
- How to Build from Source ↗
Tests
Releases
More Resources
- Contributor Guide ↗
- Code of Conduct ↗
- Contributor License Agreement ↗
- Discussions and Proposals ↗
- Bots Reference ↗
Documentation