Skip to content

Commit f07a11c

Browse files
authored
Merge pull request #431 from Mark-Simulacrum/promote-after-branching
Document new release branching
2 parents 60dd86d + ee02e3d commit f07a11c

File tree

1 file changed

+21
-25
lines changed

1 file changed

+21
-25
lines changed

src/release/process.md

Lines changed: 21 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,15 @@
22

33
Here'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

716
Promote 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+
5370
Create a new branch on `rust-lang/cargo` for the new beta. Here, `rust-lang` is
5471
the remote for https://github.com/rust-lang/rust.git. Replace `YY` with the
5572
minor 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
6784
You'll need to temporarily disable branch protection on GitHub to push the new
6885
branch.
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-
7387
Temporarily disable banch protection on GitHub for the `beta` branch of the Rust
7488
repo. 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

8195
Re-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-
103110
Send 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

155163
Bask 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

171167
Sometimes a PR requires testing how it behaves when downloaded from rustup, for

0 commit comments

Comments
 (0)