code-metrics yaml_subset.py: quote mid-value swallows comments; duplicate key in a sequence item reports the wrong line
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
Los dos errores están en plugins/code-metrics/scripts/yaml_subset.py, en la lógica de eliminación de comentarios (donde una comilla abre una cadena) y en la comprobación de claves duplicadas para los elementos de secuencia. El port de JavaScript en plugins/user-experience/scripts/lib/yaml-subset.mjs, corregido en el commit 1d5a3fca3f, muestra el comportamiento previsto, y sus pruebas están en plugins/user-experience/tests/yaml-subset.test.mjs. Escribe primero pruebas de Python que fallen para title: it's fine # comment y para la entrada de clave duplicada - job: a. Está terminado cuando ambas reproducen el fallo, ambas pasan tras la corrección y las pruebas existentes de yaml_subset.py siguen pasando.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
No related issue: found while porting the parser for #6306 (PR #6669).
Problem
plugins/code-metrics/scripts/yaml_subset.py likely has two bugs that its JavaScript port in plugins/user-experience/scripts/lib/yaml-subset.mjs had and fixed in #6669:
- A quote mid-value swallows a trailing comment.
stripCommenttreats any'or"as the start of a quoted string, even inside a plain value, sotitle: it's fine # commentparses as"it's fine # comment"instead of"it's fine". - A duplicate key inside a sequence item is reported on the wrong line. For
- job: a\n id: x\n job: b\n, the error names line 1 (the dash line) instead of line 3.
The port fixed both in 1d5a3fca3f: a quote opens only where a value starts (line start, after : , - , [ or ,), and the sequence item's first key is passed into the mapping so the duplicate check fires on its own line. See the tests "quotes and comments in plain values" and "a duplicate key in a sequence-item mapping is reported on its own line" in plugins/user-experience/tests/yaml-subset.test.mjs.
Unverified against the Python: confirm each with a failing test first.
Acceptance criteria
- A failing test reproduces each bug against
yaml_subset.py, then passes after the fix. - Existing
yaml_subset.pytests still pass.
- Lenguaje dominante
- Shell
- Estrellas
- 22
- Forks
- 2
- Merge medio
- 8 h 44 min
- PR fusionados (30 d)
- 926
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin 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 melodic-software/claude-code-plugins
-
status: ready
Dificultad 2/5 1-3 horas Aptitud para principiantes 73/100
melodic-software/claude-code-plugins#8537 ·
Los mantenedores suelen responder en 1 día
-
priority: medium status: confirmed
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
melodic-software/claude-code-plugins#8507 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
priority: low
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
melodic-software/claude-code-plugins#8476 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
area: security needs-human priority: low
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
melodic-software/claude-code-plugins#8472 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
pr-pipeline: show a thread's review commit and outdated state in address-feedback list outputAbiertopriority: low
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
melodic-software/claude-code-plugins#8434 · 1 comentario ·
Los mantenedores suelen responder en 1 día
Todos los issues de melodic-software/claude-code-plugins
Issues similares
-
needs-triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
mattpocock/skills#1307 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
vladmandic/sdnext#5161 ·
Los mantenedores suelen responder en 1 día
-
severity: low
Dificultad 1/5 1-3 horas Aptitud para principiantes 89/100
luainkernel/lunatik#1980 ·
Los mantenedores suelen responder en 1 día
-
go: new version 1.27.3Abiertoout-of-date
Dificultad 1/5 Menos de una hora Aptitud para principiantes 72/100
CachyOS/CachyOS-PKGBUILDS#2022 ·
Los mantenedores suelen responder en 1 día
-
Missing icon: tangramAbierto
Dificultad 1/5 1-3 horas Aptitud para principiantes 78/100