Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

CI planner: derive shard counts and timeouts from measured durations and the 20-job pool (generalizes #5882)

Aperta
#5,919 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

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
Tipo di issue
Funzionalità
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
github-actions, python
Ambito
ci-cd, devops

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

enhancement scope:core

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 / timeout JSON, 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, as ci_layout does 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

  1. Db2 in Det Sweep and Evidence Refresh. This is #5882's asks 1, 2 and 4 via the planner.
  2. CICS Crucible and Doom Rosetta.
  3. Smoke parts (#5133) and Full Suite Gate legs (#5156).

Acceptance

  • No sharded PR workflow has a hand-set shard count or timeout-minutes for 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

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di squid-protocol/gitgalaxy

Tutte le issue di squid-protocol/gitgalaxy

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.