Uh oh!
There was an error while loading. Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork 6.3k
update release related docs page#3240
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
Merged
Uh oh!
There was an error while loading. Please reload this page.
Merged
Changes from all commits
Commits
Show all changes
9 commits
Select commit
Hold shift + click to select a range
d2e1d46
update crew composition and remove testers/supporters
kelset 6ec446c
add note about testing async
kelset 54b03c6
Update website/contributing/release-roles-responsibilites.md
kelset 7038df2
Update website/contributing/release-roles-responsibilites.md
kelset b8cb9f5
refactor note into a snipper
kelset 73e77d9
Update website/contributing/release-roles-responsibilites.md
kelset e7ad91e
yarnlock change?
kelset 8bc17eb
clean up document based on feedback
kelset dce22c4
more words at the start
kelset File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Uh oh!
There was an error while loading. Please reload this page.
Jump to
Jump to file
Failed to load files.
Loading
Uh oh!
There was an error while loading. Please reload this page.
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or 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,3 @@ | ||
| :::info | ||
| Since testing is a time consuming activity (>1 hrs) it is recommended that the release crew coordinates on the steps above then do testing on at least two separate systems in an async way. | ||
| ::: |
This file contains hidden or 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
This file contains hidden or 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
This file contains hidden or 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 |
|---|---|---|
| @@ -5,24 +5,21 @@ title: Roles and Responsibilities | ||
| Here we set guidelines to apply the "dividi et impera" approach to React Native releases: it is an involved process and we need to clarify the work to allow for easier rotations of folks in various positions. | ||
| The roles should be imagined as "concentric", with #1 in the centre: this means that anything in role #3 can be done by #2 or #1, and anything on role #2 can be done by #1. | ||
| In a standard situation, we expect that the Release Crew is composed of 2+2 releasers (two people from the community, two from Meta). Organically, the Release Crew will identify one Meta and Community drivers that will lead the effort, but that can change based on day-to-day availability of the members. | ||
| The goal of this structure is that #1 doesn’t have to do everything: to do so the suggestion is to at least always have a person per each role in each release. | ||
| A Release Crew effort starts with the work on a new minor; meaning, at least one week ahead of the branch cut. It is part of the current Release Crew responsibilities to identify when to "pass the baton" to the next one. | ||
| --- | ||
| ## Release Role #1: Meta Releasers (x2) | ||
| ## Release Role #1: Meta Releaser | ||
| ### Details | ||
| Two sub-roles: | ||
| - 2 people per each release | ||
| - 1 **release captain** as main point of contact per minor release (aiming for every 2 months) | ||
| - 1 **reverse shadow** per minor release — working on high-need tooling (perhaps from retrospective of previous minor release) and serves as backup if release captain is out | ||
| **Time commitment:** about 4 hours/week of work. | ||
| **Time commitment:** maximum 4 hours/week of work for each release captain and reverse shadow. | ||
| ### Release Captain Responsibilities | ||
| ### Role Responsibilities | ||
| - Drives the initial cut and sets up release scaffolding (re: blogpost draft, documentation bump, etc) | ||
| - Is informed of the pre-release & stable release status and any blocking issues and communicates to appropriate channels | ||
| @@ -32,41 +29,34 @@ Two sub-roles: | ||
| - the [pre-release](https://github.com/reactwg/react-native-releases/discussions/categories/releases) | ||
| - the [stable release (for patches)](https://github.com/reactwg/react-native-releases/discussions/categories/patches) | ||
| - Make final call on release decisions | ||
| - Decide when to promote pre-release to stable (in consult with **co-pilot** and **release supporters**) | ||
| - Decide when to promote pre-release to stable (in consult with the release crew) | ||
| - Decide when to release a patch on stable | ||
| - Ensures blocking issues have owners | ||
| - Escalate internally if release community is blocked by Meta-owned dependencies (metro, folly, flipper, hermes, etc) | ||
| - Coordinate with release co-pilot & supporters on any community library blockers (reanimated, cli, etc.) | ||
| - Coordinate with release crew on any community library blockers (reanimated, cli, etc.) | ||
| - Escalates security alerts | ||
| - When a security alert gets raised, communicates it quickly to relevant partners and internally | ||
| - If the security fix commit lands and it’s important, coordinates with the **copilot** on which stable branches should get the releases and produces the patch releases accordingly | ||
| - Can perform release or delegate release steps (as well as **release co-pilot/reverse shadow**) | ||
| ### Reverse Shadow Responsibilities | ||
| - Is informed of the minor release status and current stable status | ||
| - Supports release captain | ||
| - Fills in for release captain if current release captain is unavailable | ||
| - Actions on high-priority tooling, retrospective action items when relevant | ||
| - If the security fix commit lands and it’s important, coordinates with the release crew on which stable branches should get the releases and produces the patch releases accordingly | ||
| - Can perform release or delegate release steps | ||
| ### Who can fill it | ||
| - These roles must be filled by Meta engineers | ||
| - This role can only be filled by Meta engineers | ||
| --- | ||
| ## Release Role #2 : Release Copilot | ||
| ## Release Role #2: Community Releaser | ||
| ### Details | ||
| - 1 or 2 people (the second one being backup) | ||
| - 2 people per each release | ||
| **Time commitment:** can be more flexible and doesn’t have to align with minor release schedule, but we should update the release schedule when needed. Most likely, a couple hours per week. | ||
| **Time commitment:** flexible but, most likely, a few hours per week. | ||
| ### Responsibilities | ||
| ### Role Responsibilities | ||
| - Is informed of the minor release status and current stable status | ||
| - attends weekly release meeting | ||
| - prepares agenda & attends weekly release meeting | ||
| - updates and monitors #releases channel | ||
| - updates and monitors discussion in [react-wg/react-native-releases](https://github.com/reactwg/react-native-releases/discussions) discussion for both: | ||
| - the [pre-release](https://github.com/reactwg/react-native-releases/discussions/categories/releases) | ||
| @@ -82,54 +72,10 @@ Two sub-roles: | ||
| - Merge cherry-picks (as agreed with main releaser) | ||
| - Create the changelog & release entry in GH | ||
| - Makes documentation PR and blogpost PR | ||
| - Trigger the rn-diff-purge script to update upgrade-helper (this should be automated for 0.68 onwards) | ||
| - Help release testing via [local E2E script](/contributing/release-testing) | ||
| - Trigger the rn-diff-purge script to update upgrade-helper (this is automated for 0.68 onwards) | ||
| - Coordinates the [release testing](/contributing/release-testing) | ||
| - Runs a release retrospective after a new minor is released | ||
| ### Who can fill it | ||
| - This role can be filled by anyone with write access to the necessary repos (react-native) | ||
| --- | ||
| ## Release Role #3: Release Supporter | ||
| ### Details | ||
| - 0 to N **release supporters** | ||
| - 0 to N **release testers** | ||
| **Time commitment:** as much or as little as available by each person. | ||
| No strict coupling with any specific release - active supports and testers will be thanked in the release notes of versions they help with. | ||
| ### Release Supporter Responsibilities | ||
| - Surface release issues either on stable or release candidate by triaging [release issues in the react-native repo](https://github.com/facebook/react-native/labels?q=release) | ||
| - Some issues might not be tagged appropriately, so keep an eye out on incoming issues and surface any | ||
| - Watch the [release discussions repo](https://github.com/reactwg/react-native-releases/discussions) | ||
| - Help answer/debug/escalate issues | ||
| - Work on any [release improvements](https://github.com/facebook/react-native/projects/18) or if you see something that can be improved; please add! | ||
| - Help [test release candidates](/contributing/release-testing) with your configuration or improve it | ||
| - Engage/help out with discussion in the release related channels (#supporters-feed, #testers-feedback, #release-coordination) | ||
| ### Release Tester Responsibilities | ||
| This role is about helping test release candidates against your production app/workflows | ||
| - Helps surface release issues either on stable or release candidate by them testing out against their production apps and workflows | ||
| - Perhaps integrate either the [npm `next` or `nightly` versions of react-native](https://www.npmjs.com/package/react-native) in your app's CI and raise any issues that might come up. | ||
| - Support regression fixes if relevant | ||
| - Engage/help out with discussion in the release related channels (#supporters-feed, #testers-feedback, #release-coordination) | ||
| ### Who can fill it | ||
| - Anyone interested in supporting the React Native Open Source project and its releases! | ||
| - To start, you can participate in the [discussion repo](https://github.com/reactwg/react-native-releases/discussions) -- testing release candidates, surfacing any release issues you've seen or encountered yourself | ||
| - We also have some [discussions about improvements](https://github.com/reactwg/react-native-releases/discussions/categories/improvements) here as well as some issues related to [improving the release process in this project board](https://github.com/facebook/react-native/projects/18). | ||
| - If you are up for any specific tasks, let us know by commenting on it. | ||
| - For release testers, it's preferred (as it's very valuable) that you are able to test the releases against a production app in order to also verify non-trivial parts of the flow like archiving a release for the App Store. | ||
| #### Apply to the role | ||
| For both supporters and testers, you can let us know that you want to help out in this [dedicated discussion](https://github.com/reactwg/react-native-releases/discussions/11). We will provide you access to a dedicated RN Discord server that folks involved the releasers use to coordinate. | ||
kelset marked this conversation as resolved.
Uh oh!There was an error while loading. Please reload this page. | ||
This file contains hidden or 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
This file contains hidden or 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
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.
Uh oh!
There was an error while loading. Please reload this page.