Python monorrepos
Índice
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í.
Notas
Los proyectos son elementos que conectan con el exterior.