Repository navigation
ci: raise the merge queue status check timeout to 360 minutes - #26293
Conversation
Manage the merge queue parameters for `main` through a `.asf.yaml` ruleset, keeping every parameter at its current value except the status check timeout, which goes from the 60 minute default to 360 minutes (the maximum GitHub allows). Part of apache#26292 Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
mbutrovich
left a comment
There was a problem hiding this comment.
Let's give it a shot, thanks @alamb!
|
fingers crossed |
|
Thanks @mbutrovich and @Omega359 -- I'll merge this one in and hopefully we can start to see our PRs make it through the queue |
| # | ||
| # Merge queue rules do not support wildcard ref patterns, so only the default | ||
| # branch is covered; release branches keep plain branch protection above. | ||
| rulesets: |
There was a problem hiding this comment.
Here are the current settings
(venv) andrewlamb@Andrews-MacBook-Pro-3:~/Software/datafusion$ gh api graphql -f query='{ repository(owner:"apache", name:"datafusion") {
mergeQueue(branch:"main") { configuration {
checkResponseTimeout maximumEntriesToBuild maximumEntriesToMerge
minimumEntriesToMerge minimumEntriesToMergeWaitTime mergeMethod mergingStrategy } } } }'
{
"data": {
"repository": {
"mergeQueue": {
"configuration": {
"checkResponseTimeout": 3600,
"maximumEntriesToBuild": 5,
"maximumEntriesToMerge": 1,
"minimumEntriesToMerge": 1,
"minimumEntriesToMergeWaitTime": 300,
"mergeMethod": "SQUASH",
"mergingStrategy": "ALLGREEN"
}
}
}
}
}
There was a problem hiding this comment.
Here are Comet's settings https://github.com/apache/datafusion-comet/blob/7d8d9b1544b734c85a93cca2cc9d5380ad70accd/.asf.yaml#L128-L176
rulesets:
- name: Merge Queue
target: branch
enforcement: active
bypass_actors:
# apache/root - ASF Infra, so a wedged queue can always be recovered.
- actor_id: 118420
actor_type: Team
bypass_mode: always
conditions:
ref_name:
include:
- "~DEFAULT_BRANCH"
exclude: []
rules:
- type: merge_queue
parameters:
merge_method: SQUASH
grouping_strategy: ALLGREEN
max_entries_to_build: 4
min_entries_to_merge: 1
min_entries_to_merge_wait_minutes: 0
max_entries_to_merge: 5
check_response_timeout_minutes: 300|
Sorry -- forgot to post my comments |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #26293 +/- ##
==========================================
- Coverage 82.80% 82.79% -0.01%
==========================================
Files 1149 1149
Lines 454146 454146
Branches 454146 454146
==========================================
- Hits 376035 376027 -8
- Misses 55260 55265 +5
- Partials 22851 22854 +3 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
|
i can force merge if no one objects? |
Yes please 🙏 |
|
"github-merge-queue Bot removed this pull request from the merge queue due to no response for status checks 1 hour ago" Now that is funny |
Thank you for dropping the 🔨 @blaginin |
### What changes were proposed in this PR?
Nothing can merge into `main` right now. Three CI faults block it, and
each fix needs the others to land first.
```
Before: Scala job -> sbt/setup-sbt v1.5.7 -> nested carabiner action not allowed -> fails at Set up job
frontend job -> ubuntu-26.04 runner -> Playwright 1.59.1 has no Chromium -> fails at install
merge group -> no runner within 45 min -> checks_timed_out, PR leaves the queue
After: Scala job -> sbt/setup-sbt v1.5.12 -> every nested action allowed -> runs
frontend job -> ubuntu-26.04 runner -> Playwright 1.64.1 installs Chromium -> runs
merge group -> waits up to 360 min for runners -> merges
```
- **setup-sbt.** The ASF actions allowlist dropped the nested
`carabiner-dev/actions/install/*` refs that `sbt/setup-sbt` v1.5.7
reaches, so every job that sets up sbt (`amber`, `amber-integration`,
`platform`, `platform-integration`, `Bench`) has died at *Set up job*
since 2026-10-19. This moves all 9 call sites to v1.5.12, whose whole
chain is allowed. The action's inputs did not change.
- **Playwright.** `ubuntu-latest` now resolves to the Ubuntu 26.04
image, where Playwright 1.59.1 refuses to install Chromium ("Playwright
does not support chromium on ubuntu26.04-x64"), so the ubuntu frontend
leg fails before any test runs. This bumps `playwright` to 1.64.1, which
supports 26.04.
- **Merge queue timeout.** The queue ejects an entry whose required
checks have not reported within `check_response_timeout_minutes`, which
is 45. ASF's shared runners are backed up well past that: in the last
merge group, *Validate PR title*, a 2-second job, waited 110 minutes for
a runner. This raises the limit to 360 minutes, as DataFusion did in
apache/datafusion#26293.
`Required Checks` stays red without both version bumps, and no PR gets
through the queue without the higher limit, so all three go in one PR.
### Any related issues, documentation, discussions?
Closes apache#9095.
### How was this PR tested?
Every changed file parses:
```
python -I -c "import sys, yaml; [yaml.safe_load(open(f)) for f in sys.argv[1:]]" .asf.yaml .github/workflows/benchmarks.yml .github/workflows/build-and-push-images.yml .github/workflows/build.yml .github/workflows/dependency-graph.yml
```
Walking the `uses:` chain under `sbt/setup-sbt@ecad189` (v1.5.12)
reaches `ampel/verify@32587e8`, `install/ampel@d6d91c5`,
`install/download-and-verify@2fec8bd` and
`install/ampel-bootstrap@16009dc`, and all four are in
`apache/infrastructure-actions`' `approved_patterns.yml` as of
2026-10-23. Under v1.5.7, `install/ampel@2fec8bd`,
`install/download-and-verify@16009dc` and
`install/ampel-bootstrap@619a474` are not.
The rest is CI. The labeler applies `ci` for `.github/**`, which runs
every stack that sets up sbt, the frontend legs, and `Bench`. On this
PR's previous head every job passed except the ubuntu frontend leg,
which landed on ubuntu-26.04 and failed at the Playwright install. The
new timeout only shows once this is merged.
### Was this PR authored or co-authored using generative AI tooling?
Generated-by: Claude Code (Claude Opus 5.5)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
---------
Co-authored-by: Ian Maxon <ian@maxons.email>


Which issue does this PR close?
Rationale for this change
The merge queue evicts PRs whose checks have not reported within 60 minutes (the GitHub default), even when nothing failed and the remaining jobs are only waiting for a runner. Each eviction discards the CI that already passed, forces someone to re-queue the PR by hand, and reruns everything from scratch. See #26292 for examples and numbers.
Once the queue's CI is actually running it finishes in 10 to 25 minutes,
What changes are included in this PR?
Adds a
Merge Queueruleset to.asf.yamlthat setscheck_response_timeout_minutes: 360. Every other merge queue parameter is set to the value the queue has today (read back via the GraphQL API). Here are the current settingsWhat is the testing strategy for this PR?
My agent says:
python3 ci/scripts/check_asf_yaml_status_checks.pypasses.asfyaml-validatefrom apache/infrastructure-asfyaml, reports the file as valid.After merge we should check it took effect via
checkResponseTimeoutshould read21600(seconds) instead of today's3600, andgh api repos/apache/datafusion/rulesetsshould list aMerge Queueruleset.Are there any user-facing changes?
No. This only changes how long an entry may wait in the merge queue before being evicted.