2
2
3
3
Here's how Rust is currently released:
4
4
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
+
5
14
## Promote beta to stable (T-3 days, Monday)
6
15
7
16
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
50
59
51
60
## Promote master to beta (T-2 days, Tuesday)
52
61
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
+
53
70
Create a new branch on ` rust-lang/cargo ` for the new beta. Here, ` rust-lang ` is
54
71
the remote for https://github.com/rust-lang/rust.git . Replace ` YY ` with the
55
72
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
58
75
``` sh
59
76
$ cd rust
60
77
$ 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`
62
79
$ cd src/tools/cargo
63
80
$ git branch rust-1.YY.0 $CARGO_SHA
64
81
$ git push origin rust-1.YY.0
@@ -67,15 +84,12 @@ $ git push origin rust-1.YY.0
67
84
You'll need to temporarily disable branch protection on GitHub to push the new
68
85
branch.
69
86
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
-
73
87
Temporarily disable banch protection on GitHub for the ` beta ` branch of the Rust
74
88
repo. Promote rust-lang/rust's master branch to beta as with yesterday:
75
89
76
90
``` sh
77
91
$ git fetch rust-lang
78
- $ git push rust-lang rust-lang/master :beta -f
92
+ $ git push rust-lang $BRANCH_POINT :beta -f
79
93
```
80
94
81
95
Re-enable branch protection on GitHub. Send a PR to the freshly created beta
@@ -91,19 +105,13 @@ branch of rust-lang/rust which:
91
105
- Uncomment ` dev: 1 `
92
106
- Update src/ci/run.sh to pass "--release-channel=beta".
93
107
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
-
98
108
## Master bootstrap update (T-1 day, Wednesday)
99
109
100
- Write a new blog post, update rust-www, and update rust-forge. Submit PRs for
101
- tomorrow.
102
-
103
110
Send a PR to the master branch to:
104
111
105
112
- 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
107
115
108
116
## Release day (Thursday)
109
117
@@ -154,18 +162,6 @@ Decide on a time to do the release, T.
154
162
155
163
Bask in your success.
156
164
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
-
169
165
## Publishing a nightly based off a try build
170
166
171
167
Sometimes a PR requires testing how it behaves when downloaded from rustup, for
0 commit comments