PEM-Humboldt / biotablero-search-backend

Backend for the search module of BioTablero
MIT License
1 stars 0 forks source link

Estilos y GitHub actions #2

Closed erikasv closed 4 months ago

erikasv commented 5 months ago

Descripción

Como se comentó en la tarea de creación del backend, hay un inconveniente en la validación del largo de las líneas entre black y flake8: flake8 muestra como error el que una línea en docstring sea mayor al largo establecido, pero black no formatea las líneas de docstring (https://stackoverflow.com/a/71041192)

La verdad no recuerdo por qué en stac-data-tools se decidió usar las 2 herramientas. @ManuelStardust agrega a esta tarea (puede ser como comentario o agregándolo aquí en la descripción) lo que hayamos discutido y si hay un por qué particular para haber seleccionado las dos herramientas.

Parece que black tiene la opción de solo verificar los estilos (tal vez no se rige con algún PEP?), entonces considerar la opción de mantener solo una de las 2, o buscar la solución para que ambos se comporten igual en esa regla.

Tomar una nueva decisión, discutirla con el equipo y hacer los ajustes necesarios al workflow para que queden funcionando los actions.

erikasv commented 5 months ago

Hey team! Please add your planning poker estimate with Zenhub @cazapatamar @ManuelStardust

ManuelStardust commented 5 months ago

Se seleccionaron flake8 y black porque inicialmente se buscaron herramientas que sirvieran como linters y autoformateado, habia propuesto 2 linters y 2 de autoformato y se selecciono flake8 por ser el inter mas completo, sin embargo no tenia capacidad de dar autoformato y por eso se selecciono black. Sin embargo no habia visto que black se podia usar solo como linter.

cazapatamar commented 5 months ago

En primera instancia, se hizo una revisión para ver si desde flake se pudiera agregar una excepción para que no tuviera en cuenta los docstrings pero que siga aplicando la regla en otros casos. No se encontró nada en este sentido. Se podría ignorar la regla del tamaño máximo de una linea poniendo una etiqueta para esto pero no considero que sea una solución de fondo.

Luego, se reviso desde black si es posible aplicar la regla deseada sobre los docstrings y aplicar el formato, pero parece que no se puede. Hay varios issues relacionados pero uno de los creadores de black ha cerrado la puerta a esto por diferentes motivos:

imagen.png imagen.png imagen.png

Tambien, se encontó que hay algunas herramientas tipo plugins para black, para hacer el formato de los docstrings, pero tocaria instalar una dependencia nueva y dado lo anterior quizá es mejor no alterar los docstrings partiendolos o formateandolos. Se descarta esta idea.

Finalmente, revisando la documentación de black "Using Black with other tools", se concluye que si bien black se puede usar en conjunto con otras herramientas complementarias tipo linters, es comun encontrar este tipo de incompatibilidades en algunas reglas o casos puntuales, incluso black sugiere una configuración para usar junto con flake pero parece mas a "workaround" que una solución definitiva.

cazapatamar commented 5 months ago

Luego de consultarlo con el equipo, se decidió usar solo black para dar formato y no usar flake como linter.