Validate CI environment JSON objects before accessing their fields
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 78/100
Direzione di ricerca
Inizia dalla decodifica dell’ambiente in tools/ci/common.py, intorno alla riga 536, poi individua i test mirati per la configurazione CI e gli input non validi. Verifica come vengono decodificati WAVE_RELEASE_INPUTS e WAVE_CI_MATRIX e come viene testata la convenzione esistente CI configuration error/codice di uscita 2. Il lavoro è completato quando i tipi di oggetto JSON non validi causano un errore senza traceback né comandi del runner o di provisioning, mentre le variabili mancanti, {} e il JSON malformato mantengono il comportamento specificato.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
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.
- Lingua principale
- Rust
- Stelle
- 56
- Fork
- 21
- Merge medio
- 4h 19m
- PR unite (30g)
- 49
Preparare l'ambiente
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 wavefnd/Wave
-
enhancement good first issue needs testing
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno
-
bug good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno
-
bug good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno
-
documentation enhancement good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
I maintainer di solito rispondono entro 1 giorno
-
enhancement good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di wavefnd/Wave
Issue simili
-
ai_p1 comp-message-queues
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
ClickHouse/ClickHouse#125890 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
storytold/photocraft#5710 ·
I maintainer di solito rispondono entro 1 giorno
-
Two tests fail on a Windows checkout: a CRLF parse in feature_walk_tests, an 8.3 TEMP path in libraries_testsForse già presa @CamWight l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
bherbruck/solvecraft#1186 · 1 commento ·
-
area: screenshot audit bug good first issue priority: P3 security severity: info type: correctness
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
pierruno-labs/prowl#31 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
limitlessprojects/Go-Hybrid#50 ·
I maintainer di solito rispondono entro 1 giorno