Skip to content

Commit d14c6ba

Browse files
authored
Merge pull request #469 from pietroalbini/release-process
Update the release process to use the new promote-release
2 parents a5620be + 33727b5 commit d14c6ba

File tree

1 file changed

+35
-45
lines changed

1 file changed

+35
-45
lines changed

src/release/process.md

+35-45
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@ the prior release.
1313

1414
## Promote beta to stable (T-3 days, Monday)
1515

16-
Promote beta to stable. Temporarily turn off GitHub branch protection for the
17-
`stable` branch in rust-lang/rust repo. In your local Rust repo:
16+
Temporarily turn off GitHub branch protection for the `stable` branch in
17+
rust-lang/rust repo. In your local Rust repo:
1818

1919
```sh
2020
$ git fetch origin
@@ -30,31 +30,21 @@ on the stable branch making the following changes:
3030

3131
Once the PR is sent, r+ it and give it a high `p=1000`.
3232

33-
The stable build will **not** deploy automatically to prod. The
34-
rust-central-station repository is configured to upload to **dev** every hour if
35-
it detects a change. You should be able to browse changes in dev.
33+
After the PR is merged you'll need to start a **dev** release. [Obtain AWS CLI
34+
credentials][awscli] and run this command from the [simpleinfra] repository:
3635

37-
As soon as this build is done post a message to irlo asking for testing. The
38-
index is
39-
https://dev-static-rust-lang-org.s3.amazonaws.com/dist/2015-09-17/index.html and
40-
our URL is then https://dev-static.rust-lang.org/dist/2015-09-17/index.html.
41-
42-
Test rustup with
43-
44-
```sh
45-
RUSTUP_DIST_SERVER=https://dev-static.rust-lang.org rustup update stable
36+
```
37+
./start-release.py dev stable
4638
```
4739

48-
If something goes wrong, and we rebuild stable artifacts, you'll need to
49-
invalidate the dev-static bucket for RCS to re-release it.
40+
As soon as this build is done create a blog post on Inside Rust asking for
41+
testing. The index is
42+
https://dev-static.rust-lang.org/dist/YYYY-MM-DD/index.html.
5043

51-
1. Obtain AWS credentials (i.e., `aws-creds.py` from `rust-lang/simpleinfra`).
52-
1. Run the `invalidate-dev-static-stable.sh` script in `rust-lang/simpleinfra`.
53-
1. (optional) login to central station, and run the following. This starts the
54-
dev-static promotion immediately, vs. waiting till the next hour.
44+
Test rustup with:
5545

56-
```bash
57-
docker exec -d -it rcs bash -c 'promote-release /tmp/stable stable /data/secrets-dev.toml 2>&1 | logger --tag release-stable'
46+
```sh
47+
RUSTUP_DIST_SERVER=https://dev-static.rust-lang.org rustup update stable
5848
```
5949

6050
## Promote master to beta (T-2 days, Tuesday)
@@ -117,10 +107,11 @@ Send a PR to the master branch to:
117107

118108
Decide on a time to do the release, T.
119109

120-
- **T-30m** - This is on rust-central-station:
110+
- **T-30m** - Run the following command in a shell with [AWS
111+
credentials][awscli] in the [simpleinfra] repository:
121112

122113
```
123-
docker exec -d -it rcs bash -c 'promote-release /tmp/stable stable /data/secrets.toml 2>&1 | logger --tag release-stable-realz'
114+
./start-release.py prod stable
124115
```
125116

126117
That'll, in the background, schedule the `promote-release` binary to run on
@@ -162,38 +153,37 @@ Decide on a time to do the release, T.
162153

163154
Bask in your success.
164155

165-
## Publishing a nightly based off a try build
166-
167-
Sometimes a PR requires testing how it behaves when downloaded from rustup, for
168-
example after a manifest change. In those cases it's possible to publish a new
169-
nightly based off that PR on dev-static.rust-lang.org.
156+
## Rebuilding stable pre-releases
170157

171-
Once the try build finishes make sure the merge commit for your PR is at the
172-
top of [the `try` branch][rust-try], log into the rust-central-station server
173-
and run this command:
158+
If something goes wrong and we need to rebuild the stable artifacts, merge the
159+
PR on the `stable` branch of the [rust-lang/rust] repository. Once the commit
160+
is merged, issue the following command in a shell with [AWS
161+
credentials][awscli] on the [simpleinfra] repository:
174162

175163
```
176-
docker exec -d -it rcs bash -c 'PROMOTE_RELEASE_OVERRIDE_BRANCH=try promote-release /tmp/nightly-tmp nightly /data/secrets-dev.toml 2>&1 | logger --tag release-nightly-tmp'
164+
./start-release.py dev stable --bypass-startup-checks
177165
```
178166

179-
If the `try` branch doesn't contain the merge commit (because a new build
180-
started in the meantime) you can create a new branch pointing to the merge
181-
commit and run (replacing `BRANCH_NAME` with the name of the branch):
167+
## Publishing a nightly based off a try build
182168

183-
```
184-
docker exec -d -it rcs bash -c 'PROMOTE_RELEASE_OVERRIDE_BRANCH=BRANCH_NAME promote-release /tmp/nightly-tmp nightly /data/secrets-dev.toml 2>&1 | logger --tag release-nightly-tmp'
185-
```
169+
Sometimes a PR requires testing how it behaves when downloaded from rustup, for
170+
example after a manifest change. In those cases it's possible to publish a new
171+
nightly based off that PR on dev-static.rust-lang.org.
186172

187-
You can follow the build progress with:
173+
Once the try build finishes grab the merge commit SHA and run the following
174+
command in a shell with [AWS credentials][awscli] on the [simpleinfra]
175+
repository:
188176

189-
```
190-
sudo tail -n 1000 -f /var/log/syslog | grep release-nightly-tmp
177+
```sh
178+
./start-release.py dev nightly $MERGE_COMMIT_SHA
191179
```
192180

193-
Once the build ends it's possible to install the new nightly with:
181+
When the release process end you'll be able to install the new nightly with:
194182

195-
```
183+
```sh
196184
RUSTUP_DIST_SERVER=https://dev-static.rust-lang.org rustup toolchain install nightly
197185
```
198186

199-
[rust-try]: https://github.com/rust-lang/rust/commits/try
187+
[awscli]: /infra/docs/aws-access.md#using-the-aws-cli
188+
[rust-lang/rust]: https://github.com/rust-lang/rust
189+
[simpleinfra]: https://github.com/rust-lang/simpleinfra

0 commit comments

Comments
 (0)