With our current PR velocity and relatively long per-PR testing times in CI, rollups are an unfortunate necessity. With that in mind, we currently have multiple people doing great work with rollups. However, they can't be omniscient, so they can use some guidance deciding whether a pull request is acceptable to rollup or not.
Please apply, when possible, either the @bors rollup=never
or @bors rollup=always
levels to a given PR during approval. If a PR may break a build but there is no reason to not roll it up, but is deemed unlikely to, then leave it in the neutral state (without an explicit rollup marker).
Use rollup=never if:
- Your PR is too big and non-additive (note: adding 2000 lines of completely new tests is fine to rollup).
- Messes too much with:
- LLVM
- bootstrap
- build-manifest
- May have performance implications
- May cause unclear regressions (e.g., we would likely want to bisect to this PR specifically, as it would be hard to identify as the cause from a rollup)
- Is otherwise dangerous to rollup
When you use rollup=never
, please also leave a comment as to why you've used it.
Use rollup=always when:
- Changes are limited to documentation, comments, etc. that is highly unlikely to fail a build
- Changes are pure refactoring and cannot have performance implications
- Your PR is not landing possibly-breaking or behavior altering changes
- Feature stabilization without other changes is likely fine to rollup, though
Don't rollup=always if:
- Your PR may be affected by MIR migrate mode