You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Summary:
Now that tests are green, we can return to automatic publishing to npm based on git tags. As long as all tests are passing, deploying a new release of React Native is as easy as tagging a commit. I've updated `Releases.md` to reflect today's release process.
Future Work: Include information about updating the website, as this is no longer done automatically.
Closes#19715
Differential Revision: D8429834
Pulled By: hramos
fbshipit-source-id: 2c6f2c80ac43c4e6d20c01e06ba14a7e4b16180d
Circle CI will automatically run the tests and publish to npm with the version you have specified (e.g `0.50.0-rc`) and tag `next` meaning that this version will not be installed for users by default.
70
-
71
-
Go to [Circle CI](https://circleci.com/gh/facebook/react-native) and look for the build triggered by your push (e.g. _0.50-stable, [0.50.0] Bump version numbers_), then scroll down to the npm publish step to verify the package was published successfully (the build will be red if not).
64
+
Circle CI will automatically run the tests and publish to npm with the version you have specified (e.g `0.57.0-rc.0`) and tag `next` meaning that this version will not be installed for users by default.
72
65
73
66
### Step 3: Write the release notes
74
67
@@ -89,7 +82,9 @@ Sometimes commit messages might be really short / confusing - try rewording them
89
82
-`Fix logging reported by RUN_JS_BUNDLE` -> `Fix systrace logging of RUN_JS_BUNDLE event`
90
83
-`Fixes hot code reloading issue` -> `Fix an edge case in hot module reloading`
91
84
92
-
Before posting the list of changes, consider asking one of contributors for their opinion. Once everything is ready, post the release notes: https://github.com/facebook/react-native/releases
85
+
Open a pull request against CHANGELOG.md at https://github.com/react-native-community/react-native-releases and ask for feedback.
86
+
87
+
Once everything is ready, create a new release at https://github.com/facebook/react-native/releases and link to the release notes.
93
88
94
89
**Important**: For release candidate releases, make sure to check "This is a pre-release".
95
90
@@ -109,7 +104,7 @@ Now that the release is out in the open, go ahead and create a GitHub issue titl
109
104
110
105
-------------------
111
106
112
-
## How to release an RC update (e.g. 0.50.0-rc.1, 0.50.0-rc.2)
107
+
## How to release an RC update (e.g. 0.57.0-rc.1, 0.57.0-rc.2)
113
108
114
109
The release is now in the open, people are finding bugs, and fixes have landed in master. People have been nominating fixes in the issue you created above. Use your best judgment to decide which commits merit an RC update. It's a good idea to do a new RC release when several small and non-risky bugs have been fixed. Having a few RC releases can also help people bisect in case we cherry-pick a bad commit by mistake.
115
110
@@ -122,10 +117,10 @@ Follow these steps to check out the release branch:
122
117
123
118
```bash
124
119
git checkout <version_you_are_patching>-stable
125
-
# e.g. git checkout 0.50-stable
120
+
# e.g. git checkout 0.57-stable
126
121
127
122
git pull origin <version_you_are_patching>-stable
128
-
# e.g. git pull origin 0.50-stable
123
+
# e.g. git pull origin 0.57-stable
129
124
```
130
125
131
126
> If you don't have a local checkout of the release branch, you can run the following instead:
@@ -153,40 +148,31 @@ If everything worked, run the following to bump the version number:
Again, Circle CI will automatically run the tests and publish to npm with the version you have specified (e.g `0.57.0-rc.1`).
167
155
168
-
Again, Circle CI will automatically run the tests and publish to npm with the version you have specified (e.g `0.50.0-rc.1`).
169
-
170
-
### Step 6: Update the release notes
156
+
### Step 5: Update the release notes
171
157
172
-
Go to https://github.com/facebook/react-native/releases and find the release notes for this release candidate. Edit them so that they now point to the tag that you've just created. We want single release notes per version. For example, if there is v0.50.0-rc and you just released v0.50.0-rc.1, the release notes should live on the v0.50.0-rc.1 tag at https://github.com/facebook/react-native/tags
158
+
Go to https://github.com/facebook/react-native/releases and find the release notes for this release candidate. Edit them so that they now point to the tag that you've just created. We want single release notes per version. For example, if there is v0.57.0-rc and you just released v0.57.0-rc.1, the release notes should live on the v0.57.0-rc.1 tag at https://github.com/facebook/react-native/tags
173
159
174
160
-------------------
175
161
176
-
## How to do the final stable release (e.g. 0.50.0, 0.50.1)
162
+
## How to do the final stable release (e.g. 0.57.0, 0.57.1)
177
163
178
164
A stable release is promoted roughly a month after the release branch is cut (refer to the schedule above). The release may be delayed for several reasons, including major issues in the release candidate. Make sure that all bug fixes that have been nominated in your tracking issue have been addressed as needed. Avoid cherry-picking commits that have not been vetted in the release candidate phase at this point.
179
165
180
-
Once you are sure that the release is solid, perform the following steps. Note that they're similar to the steps you may have followed earlier when patching the release candidate, but we're not cherry-picking any additional commits at this point.
166
+
Once you are sure that the release is solid, perform the following steps. Note that they're similar to the steps you may have followed earlier when patching the release candidate, but we're not cherry-picking any additional commits at this point.
181
167
182
168
### Step 1: Check out the release branch
183
169
184
170
```bash
185
171
git checkout <version_you_are_patching>-stable
186
-
# e.g. git checkout 0.50-stable
172
+
# e.g. git checkout 0.57-stable
187
173
188
174
git pull origin <version_you_are_patching>-stable
189
-
# e.g. git pull origin 0.50-stable
175
+
# e.g. git pull origin 0.57-stable
190
176
```
191
177
192
178
> If you don't have a local checkout of the release branch, you can run the following instead:
As with the release candidate, Circle CI will automatically run the tests and publish to npm with the version you have specified (e.g `0.50.0`).
198
+
As with the release candidate, Circle CI will automatically run the tests and publish to npm with the version you have specified (e.g `0.57.0`).
222
199
223
-
Go to [Circle CI](https://circleci.com/gh/facebook/react-native) and look for the build triggered by your push (e.g. _0.50-stable, [0.50.0] Bump version numbers_), then scroll down to the npm publish step to verify the package was published successfully (the build will be red if not).
200
+
Go to [Circle CI](https://circleci.com/gh/facebook/react-native) and look for the build triggered by your push (e.g. _0.57-stable, [0.57.0] Bump version numbers_), then scroll down to the npm publish step to verify the package was published successfully (the build will be red if not).
224
201
225
202
This will now become the latest release, and will be installed by users by default. At this point, the website will be updated and the docs for this release will be displayed by default.
226
203
227
-
### Step 5: Update the release notes
204
+
### Step 4: Update the release notes
228
205
229
-
Once you see that the website is displaying the version that you have just created, you will need to update the release notes. Move the release notes from the release candidate, to the tag that you've just created. We want single release notes per version. For example, if there is v0.50.0-rc and later we release v0.50.0, the release notes should live on v0.50.0:
Go to https://github.com/facebook/react-native/releases and find the release notes for this release candidate. Edit them so that they now point to the tag that you've just created. We want single release notes per version. For example, if there is v0.57.0 and you just released v0.57.1, the release notes should live on the v0.57.1 tag at https://github.com/facebook/react-native/tags
231
207
232
208
For non-RC releases: Uncheck the box "This is a pre-release" and publish the notes.
0 commit comments