Saltar al contenido principal

Organizar módulos en directorios anidados

Skysize monta la raíz de tu repositorio dentro del contenedor de Odoo y la escanea un nivel de profundidad en busca de módulos. Un subdirectorio inmediato de la raíz que contiene un archivo __manifest__.py se detecta como un módulo de Odoo. Skysize no recurre a subdirectorios más profundos.


Estructura recomendada: módulos en la raíz del repositorio

La estructura más simple y confiable coloca cada módulo directamente en la raíz del repositorio:

my-odoo-repo/
├── account_extension/ ← module (has __manifest__.py) ✅
├── payment_custom/ ← module (has __manifest__.py) ✅
├── hr_attendance_extra/ ← module (has __manifest__.py) ✅
└── hr_contract_custom/ ← module (has __manifest__.py) ✅

Con esta estructura, cada módulo está exactamente un nivel por debajo de la raíz, por lo que todos se detectan automáticamente. No se requiere configuración adicional.


El problema con los directorios anidados

Si tus módulos están agrupados en carpetas intermedias, están a dos o más niveles de profundidad y no serán detectados:

my-odoo-repo/
└── addons/
├── finance/
│ ├── account_extension/ ← three levels deep ❌ not detected
│ └── payment_custom/ ← three levels deep ❌ not detected
└── hr/
├── hr_attendance_extra/ ← three levels deep ❌ not detected
└── hr_contract_custom/ ← three levels deep ❌ not detected

Aquí la raíz del repositorio contiene solo addons/, que no tiene un __manifest__.py, por lo que Skysize no encuentra ningún módulo.

Solución recomendada: configurar una ruta de addons personalizada

Para mantener los módulos en subdirectorios, indícale a Skysize dónde buscar usando el campo Ruta de addons personalizados en la configuración de la rama (en Configuración de addons). Enumera uno o más directorios relativos a la raíz de tu repositorio, cada uno comenzando con /, separados por comas:

/addons/finance,/addons/hr

Con ese ajuste, Skysize escanea addons/finance y addons/hr en busca de módulos (un nivel de profundidad, como de costumbre), por lo que los cuatro módulos del ejemplo anterior se detectan. Las rutas se resuelven respecto a tu repositorio, así que /addons/finance significa la carpeta addons/finance de tu repositorio.

Algunas cosas que debes saber:

  • Cada ruta debe comenzar con /, Skysize rechaza las entradas que no lo hagan.
  • El ajuste se guarda por rama y se aplica en el siguiente despliegue.
  • Las rutas personalizadas reemplazan el escaneo a nivel de raíz. Si también mantienes módulos en la raíz del repositorio, incluye la raíz en la lista también.

Solución alternativa: aplanar a la raíz

Si prefieres no usar el campo, mueve las carpetas de los módulos para que cada una quede directamente en la raíz del repositorio:

git mv addons/finance/account_extension ./account_extension
git mv addons/finance/payment_custom ./payment_custom
git mv addons/hr/hr_attendance_extra ./hr_attendance_extra
git mv addons/hr/hr_contract_custom ./hr_contract_custom
git commit -m "Flatten module layout to repository root"
git push

El siguiente despliegue detectará los cuatro módulos.


Instalar los módulos en Odoo

Los módulos detectados están disponibles en el servidor pero no se instalan automáticamente.

  1. Abre tu instancia de Odoo.
  2. Activa el modo desarrollador: Settings → Activate the developer mode (Ajustes → Activar el modo desarrollador).
  3. Ve a Apps, haz clic en Update Apps List (Actualizar lista de aplicaciones), luego busca cada módulo y haz clic en Install (Instalar).