22
33Here's how Rust is currently released:
44
5+ ## Promote beta to stable (T-6 days, Friday the week before)
6+
7+ Open a PR bumping the version number in ` src/bootstrap/channel.rs ` . r+
8+ rollup=never this PR.
9+
10+ Mark it as rollup=never, because if it lands in a rollup as * not* the first PR
11+ then other pull requests in that rollup will be incorrectly associated with the
12+ prior release.
13+
514## Promote beta to stable (T-3 days, Monday)
615
716Promote beta to stable. Temporarily turn off GitHub branch protection for the
@@ -50,6 +59,14 @@ docker exec -d -it rcs bash -c 'promote-release /tmp/stable stable /data/secrets
5059
5160## Promote master to beta (T-2 days, Tuesday)
5261
62+ We need to find out the parent commit in which the PR opened last Monday merged.
63+
64+ Go to that PR, and find the "bors merged commit $SHA into rust-lang: master at the bottom.
65+
66+ Locally, run ` export BRANCH_POINT= ` git rev-parse $SHA^` in the rust-lang/rust
67+ checkout. This should be bors-authored merge into master of the PR before the
68+ version bump merged.
69+
5370Create a new branch on ` rust-lang/cargo ` for the new beta. Here, ` rust-lang ` is
5471the remote for https://github.com/rust-lang/rust.git . Replace ` YY ` with the
5572minor version of master. First determine the branch point for cargo in
@@ -58,7 +75,7 @@ minor version of master. First determine the branch point for cargo in
5875``` sh
5976$ cd rust
6077$ git fetch rust-lang
61- $ CARGO_SHA=` git rev-parse rust-lang/master :src/tools/cargo`
78+ $ CARGO_SHA=` git rev-parse $BRANCH_POINT :src/tools/cargo`
6279$ cd src/tools/cargo
6380$ git branch rust-1.YY.0 $CARGO_SHA
6481$ git push origin rust-1.YY.0
@@ -67,15 +84,12 @@ $ git push origin rust-1.YY.0
6784You'll need to temporarily disable branch protection on GitHub to push the new
6885branch.
6986
70- In theory one day we'll do the same for rust-lang/rls, but for now we haven't
71- done this yet.
72-
7387Temporarily disable banch protection on GitHub for the ` beta ` branch of the Rust
7488repo. Promote rust-lang/rust's master branch to beta as with yesterday:
7589
7690``` sh
7791$ git fetch rust-lang
78- $ git push rust-lang rust-lang/master :beta -f
92+ $ git push rust-lang $BRANCH_POINT :beta -f
7993```
8094
8195Re-enable branch protection on GitHub. Send a PR to the freshly created beta
@@ -91,19 +105,13 @@ branch of rust-lang/rust which:
91105 - Uncomment ` dev: 1 `
92106- Update src/ci/run.sh to pass "--release-channel=beta".
93107
94- Note that you probably don't want to update the RLS if it's working, but if it's
95- not working beta won't land and it'll need to get updated. After this PR merges
96- (through @bors ) the beta should be automatically released.
97-
98108## Master bootstrap update (T-1 day, Wednesday)
99109
100- Write a new blog post, update rust-www, and update rust-forge. Submit PRs for
101- tomorrow.
102-
103110Send a PR to the master branch to:
104111
105112- modify src/stage0.txt to bootstrap from yesterday's beta
106- - modify src/bootstrap/channel.rs with the new version number
113+ - Remove ` cfg(stage0) ` annotated items
114+ - Replace ` cfg(not(stage0)) ` with nothing
107115
108116## Release day (Thursday)
109117
@@ -154,18 +162,6 @@ Decide on a time to do the release, T.
154162
155163Bask in your success.
156164
157- ## Update dependencies (T+1 day, Friday)
158-
159- In the repo:
160-
161- ``` bash
162- $ cd src
163- $ cargo update
164- ```
165-
166- The very ambitious can use https://crates.io/crates/cargo-outdated and update
167- through breaking changes.
168-
169165## Publishing a nightly based off a try build
170166
171167Sometimes a PR requires testing how it behaves when downloaded from rustup, for
0 commit comments