Publicado 2018-08-23.
Palabras clave: python templates
Recordando la documentación de pyramid referente a la creación de proyectos, empiezo la búsqueda de opciones por cookiecutter.
La sección similar projects en el sitio web da una idea de alternativas. También el sitio alternativeto: alternativas a cookiecutter, alternativas a yeoman aunque la mayoría son para realizar desarrollos web, las descarto por estar interesado en proyectos genéricos. Por interes (o completitud parcial) busqué algún equivalente en perl sin encontrar algo significativo (en unos 20 minutos de busqueda bastante aleatoria).
Al final elegí entre las siguientes alternativas:
A continuación algunas comparaciones entre ellos luego de leer sus respectivas páginas de documentación (docs cookiecutter, docs yeoman (relativa a creación de generadores))
CK: se crea un nuevo proyecto en base a un template. Una vez creado el proyecto no se pueden crear nuevos elementos (ver el issue #785 en github).
Los templates son creados utilizando jinja2 como template engine. Estos templates pueden estar almacenados en repositorios git, repositorios mercurial y archivos zip. Pueden poseer lógica en forma de hooks, pero es opcional.
YM: se utilizan generadores (scaffolding templates) para la creación de proyectos y elementos dentro de estos.
El generador es un paquete npm que debe codificarse y puede utilizar templates mediante ejs (ver sección Working With The File System en la documentación). También se permite actualizar archivos, quedando la elección del uso de parsers al usuario.
Pueden componerse generadores.
Impresiones:
CK: No hay muchos templates disponibles, una lista de ellos se encuenta en el sitio web.
YM: Hay muchos generadores disponibles. Conviene buscarlos mediante la página Discovering generators en el sitio web.
Impresión:
CK: varios ejemplos en la documentación. Ya que lo único que hace CK al crear un proyecto es renderizar los templates hay abundantes ejemplos.
YM: falta un ejemplo o tutorial que indique como crear en generador desde cero. Las indicaciones que hay en la página web son muy genéricas, ya que se deja a criterio del implementador que herramientas utilizar.
YM cuenta con un generator-generator que puede utilizarse para crear generadores, pero no fué investigado.
Impresión:
Ya que:
voy a optar por comenzar a utilizar cookiecutter para la creación de futuros proyectos.
La opción de yeoman quedará para cuando requiera crear un template más complejo de lo que pueda manejar con CK o donde realmente requiera el uso de scaffolding para crear/modificar archivos tal que amerite aprender sobre yeoman.