CI planner: derive shard counts and timeouts from measured durations and the 20-job pool (generalizes #5882)
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 25/100
Direzione di ricerca
Start by reading tests/tools/det_sweep_plan.py and ci_layout.py, then inspect the referenced sharded workflow plans and duration caches (#4847/#5048). Define the shared planner around measured shard durations, pool limits, setup cost, and missing measurements; roll it out in the order listed. Done means shard workflows no longer hardcode shard counts or timeouts, and the stated seven-day balance and timeout criteria hold.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Same pattern as #5882, generalized, and the CI half of squid-protocol/promoter-bot#34.
Problem
Every sharded workflow fixes its own shard count and timeout-minutes by hand. They are re-measured after something times out or crawls:
- Det Sweep
DB2_MAX_SHARDS=4, with the db2 timeout raised 18 -> 30 (#5869, #5882). - CICS Crucible shards
[1,2,3,4](#5530). - Doom Rosetta
SHARDS: "4". - Smoke
--splits 3(#5133). - Full Suite Gate per-leg
splits/timeoutJSON, re-capped four times (#4576 -> #4903 -> #5155 -> #5766 -> #5776; #5156 open). - Evidence Refresh Db2 / sweep / records parts.
Only Ground Truth (ci_layout.py, #5616) and the det planner's narrow path size themselves. The pool is fixed (20 concurrent GitHub-hosted jobs) while cases and suites grow every day: Db2 cases went 45 -> 70 in 4 days.
Proposal: one planner, measured inputs
A small shared module (next to tests/tools/det_sweep_plan.py / ci_layout.py) that each sharded workflow's plan job calls:
- Shards =
ceil(estimated work / target shard minutes), capped by the workflow's share of the 20-job pool. The share can shrink under queue pressure, asci_layoutdoes today. - Timeout = p95 of the measured shard duration × margin (e.g. 1.5), floored and ceilinged. It is emitted by the plan, not hardcoded in YAML.
- Durations: every shard writes measured per-case or per-part seconds into the durations cache (#4847 / #5048). Cases without a measurement fail the plan loudly after a grace period instead of silently unbalancing shards (the 31-of-70 Db2 cases in #5882).
- Fixed setup cost (e.g. Db2's ~6 min start) is part of the model, so the planner trades shard count against startup.
Order
- Db2 in Det Sweep and Evidence Refresh. This is #5882's asks 1, 2 and 4 via the planner.
- CICS Crucible and Doom Rosetta.
- Smoke parts (#5133) and Full Suite Gate legs (#5156).
Acceptance
- No sharded PR workflow has a hand-set shard count or
timeout-minutesfor its shard jobs. - A 7-day window with case growth shows no shard timeouts and a slowest/fastest shard ratio ≤ 1.3.
- Adding cases needs no YAML edit.
Related: #5882, #5869, #5156, #5133, #5135, #5616, #5262.
🤖 Generated with Claude Code
- Lingua principale
- Python
- Stelle
- 57
- Fork
- 11
- Merge medio
- 1h 51m
- PR unite (30g)
- 982
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di squid-protocol/gitgalaxy
-
bug scope:frontier
Difficoltà 4/5 3-5 giorni Idoneità per principianti 38/100
squid-protocol/gitgalaxy#5909 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
squid-protocol/gitgalaxy#5897 ·
I maintainer di solito rispondono entro 1 giorno
-
ci-cd github-actions performance scope:infra
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
squid-protocol/gitgalaxy#5882 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Graph Accuracy Audit: re-baseline Python call-graph recall on pyan3 2.9.0 (reference moved in #5241)Apertaclaim:nyx lane:nyx
Difficoltà 4/5 3-5 giorni Idoneità per principianti 45/100
squid-protocol/gitgalaxy#5877 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
claim:nyx lane:nyx
Difficoltà 4/5 3-5 giorni Idoneità per principianti 45/100
squid-protocol/gitgalaxy#5876 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di squid-protocol/gitgalaxy
Issue simili
-
[Bug]: Revit selector reads process ids 2000-2099 as years (flaky AgentClientTests.AYearOrAProcessIdSelectsTheHost)Forse già presa @Wurschdhaud l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 83/100
pyrevitlabs/pyRevit#3817 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 85/100
521xueweihan/HelloGitHub#4074 ·
-
follow-up
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
I maintainer di solito rispondono entro 1 giorno
-
Helm chart: allow setting ingressClassName on the IngressForse già presa @commarla l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
pgadmin-org/pgadmin4#10658 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100