Merge Queue Improvements #4122
Copy link
Copy link
Open
Description
Feature Request / Improvement
We've been having a lot of issues with merging lately. This is mostly due to a lack of runners. Here's some ideas that I've had to help stabilize our CI issues:
Throughput + cost
- Build queue entries in parallel (CI: Reduce workflow overhead #3962)
- use ubuntu-slim for lightweight jobs (CI: Reduce workflow overhead #3962, CI: Cancel stale merge queue runs + use ubuntu-slim #4106 )
- cancel superseded PR runs with concurrency (CI: Reduce workflow overhead #3962, CI: Cancel stale merge queue runs + use ubuntu-slim #4106)
- Consider running integration tests only in merge queue (we need to stabilize the merge queue a lot before we consider this)
- Combine smaller checks into a single workflow to conserve runners
Flaky Tests
- Run markdown-link-check only at release time. We've been seeing more + more 500s being thrown by external links and
Emergency Bypass
iceberg-rust is introducing a system to allow maintainers to bypass the merge queue. Here's the list of steps they took.
- Move required_status_checks into the Merge Queue ruleset with strict_required_status_checks_policy: false (iceberg-rust#3459 (ci: move required status checks into the Merge Queue ruleset iceberg-rust#3459))
- Add apache/iceberg-public as a bypass actor for pull requests, and document the process in the contributing guide (iceberg-rust#3458 (ci: let committers bypass the Merge Queue ruleset for urgent fixes iceberg-rust#3458))
- Replace classic branch protection with Infra's "Default Branch Protection" ruleset. Without this, classic protection still blocks the bypass (iceberg-rust#3481 (ci: replace classic branch protection with a ruleset so the bypass works iceberg-rust#3481), still open)
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels
Activity
kevinjqliu commentedon Oct 20, 2026
ok cool we got the rust side working now.
there are 4 PRs, we should pull them in together