Skip to content

Commit df7c786

Browse files
committed
Describe the rollup process
1 parent 9067466 commit df7c786

File tree

2 files changed

+56
-0
lines changed

2 files changed

+56
-0
lines changed

index.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,4 +57,6 @@ PRs against [rust-lang-nursery/rust-forge].
5757

5858
* [PR Triage Procedure](pr-triage-procedure.html)
5959

60+
* [Performing a rollup](performing-a-rollup.html)
61+
6062
* [Homu/Bors Syntax](https://buildbot2.rust-lang.org/homu/)

performing-a-rollup.md

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
---
2+
layout: default
3+
title: Performing a Rollup
4+
---
5+
6+
# Rollups
7+
8+
## Background
9+
10+
The Rust project has a policy that every PR must be tested after merge before it can
11+
be pushed to master. As PR volume increases this can scale poorly, especially given
12+
the 2hr30min current CI duration for Rust.
13+
14+
Enter rollups - low risk changes (often doc fixes or other non-functional changes)
15+
are marked with the `rollup` command to bors (e.g. `@bors r+ rollup` to approve a
16+
PR and mark as a rollup or `@bors rollup` to mark a previously approved PR).
17+
'Performing a Rollup' then means collecting these changes into one PR and merging
18+
them all at once.
19+
20+
You can see the list of rollup PRs on https://buildbot2.rust-lang.org/homu/queue/rust -
21+
they are listed at the bottom of the 'approved' queue, with a priority of 'rollup',
22+
meaning they will not be merged by themselves until everything in front of them in the
23+
queue has been merged.
24+
25+
## Procedure
26+
27+
Prerequisites: `r+` permission on the Rust repo, a fork of `rust-lang/rust`
28+
under your GitHub username.
29+
30+
- Visit https://buildbot2.rust-lang.org/homu/queue/rust.
31+
- If there are >= 10 rollup priority PRs, you should probably create a rollup.
32+
- Look at the current PR being tested:
33+
- If it has a priority >0, do not create a rollup until it's complete.
34+
- Check how long bors commented with 'Testing commit' - if the test is probably
35+
going to finish soon (e.g. it's been over two hours), come back after 30min
36+
and it should be done.
37+
- Notify the #rust-infra IRC channel.
38+
- Press the 'Create a rollup' button near the top left of the queue status page.
39+
- (first time: Authorise the github permissions)
40+
- Wait for a minute while the rollup is created on the `rollup` branch of your repo
41+
and the PR is submitted for you.
42+
- Comment with `@bors r+ p=1`. This will put the PR above any 'normal' PRs, but
43+
below 'urgent' PRs.
44+
- Comment on the PR currently being tested with `@bors retry`. This will prompt
45+
bors to stop the current test, allowing it to pick up the new top of the queue -
46+
the rollup.
47+
48+
## Failed rollup
49+
50+
Close the PR, figure out if the failure was spurious - if so, create a new PR,
51+
if not, find the possible candidate PR(s) and unmark it (them) as rollups with
52+
`@bors rollup-`, commenting on the PR with the error. Hopefully the author or
53+
a reviewer will give feedback to get the PR fixed or confirm that it's not at
54+
fault.

0 commit comments

Comments
 (0)