Skip to content

Commit

Permalink
Rollup merge of #114157 - pitaj:triagebot_no-merges, r=ehuss
Browse files Browse the repository at this point in the history
Enable triagebot no-merges check

Follow-up on rust-lang/triagebot#1704

### Motivation

Occasionally, a merge commit like cb5c011 makes it past manual review and gets merged into master.

At one point, we tried adding a check to CI to prevent this from happening (#105058), but that ended up [problematic](#106319 (comment)) and was [reverted](#106320). This kind of check is simply too fragile for CI, and there must be a way for a human to override the bot's decision.

The capability to detect and warn about merge commits has been present in triagebot for quite some time, but was never enabled at rust-lang/rust, possibly due to concerns about false positives on rollup and subtree sync PRs. This PR intends to alleviate those concerns.

### Configuration

This configuration will exclude rollup PRs and subtree sync PRs from merge commit detection, and it will post the default warning message and add the `has-merge-commits` and `S-waiting-on-author` labels when merge commits are detected on other PRs.

The eventual vision is to have bors refuse to merge if the `has-merge-commits` label is present. A reviewer can still force the merge by removing that label if they so wish.

### Note for contributors

The rollup tool should add that label automatically, but anyone performing subtree updates should begin including "subtree update" in the titles of those PRs, to avoid false positives.

r? infra

## Open Questions

1. This configuration uses the default message that's built into triagebot:

> There are merge commits (commits with multiple parents) in your changes. We have a [no merge policy](https://rustc-dev-guide.rust-lang.org/git.html#no-merge-policy) so these commits will need to be removed for this pull request to be merged.
>
> You can start a rebase with the following commands:
> ```shell-session
> $ # rebase
> $ git rebase -i master
> $ # delete any merge commits in the editor that appears
> $ git push --force-with-lease
> ```

Any changes to this are easy, I'll just have to add a `message` option. Should we mention the excluded titles in the message?
  • Loading branch information
matthiaskrgr authored Oct 16, 2023
2 parents 98c1e3d + 4baa12b commit cf25110
Showing 1 changed file with 4 additions and 0 deletions.
4 changes: 4 additions & 0 deletions triagebot.toml
Original file line number Diff line number Diff line change
Expand Up @@ -414,6 +414,10 @@ message_on_add = """\
Issue #{number} "{title}" has been added.
"""

[no-merges]
exclude_titles = ["Rollup of", "subtree update"]
labels = ["has-merge-commits", "S-waiting-on-author"]

[github-releases]
format = "rustc"
project-name = "Rust"
Expand Down

0 comments on commit cf25110

Please sign in to comment.