hujsonfmt: -w rewrites already formatted files and -l lists them
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
Lee cmd/hujsonfmt/hujsonfmt.go, especialmente processFile y processSrc. Compara el src original con la salida formateada tanto para -l como para -w. Después, comprueba que un archivo ya formateado no se incluye en la lista ni se vuelve a escribir, mientras que un archivo sin formatear se actualiza. El issue incluye una secuencia reproducible de comandos para verificar el comportamiento.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
hujsonfmt -w rewrites a file that is already formatted, and hujsonfmt -l lists it as unformatted.
Steps, with hujsonfmt 0-unstable-2025-06-05 from nixpkgs on Linux; cmd/hujsonfmt/hujsonfmt.go at b80ff77 has the same code:
printf '{\n\t"a": 1,\n}\n' > policy.hujson
hujsonfmt -w policy.hujson # formats it
hujsonfmt policy.hujson | diff - policy.hujson # no output: already formatted
hujsonfmt -w policy.hujson # mtime changes again
hujsonfmt -l policy.hujson # prints policy.hujson
processFile passes input to processSrc, which can modify it in place, so the -l case compares the modified input with the output instead of src. The -w case calls writeFile without comparing at all, so every run writes a backup copy and rewrites the file. Formatters such as treefmt then report the file as changed on every run.
Would a fix that compares src with the output in both cases, and skips the write when they are equal, be welcome?
- Lenguaje dominante
- Go
- Estrellas
- 892
- Forks
- 40
- Métricas de merge de PR
- Sin PR fusionados en 30 d
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 tailscale/hujson
-
Standardize modifies its input slice; the doc comment does not say soPosiblemente ocupada @jihtsan la tomó hace 29 días. Abierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 60/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
-
Value.Patch: "add" with an out-of-range array index appends instead of failingPosiblemente ocupada @SashaMIT la tomó hace 32 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
-
Value.Patch: "test" operation always fails for a null valuePosiblemente ocupada @RaphaelFakhri la tomó hace 34 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
-
Patching with commentsPosiblemente ocupada @Shubham-Padkonde la tomó hace 47 días. Abierto
Dificultad 4/5 3-5 días Aptitud para principiantes 45/100
Todos los issues de tailscale/hujson
Issues similares
-
area: interop area: sip-core v3
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
fonoster/routr#705 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
deadfin-org/deadfin#35 ·
-
enhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 66/100
-
enhancement priority: low
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
labmonkeys-space/nl6#1037 ·
Los mantenedores suelen responder en 1 día
-
Setup Guide Go tab: say it needs Go 1.26 (the unversioned go get pulls OpenTelemetry Go v1.47.0)Abiertoenhancement follow-up
Dificultad 2/5 1-3 horas Aptitud para principiantes 66/100
Los mantenedores suelen responder en 1 día