Como crear tu propio repositorio en Github al estilo OCA

En general, todos los implantadores de odoo disponen de repositorios en los que definen sus propios módulos. Estos repositorios pueden ser públicos o privados, genéricos o específicos de un cliente, pero no por ello es necesario renunciar a las opciones que nos proporciona la Odoo Community Association (OCA).

En este artículo, queremos mostrar como podemos usar las mismas herramientas de la OCA en nuestros propios módulos.

Homogenización y validación

Una de las partes más importantes en la OCA es la homogenización y la validación automática del código, cosa que simplifica mucho su mantenimiento.

La homogenización se consigue usando pre-commit en nuestros repositorios. Estos obligará a que nuestro código siga un conjunto de buenas prácticas que nos beneficiará a la hora de formar a nuevas personas y a la hora de validar el trabajo realizado, ya que nos obligará a todos a seguir las mismas prácticas.

Por otro lado, la validación automática nos permitirá realizar una instalación automática y un sistema de testeo que nos permitirá verificar que el código funciona bajo ciertas condiciones. Obviamente esto no nos asegura una fiabilidad absoluta, pero nos permite tener una seguridad extra a la hora de trabajar y verificar el trabajo de nuestros equipos.

Para configurarlo debemos hacer lo siguiente desde la carpeta del repositorio:

$ copier copy https://github.com/OCA/oca-addons-repo-template.git/ . --trust

Tras este comando, el sistema nos empezará a realizar varias preguntas para configurar-lo a nuestro gusto, incluyendo información como la versión de odoo a usar, el nombre del repositorio o el nombre de la organización.

Una vez realizado tendremos la configuración para usar pre-commit de forma nativa al realizar cualquier commit. Además, al realizar PRs se nos ejecutará automáticamente las acciones automatizadas.

Creación de módulos de forma más rápida

A la hora de crear módulos, existe una ayuda que nos permitirá facilitar la creación de ficheros módulos y tests. No nos creará el codigo detallado pero nos creará la estructura base a usar de forma que nos sea más sencillo. Por ello podemos usar una herramienta conocida como mrbob. Con esta herramienta, cuando queramos crear un módulo solo deberemos hacer:

$ mrbob bobtemplates.odoo:addon

Nos solicitará los datos básicos y tendremos rápidamente la estructura básica del módulo creada. De forma equivalente podremos añadir un modelo desde un módulo haciendo

$ mrbob bobtemplates.odoo:model

Incluso nos solicitará si queremos crear vistas relacionadas con el modelo.

Bonus track: Gestión de múltiples entornos

Habitualmente, las consultorías deben trabajar con diferentes versiones de odoo. Principalmente se debe a que pueden existir clienes con versiones antiguas o que quieres probar ciertas funcionalidades nuevas o antiguas. Si usamos una instalación in situ normal esto siempre nos puede dar muchos problemas, ya que nos obliga a generar varios entornos de python con su versión por defecto según la versión de Odoo que estemos testeando.

En estos casos, nosotros recomendamos dockerizar tus diferentes entornos. Al dockerizarlo, aseguramos que usamos la versión específica necesaria e incluso podemos replicar los entornos de nuestros clientes con sus mismas especificaciones. En nuestra caso usamos Doodba, una herramienta creada por Tecnativa.

Para usar doodba desde nuestro ordenador, lo más eficiente es usar la plantilla de instalación que nos proponen. Con ella, usaremos copier para que nos haga varias consultas y automáticamente nos genere el todos los ficheros necesarios para crear el contenedor. Si se quiere profundizar en su uso, lo mejor es seguir sus manuales para obtener toda la información necesaria.

Firmando documentos con OCA