Validate CI environment JSON objects before accessing their fields
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 78/100
Línea de trabajo
Empieza por la decodificación del entorno en tools/ci/common.py, alrededor de la línea 536, y luego busca las pruebas específicas para la configuración de CI y las entradas no válidas. Comprueba cómo se decodifican WAVE_RELEASE_INPUTS y WAVE_CI_MATRIX, y cómo se prueba la convención existente de CI configuration error/código de salida 2. El trabajo estará terminado cuando los tipos de objeto JSON no válidos fallen sin un traceback ni comandos del runner o de aprovisionamiento, mientras que las variables ausentes, {} y el JSON mal formado conserven el comportamiento especificado.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Problem
tools.ci.common.main parses WAVE_RELEASE_INPUTS and immediately calls .items() without checking its JSON type. A valid JSON array, string or null produces a Python traceback instead of a configuration error. WAVE_CI_MATRIX also coerces falsy non-objects to an empty object before its type check.
Starting point: environment decoding.
Reproduction
Executed at 7a8361d5c10ec3e66fc9fe4a5801622afb6bf631 on Linux amd64 with Python 3.14:
WAVE_RELEASE_INPUTS='[]' python3 -m tools.ci.test --target linux-amd64 --report-json /tmp/wave-invalid-config.json
Observed: exit 1 and AttributeError: 'list' object has no attribute 'items' at the inputs.items() expression. No build or provisioning stage ran.
Scope
Validate both environment values as JSON objects before runner/stage work. Reuse the existing CI configuration error/exit-2 convention. Keep omitted values and explicit empty objects supported. Difficulty: easy.
Completion criteria
- Arrays, strings, numbers, booleans and null fail with an actionable configuration error, without a traceback.
- Missing variables and
{}remain valid; malformed JSON is still rejected. - Focused tests assert no commands/provisioning occur for invalid inputs, including falsy non-objects.
- Lenguaje dominante
- Rust
- Estrellas
- 56
- Forks
- 21
- Merge medio
- 4 h 19 min
- PR fusionados (30 d)
- 49
Preparar el entorno
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 wavefnd/Wave
-
enhancement good first issue needs testing
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
-
bug good first issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
-
bug good first issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
-
documentation enhancement good first issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
Los mantenedores suelen responder en 1 día
-
enhancement good first issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Los mantenedores suelen responder en 1 día
Todos los issues de wavefnd/Wave
Issues similares
-
ai_p1 comp-message-queues
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
ClickHouse/ClickHouse#125890 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 66/100
storytold/photocraft#5710 ·
Los mantenedores suelen responder en 1 día
-
Two tests fail on a Windows checkout: a CRLF parse in feature_walk_tests, an 8.3 TEMP path in libraries_testsPosiblemente ocupada @CamWight la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
bherbruck/solvecraft#1186 · 1 comentario ·
-
area: screenshot audit bug good first issue priority: P3 security severity: info type: correctness
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
pierruno-labs/prowl#31 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
limitlessprojects/Go-Hybrid#50 ·
Los mantenedores suelen responder en 1 día