Skip to content

Commit 93465df

Browse files
committed
Describe the rollup process
1 parent 9067466 commit 93465df

File tree

2 files changed

+57
-0
lines changed

2 files changed

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

0 commit comments

Comments
 (0)