Python monorrepos

Voy a probar una forma de crear monorrepos distinta a como lo hacía en el ITI. Me voy a basar en los artículos al respecto de Tweag.

Estructura de carpetas

En la base dos directorios, uno libs, librerías/paquetes compartidos, y otro projects, con los proyectos en sí1. En python existe una herramienta para usar un repositorio con polylith, pero prefiero no meterme en ese lío ahora.

En la base también dev-requirements.txt, que será común para todo (en el ITI cada servicio/aplicación tenía sus requerimientos de desarrollo). Y cada paquete, ya sea librería o proyecto, tendrá su pyproject.toml, su requirements.txt con dependencias congeladas, pero no usan (ni usaré) pip-tools, sino que lo haré a mano.

Ambiente

Cada proyecto tendrá su propio venv, lo que me gusta más que lo teníamos en el ITI y me ha llevado a usar esta configuración sobre lo que recuerdo que hacíamos allí.


  1. Los proyectos son elementos que conectan con el exterior. ↩︎