[DISCUSS] Run CI in a merge queue instead of on every push

Idea: a push to a PR builds nothing. When a PR is ready, "Merge when ready" 
puts it in a merge queue, which runs the full CI on the merged tree and merges 
only if it is green. A failed build retries itself once before it counts as 
failed.

Why: today every push to a PR costs ~40 runner-hours and we average almost 4 
pushes per PR. Testing once per merge cuts that by about two thirds and removes 
the case we hit with #16656, a merge whose tests never ran. Eight ASF projects 
(datafusion, arrow-rs, seatunnel, ...) already run merge queues from .asf.yaml, 
so no Infra request is needed.

Trade-off: feedback arrives later. A contributor sees failures when the PR is 
queued, not when they push, unless they ask for a run with the `run ci` label. 
Merging also takes longer, since the queue has to wait for a runner.

Questions for the team:
1. Are we fine with no checks at all on PR pushes, or do we keep the cheap ones 
(code style, build health)?
2. Default branch first, or all release branches at once?

Reply via email to