-
Notifications
You must be signed in to change notification settings - Fork 4.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Moving Release Wiki to react-native-website #2961
Merged
Merged
Changes from 15 commits
Commits
Show all changes
16 commits
Select commit
Hold shift + click to select a range
5e9453c
doc: add release wiki
Megatron4537 d82aa0d
Merge branch 'main' of github.com:Megatron4537/react-native-website i…
Megatron4537 c21ef7f
fix: CI lint & link anchors
Megatron4537 7142395
fix: changed sidebar and pages & fixed typos
Megatron4537 f381d7a
style: ci lint
Megatron4537 5ad77f4
fix: moved community pages to unversioned folder
Megatron4537 9ed2743
fix: contributing docs folder
Megatron4537 88223ee
restructure, rename pages, tweaks and fixes
Simek 8d46201
simplify sidebar, update more links
Simek 81c000e
revert unintended change
Simek 538fe09
rename how-to page, other small tweaks
Simek ba71c08
update page titles
Simek 35e0483
Merge branch 'main' of https://github.com/facebook/react-native-websi…
Simek ce28a7f
one more typo
Simek 26fdadf
rename sidebar file, remove redundant field
Simek 10fdf03
add common config fields
Simek File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
--- | ||
title: How to contribute | ||
description: React Native Community | ||
--- | ||
|
||
# How to contribute to React Native | ||
|
||
Thank you for your interest in contributing to the React Native! From commenting on and triaging issues, to reviewing and sending Pull Requests, all contributions are welcome. We aim to build a vibrant and inclusive [ecosystem of partners, core contributors, and community](https://github.com/facebook/react-native/blob/main/ECOSYSTEM.md) that goes beyond the main React Native GitHub repository. | ||
|
||
The [Open Source Guides](https://opensource.guide/) website has a collection of resources for individuals, communities, and companies who want to learn how to run and contribute to an open source project. Contributors and people new to open source alike will find the following guides especially useful: | ||
|
||
- [How to Contribute to Open Source](https://opensource.guide/how-to-contribute/) | ||
- [Building Welcoming Communities](https://opensource.guide/building-community/) | ||
|
||
### Code of Conduct | ||
|
||
As a reminder, all contributors are expected to adhere to the [Code of Conduct](https://github.com/facebook/react/blob/main/CODE_OF_CONDUCT.md). | ||
|
||
## Ways to Contribute | ||
|
||
Please see our [Contributing Guide](https://github.com/facebook/react-native/blob/main/CONTRIBUTING.md) in the main React Native repository. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,170 @@ | ||
--- | ||
id: release-candidate-minor | ||
title: Release Minor Candidate | ||
--- | ||
|
||
This document goes over steps to run different types of React Native release updates. It is intended audience is for those in relevant release roles. | ||
|
||
### Pre-requisites | ||
|
||
- Write access to [react-native](https://github.com/facebook/react-native) repository. | ||
- Your CircleCI personal API token. See [here](https://circleci.com/docs/2.0/managing-api-tokens/#creating-a-personal-api-token) on how to set one. | ||
- If testing, follow [pre-requisites for testing](/contributing/release-testing#pre-requisites). | ||
|
||
### Creating 0.{minor}.0-rc.0 | ||
|
||
- Create the release branch in `react-native` repo with the appropriate name (usually `0.X-stable`). | ||
|
||
```bash | ||
git checkout main | ||
git pull origin main | ||
git checkout -b 0.68-stable | ||
git push origin 0.68-stable | ||
|
||
# This will walk you through what version you are releasing | ||
./scripts/bump-oss-version.js -v 0.68.0-rc.0 -t <YOUR_CIRCLE_CI_TOKEN> | ||
``` | ||
|
||
- Once you have run that script, head to CircleCI and you should see under the releases workflow, a `prepare-package-for-release` job. | ||
|
||
<figure> | ||
<img width="400" alt="CircleCI showing publish release" src="https://user-images.githubusercontent.com/1309636/150040711-cfbc2fe3-91eb-42b9-bd06-de2aa7fb94ea.png"/> | ||
<figcaption>CircleCI showing publish release.</figcaption> | ||
</figure> | ||
|
||
- This script runs and commits any changes and triggers a deploy job, `build_and_publish_npm_package`. | ||
- 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 verify `next` is expected release version. | ||
|
||
```bash | ||
npm view react-native | ||
... | ||
dist-tags: | ||
latest: 0.65.1 next: 0.66.0-rc.2 nightly: 0.0.0-f617e022c | ||
``` | ||
|
||
### 2. Create a PR of the changelog generator | ||
|
||
```bash | ||
# Run following with the stable release as base, and your rc.0 version | ||
npx @rnx-kit/rn-changelog-generator --base v[LATEST_STABLE]--compare v[YOUR_RC_0] \ | ||
--repo ~/react-native --changelog ~/react-native/CHANGELOG.md > NEW_CHANGES.md | ||
|
||
# example against 0.66.4 and 0.67.0-rc.0 | ||
npx @rnx-kit/rn-changelog-generator --base v0.66.4 --compare v0.67.0-rc.0 \ | ||
--repo ~/react-native --changelog ~/react-native/CHANGELOG.md > NEW_CHANGES.md | ||
``` | ||
|
||
- Prepend contents of `NEW_CHANGES.md` to `CHANGELOG.md`. | ||
- Create a pull request of this change to `react-native` repo and add the `Changelog` label. | ||
|
||
### 3. Create a GitHub Release | ||
|
||
- Create a [GitHub Release](https://github.com/facebook/react-native/releases) with this template and **check “Pre-Release” checkbox**. | ||
|
||
```markdown | ||
<!-- Template for pre-release GitHub release --> | ||
|
||
- <!-- TODO List out notable picks for this patch --> | ||
|
||
--- | ||
|
||
To test it, run: | ||
|
||
<!-- TODO Update with your version --> | ||
|
||
npx react-native init RN067RC5 --version 0.67.0-rc.5 | ||
|
||
--- | ||
|
||
You can participate in the conversation on the status of this release in the [working group](https://github.com/reactwg/react-native-releases/discussions). | ||
|
||
--- | ||
|
||
To help you upgrade to this version, you can use the [upgrade helper](https://react-native-community.github.io/upgrade-helper/) ⚛️ | ||
|
||
--- | ||
|
||
See changes from this release in the [changelog PR](https://github.com/facebook/react-native/labels/%F0%9F%93%9D%20Changelog) | ||
``` | ||
|
||
<figure> | ||
<img width="400" alt="Creating a GitHub Release" src="https://user-images.githubusercontent.com/1309636/133348648-c33f82b8-b8d2-474a-a06e-35a1fb8d18de.png"/> | ||
<figcaption>Creating a GitHub Release.</figcaption> | ||
</figure> | ||
|
||
### 4. Create a tracking discussion post | ||
|
||
Create a "Road to <YOUR_MINOR_VERSION>" discussion post in [`react-native-releases`](https://github.com/reactwg/react-native-releases/discussions): | ||
|
||
```markdown | ||
<!-- Template for a new minor release candidate --> | ||
<!-- Title: Road to <YOUR_VERSION> --> | ||
|
||
The branch cut has happened. | ||
|
||
## Notice | ||
|
||
<!-- TODO update the version --> | ||
|
||
- [Current release candidate: 0.68.0-rc.0][current-release] | ||
- Have an issue with current release candidate? [File an issue][issue-form] and we will triage. | ||
- Have a pick request for this release? Does it fall under our [pick request qualifications][release-faq]? If so please create a PR against the release branch and comment with the PR link | ||
- If you are release testing. Copy and fill [Test Checklist](/contributing/release-testing#test-checklist). | ||
|
||
#### Highlighted Changes in this release | ||
|
||
<!-- Add stand-out changes in this release, and link to changelog PR. --> | ||
|
||
- Checkout this [Changelog PR][changelog-pr] | ||
|
||
## [Release Process][release-processes] | ||
|
||
#### Checklist | ||
|
||
- [ ] [Changelog PR][changelog-pr] | ||
- [ ] Start a Google doc of blog post for release and invite contributors of release highlights to expand | ||
- [ ] Follow up on [release dependencies][release-dependencies] | ||
> When ready to publish stable | ||
- [ ] Ship changelog | ||
- [ ] Ship blog post | ||
- [ ] Notify `react-native-website` to ship new version | ||
|
||
#### Retrospective Topics | ||
|
||
<!-- List out pain points, issues to investigate that are not release-blocking to follow up on --> | ||
|
||
- | ||
|
||
## Release Status | ||
|
||
### Tracking 0.67.0-rc.1 | ||
|
||
#### Blocking issues for releasing 0.67.0-rc.1 | ||
|
||
- | ||
|
||
#### Picks for 0.67.0-rc.1 | ||
|
||
- | ||
|
||
[changelog-pr]: https://github.com/facebook/react-native/labels/%F0%9F%93%9D%20Changelog | ||
[current-release]: https://github.com/facebook/react-native/releases | ||
[changelog-wiki]: https://github.com/facebook/react-native/wiki/Release-Changelog | ||
[release-dependencies]: https://reactnative.dev/contributing/release-dependencies | ||
[release-faq]: https://reactnative.dev/contributing/release-faq | ||
[issue-form]: https://github.com/facebook/react-native/issues/new?assignees=&labels=Needs%3A+Triage+%3Amag%3A%2Cpre-release&template=release_blocker_form.yml | ||
[releases]: https://github.com/facebook/react-native/releases | ||
[release-processes]: https://reactnative.dev/contributing/how-to | ||
[upgrade-helper]: https://reactnative.dev/contributing/updating-upgrade-helper | ||
``` | ||
|
||
### 5. Verify that Upgrade Helper GitHub action has fired | ||
|
||
- You should see a [new publish job complete here](https://github.com/react-native-community/rn-diff-purge/actions). | ||
- If not, check out the guide on [how to update Upgrade Helper](/contributing/updating-upgrade-helper). | ||
|
||
### 6. Broadcast that release candidate is out | ||
|
||
- React Native Twitter. | ||
- Discord `#releases-coordination` channel. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
--- | ||
id: release-candidate-patch | ||
title: Release Patch Candidate | ||
--- | ||
|
||
### 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 and run `bump-oss-version` script | ||
|
||
```bash | ||
# update the stable branch with tags | ||
git pull origin <release-branch> --tags | ||
|
||
# cherry pick relevant commits | ||
git cherry-pick <commit> | ||
|
||
# once done picking, run the script to release | ||
./scripts/bump-oss-version.js | ||
``` | ||
|
||
### 2. Similar to cutting new branch, watch CircleCI to ensure right jobs are being triggered | ||
|
||
### 3. Update the relevant discussion post with the latest RC |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
--- | ||
id: release-dependencies | ||
title: Release Dependencies | ||
--- | ||
|
||
This table wants to highlight the various tooling that we need to pay attention to and potentially bump to ensure that everything works correctly - it could be that some versions need to be only changed/bumped in the [`template`](https://github.com/facebook/react-native/tree/main/template) folder. | ||
|
||
| Tool | Ping team ahead of branch cut? | Bump when... | Reference bump | Link to source | | ||
| --------------------- |----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| ------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------- | | ||
| Metro | Yes, ping Meta's Metro team - a new version needs to be cut too. | During RC phase of new minor, coordinated with RN CLI (see below). | [link](https://github.com/facebook/react-native/commit/cfdc4fed0d0ba7860d176c1715c0cc84bea643af) | [source](https://github.com/facebook/metro/tags) | | ||
| RN CLI | Yes, ping RN CLI maintainers - they need to do a new release that depends on new Metro version (from above), [like so](https://github.com/react-native-community/cli/pull/1442/files). | During RC phase of new minor, coordinated with Metro (see above). | [link](https://github.com/facebook/react-native/pull/31971/files) | [source](https://github.com/react-native-community/cli/tags) | | ||
| Hermes | Yes, ping Meta's Hermes team - a new version needs to be cut too. | During RC phase of new minor - the closer to the commit of the branch cut, the better. | [link](https://github.com/facebook/react-native/commit/1d6af14d6d6e5a7e3a773b581600b01934a7d442) | [source](https://github.com/facebook/hermes/tags) | | ||
| Flipper | No need, they release on their own schedule. | We just need to sync to the newest set of dependencies at the time of branch cut using this as [reference](https://github.com/facebook/flipper/blob/main/react-native/ReactNativeFlipperExample/ios/Podfile#L30). | [link](https://github.com/facebook/react-native/pull/31896) | [source](https://github.com/facebook/flipper/tags) | | ||
| Folly | No need, they release on their own schedule. | Usually this dependency gets kept up to date by Meta's internal dev loop so it should be necessary to bump at release cut. But it needs to be the same version that is imported via Flipper (Flipper-Folly) to avoid issues. | [link](https://github.com/facebook/react-native/commit/b0c8a4eee821ca0b22e166a2a38f2bd2f22a1abe) | [source](https://github.com/facebook/folly/tags) | | ||
| Jest | No need, they release on their own schedule. | This will be updated by the Meta engineers to stay aligned to the version used internally - so no relationship with the RN release cycle. | [link](https://github.com/facebook/react-native/commit/d6cd2e6559ff8698833dc277810e2e7e80af760a) | [source](https://github.com/facebook/jest/tags) | | ||
| Android SDK | Out of our control. | Needs to be clarified (kept up to date by internal team?). | [link](https://github.com/facebook/react-native/pull/32606/files) | [source](https://developer.android.com/studio/releases/platforms) | | ||
| Gradle | Out of our control. | Needs to be clarified (kept up to date by internal team? [example](https://github.com/facebook/react-native/commit/cd4c6659d3477a82f7bf14570ecdd6e9bfb9435e)). | [link](https://github.com/facebook/react-native/pull/32588) | [source](https://gradle.org/releases/) | | ||
| Android Gradle Plugin | Out of our control. | Needs to be clarified (kept up to date by internal team? [example](https://github.com/facebook/react-native/commit/cd4c6659d3477a82f7bf14570ecdd6e9bfb9435e)). | [link](https://github.com/facebook/react-native/pull/32589) | [source](https://developer.android.com/studio/releases/gradle-plugin) | | ||
| JSC | Out of our control. | Needs to be clarified. | [link](https://github.com/facebook/react-native/pull/31304) | [source](https://github.com/react-native-community/jsc-android-buildscripts/tags) | | ||
| CocoaPods | Out of our control. | Needs to be clarified. | [link](https://github.com/facebook/react-native/commit/c6907ee488d938d227682605d7a6ce60f460bfc2) | [source](https://github.com/CocoaPods/CocoaPods/tags) | |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It looks like this wiki page do not exist anymore, and link leads to wiki home. Any idea if this has this been moved somewhere else @lunaleaps? Maybe releases WG repo?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is the GitHub message I see when I try to access the link, which is a bit confusing:
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yea let's delete this. I don't think that page exists anymore and I also don't see it being referenced in the markdown.