En este documento se especifican los criterios para la elección de un gestor de tareas,
Cualquier herramienta que considere como potencial para usarla en el proyecto, debe cumplimentar sí o sí:
- Herramienta activa. Para no aumentar la deuda técnica, se debe considerar una herramienta que tenga un mantenimiento activo con lanzamiento de actualizaciones más o menos frecuente y con soporte.
Los gestores de tareas considerados atendiendo a los criterios citados son:
A1. poethepoet : última versión v0.16.5 (Noviembre 2022). ✔️
A2. pypyr : última versión v5.7.1 (Octubre 2022). ✔️
A3. invoke : última versión v1.7.3 (Septiembre 2022). Se espera un lanzamiento de una nueva versión próximamente. ✔️
El criterio de que sea una herramienta activa, no es suficiente para la elección de un gestor frente a otro, por lo que se valorará a continuación las características más significativas de cada uno:
-
poethepoet:
⚠️ Utiliza el ficheropyproject.toml
para la definición de tareas. (Ventajas: Sencillez, Reducción del uso de ficheros). poethepoet readme⚠️ Utiliza un ejecutor específico para tareas dentro del entorno manejado por poetry. poethepoet executor type.⚠️ Es una herramienta bastante popular.
-
pypyr:
⚠️ Utiliza un fichero de extensión.yaml
para definir las tareas. (Ventajas: Sencillez, Fácil comprensión) pypyr 1st pipeline⚠️ No es tan popular como las otras herramientas.
-
invoke:
⚠️ Inspirado enmake
. (Ventajas: Fácil adaptación y aprendizaje si se ha trabajado con make anteriormente.)⚠️ Utiliza un fichero script de pythontasks.py
. (Ventajas: invocación de múltiples tareas en una única llamada) What is invoke.⚠️ Es una herramienta muy popular. Además, es de los más utilizados actualmente.
poethepoet es el gestor de tareas que utilizaré para mi proyecto. De las tres propuestas, es la que ha recibido una última actualización más frecuente, además de que el hecho de que aproveche el fichero pyproject.toml
para definir también las tareas, e incluso que disponga de opciones específicas para poetry, hace que sea idóneo para el proyecto.