Update Release.md with latest details (#78285)

Update Release.md with latest details and PRs reference

Pull Request resolved: https://github.com/pytorch/pytorch/pull/78285
Approved by: https://github.com/malfet
This commit is contained in:
Andrey Talman 2022-05-26 01:19:04 +00:00 committed by PyTorch MergeBot
parent e9d0f5fb17
commit 46b0306c13

View file

@ -7,9 +7,9 @@
- [Cutting release branches](#cutting-release-branches)
- [`pytorch/pytorch`](#pytorchpytorch)
- [`pytorch/builder` / PyTorch domain libraries](#pytorchbuilder--pytorch-domain-libraries)
- [Making release branch specific changes](#making-release-branch-specific-changes)
- [Getting CI signal on release branches:](#getting-ci-signal-on-release-branches)
- [Drafting RCs (Release Candidates)](#drafting-rcs-release-candidates)
- [Making release branch specific changes for PyTorch](#making-release-branch-specific-changes-for-pytorch)
- [Making release branch specific changes for domain libraries](#making-release-branch-specific-changes-for-domain-libraries)
- [Drafting RCs (Release Candidates) for PyTorch and domain libraries](#drafting-rcs-release-candidates-for-pytorch-and-domain-libraries)
- [Release Candidate Storage](#release-candidate-storage)
- [Cherry Picking Fixes](#cherry-picking-fixes)
- [Promoting RCs to Stable](#promoting-rcs-to-stable)
@ -60,19 +60,24 @@ Following Requirements needs to be met prior to final RC Cut:
Release branches are typically cut from the branch [`viable/strict`](https://github.com/pytorch/pytorch/tree/viable/strict) as to ensure that tests are passing on the release branch.
There's a convenience script to create release branches from current `viable/strict` (from root `pytorch/pytorch`):
There's a convenience script to create release branches from current `viable/strict`. Perform following actions :
* Perform a fresh clone of pytorch repo using
```bash
git clone git@github.com:pytorch/pytorch.git
```
* Execute following command from PyTorch repository root folder:
```bash
DRY_RUN=disabled scripts/release/cut-release-branch.sh
```
This script should create 2 branches:
* `release/{MAJOR}.{MINOR}`
* `orig/release/{MAJOR}.{MINOR}`
### `pytorch/builder` / PyTorch domain libraries
Convenience script can also be used domains as well as `pytorch/builder`
*Note*: Release branches for individual domain libraries should be created after first release candidate build of PyTorch is available in staging channels (which happens about a week after PyTorch release branch has been created). This is absolutely required to allow sufficient testing time for each of the domain library. Domain libraries branch cut is performed by Domain Library POC.
Builder branch cut should be performed at the same time as Pytorch core branch cut. Convenience script can also be used domains as well as `pytorch/builder`
> NOTE: RELEASE_VERSION only needs to be specified if version.txt is not available in root directory
@ -80,32 +85,32 @@ Convenience script can also be used domains as well as `pytorch/builder`
DRY_RUN=disabled GIT_BRANCH_TO_CUT_FROM=main RELEASE_VERSION=1.11 scripts/release/cut-release-branch.sh
```
### Making release branch specific changes
### Making release branch specific changes for PyTorch
These are examples of changes that should be made to release branches so that CI / tooling can function normally on
them:
* Update backwards compatibility tests to use RC binaries instead of nightlies
* Example: https://github.com/pytorch/pytorch/pull/40706
* Example: https://github.com/pytorch/pytorch/pull/77983 and https://github.com/pytorch/pytorch/pull/77986
* A release branches should also be created in [`pytorch/xla`](https://github.com/pytorch/xla) and [`pytorch/builder`](https://github.com/pytorch/builder) repos and pinned in `pytorch/pytorch`
* Example PR (CircleCI, to be removed): https://github.com/pytorch/pytorch/pull/65433
* Example PR (GHA): https://github.com/pytorch/pytorch/pull/72739
These are examples of changes that should be made to the *default* branch after a release branch is cut
* Nightly versions should be updated in all version files to the next MINOR release (i.e. 0.9.0 -> 0.10.0) in the default branch:
* Example: https://github.com/pytorch/pytorch/pull/65435
* Example: https://github.com/pytorch/pytorch/pull/77984
### Getting CI signal on release branches:
### Making release branch specific changes for domain libraries
Create a PR from `release/{MAJOR}.{MINOR}` to `orig/release/{MAJOR}.{MINOR}` in order to start CI testing for cherry-picks into release branch.
Domain library branch cut is done a week after branch cut for the `pytorch/pytorch`. The branch cut is performed by the Domain Library POC.
After the branch cut is performed, the Pytorch Dev Infra memeber should be informed of the branch cut and Domain Library specific change is required before Drafting RC for this domain library.
Example:
* https://github.com/pytorch/pytorch/pull/51995
Follow these examples of PR that updates the version and sets RC Candidate upload channel:
* torchvision : https://github.com/pytorch/vision/pull/5400
* torchaudio: https://github.com/pytorch/audio/pull/2210
## Drafting RCs (Release Candidates)
## Drafting RCs (Release Candidates) for PyTorch and domain libraries
To draft RCs, a user with the necessary permissions can push a git tag to the main `pytorch/pytorch` git repository.
To draft RCs, a user with the necessary permissions can push a git tag to the main `pytorch/pytorch` git repository. Please note: exactly same process is used for each of the domain library
The git tag for a release candidate must follow the following format:
```
@ -114,13 +119,25 @@ v{MAJOR}.{MINOR}.{PATCH}-rc{RC_NUMBER}
An example of this would look like:
```
v1.8.1-rc1
v1.12.0-rc1
```
You can use following commands to perform tag from pytorch core repo (not fork):
* Checkout and validate the repo history before tagging
```
git checkout release/1.12
git log --oneline
```
* Perform tag and push it to github (this will trigger the binary release build)
```
git tag -f v1.12.0-rc2
git push origin v1.12.0-rc2
```
Pushing a release candidate should trigger the `binary_builds` workflow within CircleCI using [`pytorch/pytorch-probot`](https://github.com/pytorch/pytorch-probot)'s [`trigger-circleci-workflows`](trigger-circleci-workflows) functionality.
This trigger functionality is configured here: [`pytorch-circleci-labels.yml`](https://github.com/pytorch/pytorch/blob/master/.github/pytorch-circleci-labels.yml)
To view the state of the release build, please navigate to [HUD](https://hud.pytorch.org/hud/pytorch/pytorch/release%2F1.12). and make sure all binary builds are successful.
### Release Candidate Storage
Release candidates are currently stored in the following places: