Malformed justification YAML exits 1 instead of the no-verdict code 2
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 78/100
- Tipo de issue
- Error
- Claridad
- Bien especificado
- Estado de actividad
- Activo
- Stack tecnológico
- python
- Área
- cli, testing-qa
Línea de trabajo
Start in score_coverage/justify.py at load_yaml(), then trace exception handling through _call_tool() and main() in score_coverage/generate_coverage_html.py. Reproduce the CLI with a valid report archive and YAML containing version: [. Done means the malformed YAML produces a useful diagnostic, exits 2, and has CLI regression coverage.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Found while reviewing the architecture documentation. Verified against upstream HEAD d99515b87bbe1dde89984403e9c330d640fc5d33 using synthetic report archives and the real generate_coverage_html CLI (no gate/justification mocks).
A YAML syntax error escapes the error handling in generate_coverage_html. Python terminates with exit 1 and a traceback, which is reserved for a successfully evaluated coverage result below the threshold.
Reproduction
Use an otherwise valid report zip and pass --yaml pointing to a file containing:
version: [
Invoke generate_coverage_html in a consumer workspace. The real CLI exits 1 with a PyYAML parser exception, rather than 2 with a controlled diagnostic. The report was successfully extracted before the failure.
Cause and expected behavior
justify.load_yaml() calls yaml.safe_load() before structural validation. _call_tool() translates only nonzero SystemExit; main() catches only GenerateError. The parser exception therefore escapes both boundaries.
Translate YAML parse errors into the no-verdict path, preserving a useful file/location diagnostic. Add CLI regression coverage asserting exit 2. Related input/output exceptions should be audited against the same contract, but only the YAML syntax case was reproduced here.
This violates tool_req__coverage_gate_exit_codes and tool_req__coverage_gate_no_verdict.
Relevant code
- Lenguaje dominante
- Python
- Estrellas
- 0
- Forks
- 3
- Merge medio
- 21 h 15 min
- PR fusionados (30 d)
- 14
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
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 eclipse-score/coverage_tool
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
eclipse-score/coverage_tool#27 ·
Los mantenedores suelen responder en 1 día
-
switch from pylint to basedpyrightPosiblemente ocupada @kirankumar-H-V la tomó hace 3 días. Abierto
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
eclipse-score/coverage_tool#30 · 1 comentario · 1 asignado ·
Los mantenedores suelen responder en 1 día
-
refactor integration tests for readability and traceabilityPosiblemente ocupada @AlexanderLanin la tomó hace 4 días. Abierto
eclipse-score/coverage_tool#25 · 1 asignado ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 3/5 1-2 días Aptitud para principiantes 78/100
eclipse-score/coverage_tool#17 ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 3/5 1-2 días Aptitud para principiantes 74/100
eclipse-score/coverage_tool#15 ·
Los mantenedores suelen responder en 1 día
Todos los issues de eclipse-score/coverage_tool
Issues similares
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
huggingface/smolagents#2976 ·
Los mantenedores suelen responder en 1 día
-
pulp-cli 0.41 break username password auth in older configs (cert and key present but empty)Abiertobug Triage-Needed
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 66/100
FuRongJun-1999/dsh-memory#170 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
pgvector/pgvector-python#163 ·
-
[开源推荐] 打拼音就出篆书的输入法,附古文字创作小工具Abierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 82/100
521xueweihan/HelloGitHub#3940 ·