tooling: gate scripts grew 59x in 7 weeks (592 → 34,804 lines; half the runtime) — freeze, consolidate, budget
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 45/100
Línea de trabajo
Examine the tools/ directory to list all gate scripts (.sh and .py). For each, check CI history and commit logs to see when it last caught a regression. Compare against structural guarantees like the merge queue (#1264), real wasm build (#1267/#1274), and generated docs (#1269). Start with #1274 as a concrete case to retire or shrink the -m32 gate. Record line counts before and after consolidation.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Measured 2026-09-23.
| 2026-08-01 | 2026-09-01 | now | |
|---|---|---|---|
tools/*.sh/*.py (gates and checkers) |
592 lines | 6,141 | 34,804 |
tests/run_all_tests.sh |
3,960 | 6,104 | 8,601 |
src/*.c/*.h (the runtime) |
53,153 | 62,333 | 71,621 |
Mean merged PR size: 352 lines (Aug, 52 PRs) → 1,244 (Sep, 68 PRs). Of September's ten largest PRs, six contain 0% product code: #1224 (+7,575, 92% gates/tests/CI), #1226 (+5,130), #1175 (+4,151), #1225 (+4,038), #1164 (+4,045) and #1208 (+3,899, 95%). #1124 was +19,928 with 37% product.
Each gate was built for a real incident. The growth came from each gate then acquiring self-tests, planted faults and checks-of-checks, with nothing ever asking whether a gate still earns its size or has been superseded by something structural. This is the same problem as "have we made CI too hard" (#1264), pointed at our own tooling. Mature languages keep checking machinery small by leaning on structure: a merge queue, building the real target, generating docs from source.
Scope.
- Freeze: no new gate script unless it replaces an existing one at equal or smaller size, until item 2 is done. PRs in flight (#1273 and the #1264 contributor-friction PR) are held to this.
- Consolidation pass. For every gate in
tools/, record its size, the last time it caught a real regression (CI history, or a commit/PR citing it), and whether a structural guarantee now covers it: the merge queue (#1264), the real wasm build (#1267/#1274), generated reference docs (#1269), derived counts (#1264), changelog fragments (#1268). Delete or merge the ones that never fire or are superseded, and record the before/after totals. - Counterweight in the method. The
mechanical-gatesskill gets a size-budget principle and "prefer a structural guarantee over a script that checks for it". Builder briefs carry a size budget for check machinery. - Visibility: the ratio of gate lines to product lines goes in the daily report, so the trend is seen.
First concrete case: #1274 (retire or shrink the -m32 approximation gate).
- Lenguaje dominante
- C
- Estrellas
- 3
- Forks
- 7
- Merge medio
- 3 h 58 min
- PR fusionados (30 d)
- 105
Preparar el entorno
Inicia el contenedor de desarrollo del proyecto en tu navegador, con tu propia cuenta de GitHub.
- Incluye un Dockerfile o un archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de InauguralSystems/EigenScript
-
area:lint-tooling bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
InauguralSystems/EigenScript#1340 ·
Los mantenedores suelen responder en 1 día
-
area:stdlib found-by:code-review kind:silent-wrong
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
InauguralSystems/EigenScript#1338 ·
Los mantenedores suelen responder en 1 día
-
area:lint-tooling found-by:critic kind:docs-drift
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
InauguralSystems/EigenScript#1335 ·
Los mantenedores suelen responder en 1 día
-
area:ci found-by:critic kind:gate-defect
Dificultad 2/5 1-3 horas Aptitud para principiantes 86/100
InauguralSystems/EigenScript#1311 ·
Los mantenedores suelen responder en 1 día
-
enrolment: decide test_gc_runner_controls.py (exempt vs enrol) and whether floors need a ratchetAbiertoarea:gates found-by:critic kind:decision
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
InauguralSystems/EigenScript#1280 · 1 comentario ·
Los mantenedores suelen responder en 1 día
Todos los issues de InauguralSystems/EigenScript
Issues similares
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
johnsonjh/emu2-cpm86#68 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Zenmap CrashAbiertoZenmap
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
Los mantenedores suelen responder en 2 días
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 88/100
fastfetch-cli/fastfetch#2619 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
Los mantenedores suelen responder en 1 día
-
Template: Bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
betaflight/betaflight#15759 ·
Los mantenedores suelen responder en 1 día