Skip to content

Commit 377a2ec

Browse files
committed
Describe the rollup process
1 parent 9067466 commit 377a2ec

File tree

2 files changed

+52
-0
lines changed

2 files changed

+52
-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: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
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 long (>2hr) 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 approved rollup priority PRs, you should probably create a rollup.
33+
- Notify the #rust-infra IRC channel.
34+
- Press the 'Create a rollup' button near the top left of the queue status page.
35+
- (first time: Authorise the github permissions)
36+
- Wait for a minute while the rollup is created on the `rollup` branch of your repo
37+
and the PR is submitted for you.
38+
- Comment with `@bors r+ p=10`. This will put the PR above any 'normal' (`p=0`) or
39+
'do this soon' (`p=1`) PRs, but below 'urgent' PRs.
40+
- If the PR currently being tested is in the rollup, comment on the it with
41+
`@bors retry`. This will prompt bors to stop the current test, allowing it
42+
to pick up the new top of the queue - likely the rollup.
43+
44+
## Failed rollup
45+
46+
Close the PR, figure out if the failure was spurious. If so, create a new PR,
47+
if not, find the possible candidate PR(s) and unmark it (them) both as rollup
48+
and as being reviewed with `@bors rollup- r-`, also commenting on the PR with the
49+
error. Hopefully the author or a reviewer will give feedback to get the PR fixed
50+
or confirm that it's not at fault.

0 commit comments

Comments
 (0)