Skip to content

Commit a2acb7a

Browse files
Update the release process for latest automation (#638)
1 parent 0db292b commit a2acb7a

File tree

1 file changed

+21
-51
lines changed

1 file changed

+21
-51
lines changed

src/release/process.md

Lines changed: 21 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -18,55 +18,33 @@ time, but make sure the stable promotion lands first.
1818

1919
### Beta to stable
2020

21-
Temporarily turn off GitHub branch protection for the `stable` branch in
22-
rust-lang/rust repo. In your local Rust repo:
21+
[Obtain AWS CLI credentials][awscli] and run this command from the [simpleinfra] repository:
2322

24-
```sh
25-
$ git fetch origin
26-
$ git push origin origin/beta:stable -f
27-
# make sure that the release notes file is as fresh as possible
28-
$ git checkout origin/master -- RELEASES.md
23+
```
24+
./release-scripts/promote-release.py branches
2925
```
3026

31-
Re-enable branch protection for the `stable` branch. Send a PR to rust-lang/rust
32-
on the stable branch making the following changes:
27+
Once that's done, send a PR to the freshly created beta branch of rust-lang/rust
28+
which updates `src/ci/channel` to `beta`.
29+
30+
Also send a PR to rust-lang/rust targeting the new stable branch making the
31+
following changes:
3332

3433
- Update `src/ci/channel` to `stable`
34+
- Update release notes to the latest available copy
35+
* e.g., `git checkout origin/master -- RELEASES.md`
3536

36-
Once the PR is sent, r+ it and give it a high `p=1000`.
37+
Once the PRs are sent, r+ both and give them a high `p=1000` (for stable) and
38+
`p=10` for beta.
3739

3840
After the PR is merged you'll need to start a **dev** release. [Obtain AWS CLI
3941
credentials][awscli] and run this command from the [simpleinfra] repository:
4042

4143
```
42-
./start-release.py dev stable
44+
# The date here is of the actual, production, stable release. Used for the blog post.
45+
./release-scripts/promote-release.py release dev stable --release-date YYYY-MM-DD
4346
```
4447

45-
As soon as this build is done create a blog post on Inside Rust asking for
46-
testing. The index is
47-
https://dev-static.rust-lang.org/dist/YYYY-MM-DD/index.html.
48-
49-
Test rustup with:
50-
51-
```sh
52-
RUSTUP_DIST_SERVER=https://dev-static.rust-lang.org rustup update stable
53-
```
54-
55-
### Master to beta
56-
57-
Run this command in the [simpleinfra] repository, while in a rust-lang/rust
58-
checkout (branch doesn't matter):
59-
60-
```sh
61-
../simpleinfra/release-scripts/master-to-beta.sh
62-
```
63-
64-
This script sets up the new rust-lang/cargo branch and force pushes the appropriate
65-
commit to rust-lang/rust's beta branch.
66-
67-
Once that's done, send a PR to the freshly created beta branch of rust-lang/rust
68-
which updates `src/ci/channel` to `beta`.
69-
7048
## Master bootstrap update (T-2 day, Tuesday)
7149

7250
Send a PR to the master branch to:
@@ -99,24 +77,13 @@ Decide on a time to do the release, T.
9977
credentials][awscli] in the [simpleinfra] repository:
10078

10179
```
102-
./start-release.py prod stable
80+
./release-scripts/promote-release.py release prod stable
10381
```
10482

10583
That'll, in the background, schedule the `promote-release` binary to run on
10684
the production secrets (not the dev secrets). That'll sign everything, upload
10785
it, update the html index pages, and invalidate the CDN. Note that this takes
108-
about 30 minutes right now. Logs are in `/opt/rcs/logs`.
109-
110-
- **T-10m** - Locally, tag the new release and upload it. Use "x.y.z release" as
111-
the commit message.
112-
113-
```sh
114-
$ git tag -u FA1BE5FE 1.3.0 $COMMIT_SHA
115-
$ git push rust-lang 1.3.0
116-
```
117-
118-
After this [Update thanks.rust-lang.org][update-thanks] by triggering a build
119-
on GitHub Actions on the master branch.
86+
about 30 minutes right now. This will also push a signed tag to rust-lang/rust.
12087

12188
- **T-2m** - Merge blog post.
12289

@@ -149,9 +116,12 @@ is merged, issue the following command in a shell with [AWS
149116
credentials][awscli] on the [simpleinfra] repository:
150117

151118
```
152-
./start-release.py dev stable --bypass-startup-checks
119+
./release-scripts/promote-release.py release dev stable --bypass-startup-checks
153120
```
154121

122+
You'll also want to update the previously published blog post and internals post
123+
with the new information.
124+
155125
## Publishing a nightly based off a try build
156126

157127
Sometimes a PR requires testing how it behaves when downloaded from rustup, for
@@ -163,7 +133,7 @@ command in a shell with [AWS credentials][awscli] on the [simpleinfra]
163133
repository:
164134

165135
```sh
166-
./start-release.py dev nightly $MERGE_COMMIT_SHA
136+
./release-scripts/promote-release.py release dev nightly $MERGE_COMMIT_SHA
167137
```
168138

169139
When the release process end you'll be able to install the new nightly with:

0 commit comments

Comments
 (0)