Odoo: mas de 2000 modulos a disposicion de las empresas

Descubra el set de módulos o vertical que más se adapte a su sector

Avanzosc, Administrador Avanzosc

RUNBOT: ¿Qué es y para qué sirve?

Como consultor funcional y responsable de proyectos en avanzosc, uno de mis caballos de batalla es intentar que la calidad de código y la funcionalidad de nuestros módulos sea comprobada antes de que sean instalados en entornos productivos.

Hasta hace relativamente poco tiempo y en la mayoría de las soluciones de mercado, la única forma de hacer esto, era tener un entorno "pruebas/demo" donde los técnicos instalaban su recientemente creado o modificado módulo y los funcionales intentábamos encontrar los agujeros o fallos de código antes de presentarlo al cliente e instalarlo en su entorno.

Para minimizar el impacto de errores y tener un entorno funcional donde testear el código y todas las mejoras que se van introduciendo, Odoo cuenta con una impresionante herramienta llamada runbot

Como usar GITHUB + RUNBOT desde el punto de vista funcional

Usar en conjunto ambas herramientas te permiten testear rápidamente cualquier modificación o nuevo módulo publicado por Odoo o por la comunidad

A los neófitos en Odoo, es necesario explicar que actualmente la herramienta que se utiliza para publicar código de Odoo es Github. En el enlace podeis ver el listado de módulos que incluye de base el core de Odoo (antes OpenERP) versión 8.0

En la parte derecha se pueden visualizar el botón "PULL REQUEST". 

Pull Request --> Enlace github / runbot

Un Pull request es código que se quiere fusionar con la actual versión publicada de la herramienta.

Así por ejemplo, si alguien encuentra un problema o "issue", para el que hay que modificar un módulo, dicha modificación se sube a github mediante un Pull Request o PR. 

Cada PR puede corresponder a un módulo nuevo [ADD], corrección [FIX], mejora [IMP]. Estas etiquetas se añaden en el nombre de cada módulo. Además, cada uno de ellos está numerado y este número aparece justo debajo del nombre  por ejemplo, #8026

Cada vez que alguien realiza un nuevo PR, sea para lo que sea, es necesario comprobar que no "rompe" nada de lo que está programado en la versión estable. Existe en Odoo la posibilidad de incluir en el módulo casos automáticos de test que pueden realizar esta validación, pero esto sería otro capítulo. Veamos ahora cómo comprobar la validez de un PR en runbot.

Runbot: Las cajas de colores

Cada caja de colores corresponde en runbot a una instancia, un "build" de Odoo, incluyendo parte del código completo. 

Por cada versión/PR... etc se mantienen únicamente los 4 últimos "build". Según se van añadiendo o fusionando nuevas cosas, nuevos builds aparecen a la izquierda y los más antiguos desaparecen por la derecha

Si cogemos la fila marcada con una estrella amarilla y la etiqueta 8.0, estamos mirando la versión estable 8.0 de Odoo. Si cogemos la de arriba estaremos mirando la versión anterior 7.0. Si bajamos una línea, vemos "master", sería la versión futura y más abajo aún, cada una de las versiones de SAAS que mantiene Odoo. 

Cada fila contiene cajas que están en "verde" (todos los test fueron correctos y está funcionando), "rojo" (algo falló y probablemente no funcione), "azul" (Se está creando un build, o está pendiente)

Cada caja contiene además una puerta azul, que si pulsamos nos lleva directamente a una base de datos en esa versión que podemos testear. Podemos crear cosas, borrar, cambiar, instalar módulos... hacer un poco lo que queramos con ello igual que si hiciésemos una instalación en local. Con la diferencia de que esto es efímero. En cuanto haya otros 4 builds la base de datos en la que hemos estado probando desaparecerá.

Probando un PR

La enorme, increible ventaja de Runbot es que puedes PROBAR código ANTES de que la fusión se realice con el código base.

Si hacemos un poco de scroll hacia abajo, veremos que cada PR es a su vez una fila. Cada número de PR en Github aparece en runbot. Solo tenemos que buscarlo y de nuevo pulsar la puerta azul para ver nuestro nuevo código instalado en esa instancia y podemos probarlo, detectando prosible problemas o mejoras a realizar. 

Para completar el ciclo, si se ve que el PR es correcto y se aprueba la fusión con el codigo base, se indica en Github un comentario incluyendo +1. Si no se aprueba o hay algún problema se indica igualmente incluyendo -1. 

Esta forma de hacerlo, permite a los técnicos revisar el código antes de la fusión y modificarlo bien actualizando el PR existente, bien creando otro nuevo que a su vez se podrá testear en Runbot.

Ramas OCA en Github

runbot.odoo-community.com

Todos los ejemplos vistos hasta el momento se basan en la rama principal de Odoo publicada por la casa madre en Bélgica. La herramienta runbot.odoo.com permite testear el core base pero... también existe un runbot de la comunidad gestionado por OCA: Odoo Community Association, la comunidad mundial internacional de Odoo. 
El funcionamiento básico es exactamente igual que el descrito, con la diferencia de que las ramas de la comunidad internacional están en https://github.com/OCA. De esta rama principal derivan decenas de proyectos comunitarios, en los que la comunidad mundial publica módulos y mejora los existentes a diario. 
Cada proyecto OCA corresponde a una temática concreta y extiende el área del core en dicha temática. Así, por ejemplo, stock-logistics-workflow incluye módulos que extienden el área de stock, y sale-workflow incluye módulos que extienden el core en ventas. 
Si volvemos a runbot podemos ver en la parte de arriba a la izquierda un desplegable donde se puede seleccionar la rama de github que se desea testear. Por tanto, por ejemplo si queremos entrar a validar o probar módulos de sale-workflow, tendremos que seleccionar dicha rama en el desplegable y entrar en cualquiera de las puertas azules que estén disponibles. 
En TODOS los casos, todas las bases de datos, el usuario y password a utilizar es admin/admin tanto en el runbot de Odoo core, como en el runbot de la comunidad.

Github y Runbot para OdooMRP

Comentar que nuestro proyecto estrella OdooMRP (Enfoque vertical de Odoo para empresas de fabricación) está publicado en las siguientes ramas de Github
se puede probar en el runbot de la comunidad aunque nuestras ramas aún no están fusionadas con OCA. Para encontrarlos hay que hacer bastante scroll en el desplegable de ramas de runbot, por lo que os paso el link