Skip to content

Post Rollup Warnings #1657

@rylev

Description

@rylev

When creating rollups some PRs are naturally riskier than others. If the rollup introduces bugs or performance issues it can be helpful to get a hint at what PRs might be causing an issue and which PRs can most likely be ignored.

With this in mind, I propose adding support to triagebot for listening for rollup PRs and posting a message with the results of inspecting how risking the rollup is. It could use simple heuristics to begin with.

Configuration Changes

The following would be added to the triagebot.toml:

[rollup-warnings]
trigger_files = [
  "compiler/**/*.rs" # warn on any Rust files in the compiler directory
  # ... more patterns here
]

Warning

For any rolled-up PR included in a rollup that has a file change identified by the patterns in trigger_files, a warning would be posted that looks like the following:

⚠Vulnerable PRs

This rollup has 2 vulnerable PRs.

The following PRs may be particularly vulnerable to breakage:

  • #NNN (10 vulnerable files changed)
  • #NNN (7 vulnerable files changed)

If this rollup introduces any type of regression, you may wish to investigate these PRs first.

Trigger Rate

Looking at some recent rollups, I expect this warning to show the following results:

Future extensions and open questions

  • The mechanism proposed here is very naive. There are many changes that we probably shouldn't consider as vulnerable (e.g., changes to comments). Should we include that in an initial version?
  • Some changes are likely a bad idea to have in a rollup. For example, in rust-lang/rust, a PR that changes over 50 files in compiler should probably not have been rolled up (or at the very least, a rollup should not contain two such PRs). Perhaps a strong waning in such cases would be useful?

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions