Skip to content

enable merge queues #143

Open
Open

Description

@cgwalters

Basically merge queues are the next logical step after going to automerge; they can help us solve two things:

  • PR 1 and PR 2 pass tests but break when merged together (rare but happens)
  • Reduce impact of flaky tests if we set "Only merge non-failing pull requests" to No (effectively the inverse of the above - PR 1 and PR 2 will merge if they pass tests together)

Plan:

Activity

  1. cgwalters commented on Mar 17, 2026

    @cgwalters
    ContributorAuthor

    OK I set this up on https://github.com/containers/composefs-rs/ and it seems to be working OK. Next step: all the repos ehre

  2. hone commented on Apr 24, 2026

    @hone

    I was pointed to merge queue is susceptible to GitHub incidents as a potential thing to watch out for. I think it's still low risk.

  3. cgwalters commented on Apr 24, 2026

    @cgwalters
    ContributorAuthor

    Ouch, thanks for pointing that out!

    It is indeed a risk, but...a while back when I was working on OpenShift core dev we had an infra issue which temporarily made our Prow instance (that effectively implemented a merge queue strategy before Github supported it natively) merge PRs that weren't passing tests. It was a huge mess.

    There's always a tension here in basically how much one outsources infrastructure.

    Note that in not using merge queues, if one is merging PRs one by one "manually" then it's absolutely possible to hit the "A xor B" problem, that just happened recently in bootc-dev/bcvk#238 (review) to us.

    I hope Github ensures after this incident they have really good tests for their merge queues at least. Running a merge queue externally just shifts risk around I think.

  4. cgwalters commented on Apr 27, 2026

    @cgwalters
    ContributorAuthor

    Now enabled in bootc!

  5. cgwalters commented on Apr 27, 2026

    @cgwalters
    ContributorAuthor

    Note from discussion: We can generally shift CI focus/weight to the merge_group target, and e.g. there's generally much less need for postsubmit "push to main" jobs for example, and pull_request can be lighter weight

  6. cgwalters commented on Apr 27, 2026

    @cgwalters
    ContributorAuthor

    Investigating this now,

    Note from discussion: We can generally shift CI focus/weight to the merge_group target, and e.g. there's generally much less need for postsubmit "push to main" jobs for example, and pull_request can be lighter weight

    We actually need to do this with our required_checks now to really gain benefit.

  7. cgwalters commented on Apr 28, 2026

    @cgwalters
    ContributorAuthor

    OK so...I had a fundamental misunderstanding here, I thought merge queues could serve the same role as e.g. https://github.com/rust-lang/bors

    And they do have the "tree is always green" property.

    But they don't actually help reduce CI cost by batching expensive tests in a group.

  8. cgwalters commented on Apr 29, 2026

    @cgwalters
    ContributorAuthor

    OK I created https://github.com/cgwalters/merge-queue-like-bors after some experimentation...may look at deploying this on bootc.

  9. cgwalters commented on May 5, 2026

    @cgwalters
    ContributorAuthor

    Another big downside of merge queues I've stumbled upon is that one can't restart/retry a single job that failed due to an infrastructure flake like one can do with normal jobs that run on a pull request etc.

    I think ultimately we're going to need to refactor our build system to fetch all dependencies up front with retries.

  10. added a commit that references this issue on Jun 12, 2026
  11. added a commit that references this issue on Jun 15, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions