mirror of
https://github.com/status-im/react-native.git
synced 2025-02-24 15:18:10 +00:00
Update Releases.md
This commit is contained in:
parent
f4e3512076
commit
e56efc7df8
84
Releases.md
84
Releases.md
@ -1,56 +1,88 @@
|
||||
The list of releases with notes can be found at:
|
||||
https://github.com/facebook/react-native/releases
|
||||
|
||||
Future releases:
|
||||
|
||||
- **0.17 branch cut**, 0.17.0-rc - beginning of **week of Dec 7**
|
||||
- 0.17.0 - Dec 17
|
||||
- (Holiday break)
|
||||
- **0.18 branch cut**, 0.18.0-rc - beginning of **week of Jan 4**
|
||||
- 0.18.0 - Jan 14
|
||||
- **0.19 branch cut**, 0.19.0-rc - beginning of **week of Jan 18**
|
||||
- 0.19.0 - Jan 28
|
||||
- ...
|
||||
|
||||
## Cut a release branch
|
||||
|
||||
- Make sure iOS and Android Getting Started flow works on master.
|
||||
- Publish to Maven Central:
|
||||
- Edit `ReactAndroid/gradle.properties`
|
||||
- Edit `ReactAndroid/release.gradle` and uncomment Javadoc generation
|
||||
- `./gradlew :ReactAndroid:installArchives` (`java -version` should print 1.7 which is currently needed for Javadoc generation)
|
||||
- Log into Sonatype and go to [Staging upload](https://oss.sonatype.org/#staging-upload)
|
||||
- Select Artifact(s) with a POM (to publish to a local Maven repo for testing run `./gradlew :ReactAndroid:installArchives`)
|
||||
- Add all files: .aar, sources jar, javadoc jar, .asc for everything (including the POM file)
|
||||
- `git checkout -b 0.12-stable`
|
||||
Note: replace 0.12 in all the commands below with the version you're releasing :)
|
||||
|
||||
First, set up Sinopia (only need to do this once): https://github.com/facebook/react-native/tree/master/react-native-cli
|
||||
|
||||
Make absolutely sure basic iOS and Android workflow works on master:
|
||||
- `cd react-native`
|
||||
- `git pull`
|
||||
- `git checkout -b 0.12-stable`
|
||||
- Edit `ReactAndroid/gradle.properties`, set `VERSION_NAME=0.12.0`
|
||||
- Edit `ReactAndroid/release.gradle`, uncomment Javadoc generation (the line `// archives androidJavadocJar`)
|
||||
- Make sure `java -version` prints 1.7.x, this is currently needed for Javadoc generation and Javadocs are required by Maven Central (we should make it work with Java 8)
|
||||
- Run `./gradlew :ReactAndroid:installArchives`, it will print a lot of Javadoc warnings, that's OK.
|
||||
- Check the artifacts were generated: `ls -al ~/.m2/repository/com/facebook/react/react-native/0.12.0/` should contain:
|
||||
- `react-native-0.17.0-javadoc.jar`, `react-native-0.17.0-sources.jar`, `react-native-0.17.0.aar`, `react-native-0.17.0.pom`
|
||||
- For each of the above also `.asc` file
|
||||
- In `package.json`, set version to e.g. `0.12.0-rc`.
|
||||
- In `React.podspec`, set version to e.g. `0.12.0-rc`.
|
||||
- In `local-cli/generator-android/templates/src/app/build.gradle` update the dependency to e.g. `com.facebook.react:react-native:0.12.+`
|
||||
- `git push origin 0.12-stable`
|
||||
- `npm publish`
|
||||
- Publish to sinopia:
|
||||
- `npm set registry http://localhost:4873/`, check that it worked: `npm config list` will show registry is set to localhost
|
||||
- In a separate shell, start sinopia. Run `sinopia`. If started successfully it will print: http address - http://localhost:4873/.
|
||||
- Make sure http://localhost:4873/ shows no old versions
|
||||
- `npm publish`
|
||||
- http://localhost:4873/ will show 0.12.0-rc
|
||||
- Test that everything works:
|
||||
- `cd /tmp`
|
||||
- `react-native init Zero12rc`
|
||||
- `cd Zero12rc`
|
||||
- Check that `package.json`, `android/app/build.gradle` have correct versions (`^0.12.0-rc`, `com.facebook.react:react-native:0.12.+`)
|
||||
- `open ios/Zero12rc.xcodeproj`
|
||||
- Hit the Run button in Xcode.
|
||||
- Packager should open in a new window, you should see the Welcome to React Native screen, Reload JS, try Chrome debugging - put a breakpoint somewhere in `index.ios.js` and Reload JS, Chrome debugger should stop on the breakpoint (we don't have tests for Chrome debugging)
|
||||
- Close the packager window, close Xcode
|
||||
- Start an Android emulator (ideally Genymotion, it's faster and more reliable than Google emulators)
|
||||
- `react-native run-android`
|
||||
- Test is the same way as on iOS, including Chrome debugging
|
||||
|
||||
## Do a release
|
||||
|
||||
To release e.g. 0.12 to npm:
|
||||
- Revert the Javadoc change in `ReactAndroid/release.gradle`
|
||||
- `git commit -am` "[0.12-rc] Bump version numbers"
|
||||
- `git push origin 0.12-stable`
|
||||
|
||||
(For admins, here's the command to promote someone)
|
||||
Publish to Maven Central (NOTE we could get rid of this whole section publishing binaries to npm instead):
|
||||
- Log into Sonatype and go to [Staging upload](https://oss.sonatype.org/#staging-upload). You'll need to get permissions for this by filing a ticket explaining you're a core contributor to React Native. [Example ticket](https://issues.sonatype.org/browse/OSSRH-11885).
|
||||
- Select Artifact(s) with a POM (to publish to a local Maven repo for testing run `./gradlew :ReactAndroid:installArchives`)
|
||||
- Add all files: .aar, sources jar, javadoc jar, .asc for everything (including the POM file)
|
||||
- Wait a few hours until you see the version has propagated to [JCenter](https://bintray.com/bintray/jcenter/com.facebook.react%3Areact-native/view)
|
||||
|
||||
To release 0.12-rc to npm:
|
||||
|
||||
(You need to be a maintainer of the repo. For admins, here's the command to promote someone)
|
||||
|
||||
```
|
||||
npm owner add <user> react-native
|
||||
```
|
||||
|
||||
When you are ready to do a new release.
|
||||
|
||||
- Update package.json and React.podspec with the new number
|
||||
|
||||
```
|
||||
git tag v0.6.0-rc 0.6-stable # don't forget the `v` at the beginning!
|
||||
git tag v0.12.0-rc 0.12-stable # don't forget the `v` at the beginning!
|
||||
git push --tags
|
||||
```
|
||||
|
||||
- Publish to GitHub
|
||||
|
||||
```
|
||||
git push git push origin 0.12-stable
|
||||
```
|
||||
|
||||
- Publish to npm
|
||||
|
||||
```
|
||||
npm publish
|
||||
# Only for non-rc releases:
|
||||
npm dist-tag add react-native@0.12.0 latest
|
||||
```
|
||||
|
||||
- Publish to CocoaPods (it takes several minutes to validate the podspec)
|
||||
- Upgrade tags to a release by going to https://github.com/facebook/react-native/tags
|
||||
- Click "Add Notes to release"
|
||||
- Click Publish
|
Loading…
x
Reference in New Issue
Block a user