Skip to content

Release Managment

Tatiana Kapos edited this page Mar 14, 2025 · 2 revisions

Welcome to Releases! In the documentation you'll have the full timeline from start to finish on how we approach releases in RNW. Every release will have a release driver who pushes the release forward by following this document. It is recommended that the release driver is also part of the integration team.

  1. Regularly keep track of Meta's release timeline

The first step of any release is to regularly keep track of Meta's release timeline. In the past, this looked like attending a release sync meeting every two weeks but has changed to just keeping track of the release channel in the Discord. It is the release driver's responsibility to communicate information from this channel to the rest of the team. See the end of this document for common terminology.

What you need to keep track of

  • Any timeline of releases given
  • The date and react native version which they cut the 0.XX stable branch from. (this will need to be shared with the integration team)
  1. Create an issue on our Github labeled 0.XX Release Status.

This will keep track of all the work, where the release currently is, and assign out release duties to the team. The release driver will handle anything with <RELEASE DRIVER GITHUB USERNAME> and volunteers from the team will handle anything with <VOLUNTEER GITHUB USERNAME>. Copy and Paste the issue template below into the Github issue.

### Summary
0.XX Release Status
Upstream stable-branch: <LINK TO UPSTREAM STABLE BRANCH>

## Checklist
**Before Preview**
- [ ] Draft GitHub release notes from commit log (<RELEASE DRIVER GITHUB USERNAME>)
- [ ] Promote canary build to preview using [wiki instructions](https://github.com/microsoft/react-native-windows/wiki/How-to-promote-a-release) (<RELEASE DRIVER GITHUB USERNAME>)
- [ ] Push build to stable branch (<RELEASE DRIVER GITHUB USERNAME>)
- [ ] Enable CI schedule for new branch of [CI pipeline](https://dev.azure.com/ms/react-native-windows/_apps/hub/ms.vss-ciworkflow.build-ci-hub?_a=edit-build-definition&id=468&view=Tab_Triggers) (<RELEASE DRIVER GITHUB USERNAME>)
- [ ] Update [dashboard @ms](https://dev.azure.com/ms/react-native-windows/_dashboards/dashboard/28deb05d-f5bb-43e6-8aa9-36ad5e5476fb) with an entry for `CI ${version}` (<RELEASE DRIVER GITHUB USERNAME>)
- [ ] Add release schedule for the new stable branch of [publish pipline](https://dev.azure.com/microsoft/ReactNative/_apps/hub/ms.vss-ciworkflow.build-ci-hub?_a=edit-build-definition&id=63081&view=Tab_Triggers) (<RELEASE DRIVER GITHUB USERNAME>)
- [ ] Update [dashboard @microsoft](https://dev.azure.com/microsoft/ReactNative/_dashboards/dashboard/8ea77a11-83e2-493a-873f-9cd4562f213d) with an entry for `Publish ${version}` (<RELEASE DRIVER GITHUB USERNAME>)
- [ ] Update GitHub release notes to use manually curated notes instead of a changelog (<RELEASE DRIVER GITHUB USERNAME>)
- [ ] Post release notes internally (<RELEASE DRIVER GITHUB USERNAME>)
-----
**After Preview**
- [ ] Move most issues targeting current release (<RELEASE DRIVER GITHUB USERNAME>)
- [ ] Test updated gallery app using [wiki instructions](https://github.com/microsoft/react-native-gallery/wiki/Manual-Validation-Steps-for-RNW-Release) (<RELEASE DRIVER GITHUB USERNAME>)
- [ ] Check [CI Runs](https://github.com/microsoft/react-native-windows-samples/actions?query=workflow:*(Upgrade)) for Upgrading Sample Apps (<VOLUNTEER GITHUB USERNAME>)
- [ ] Do a pass on API Docs using [wiki instructions](https://github.com/microsoft/react-native-windows/wiki/API-documentation#validating-api-docs-for-a-release) (<RELEASE DRIVER GITHUB USERNAME>)
- [ ] Integrate any applicable patch/prerelease releases for React Native (<RELEASE DRIVER GITHUB USERNAME>)
-----
**Before Release**
- [ ] Ensure doc issues are addressed (<RELEASE DRIVER GITHUB USERNAME>)
- [ ] Promote `latest` build to `legacy` using [wiki instructions](https://github.com/microsoft/react-native-windows/wiki/How-to-promote-a-release#promoting-a-preview-to-latest) (<RELEASE DRIVER GITHUB USERNAME>)
-----
**Release**
- [ ] Update preview release notes with any changes from cherry-picked PRs (<RELEASE DRIVER GITHUB USERNAME>)
- [ ] Update Sample Apps to 0.75 (<VOLUNTEER GITHUB USERNAME>)
- [ ] Update React Native Gallery (<RELEASE DRIVER GITHUB USERNAME>)
- [ ] Publish Updated Gallery to Store (<VOLUNTEER GITHUB USERNAME>)
- [ ] Promote `preview` build to `latest` using [wiki instructions](https://github.com/microsoft/react-native-windows/wiki/How-to-promote-a-release) (<RELEASE DRIVER GITHUB USERNAME>)
- [ ] Update GitHub release notes to use manually curated notes instead of a changelog (<RELEASE DRIVER GITHUB USERNAME>)
- [ ] [Update website](https://github.com/microsoft/react-native-windows-samples/tree/main/website#cutting-documentation-for-a-new-react-native-windows-release) (<RELEASE DRIVER GITHUB USERNAME>)
- [ ] Send out internal release announcement (<RELEASE DRIVER GITHUB USERNAME>)
- [ ] Update CI to use /apiVersion 0.XX (<RELEASE DRIVER GITHUB USERNAME>) -- After Website Updated
- [ ] Ensure Accessibility is tested through updated Gallery (<RELEASE DRIVER GITHUB USERNAME>)

Common Terminology

  • RCs - Release Candidates
  • Golden RCs - The final release candidate before the release.