Aller au contenu principal

Organiser les modules dans des répertoires imbriqués

Skysize monte la racine de votre dépôt dans le conteneur Odoo et l'analyse sur un niveau de profondeur pour trouver les modules. Un sous-répertoire direct de la racine contenant un fichier __manifest__.py est détecté comme un module Odoo. Skysize ne parcourt pas les sous-répertoires plus profonds.


Structure recommandée : modules à la racine du dépôt

La structure la plus simple et la plus fiable place chaque module directement à la racine du dépôt :

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) ✅

Avec cette structure, chaque module se trouve exactement un niveau sous la racine, ils sont donc tous détectés automatiquement. Aucune configuration supplémentaire n'est requise.


Le problème des répertoires imbriqués

Si vos modules sont regroupés sous des dossiers intermédiaires, ils sont à deux niveaux de profondeur ou plus et ne seront pas détectés :

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

Ici, la racine du dépôt ne contient que addons/, qui n'a pas de __manifest__.py, donc Skysize ne trouve aucun module.

Correctif recommandé : définir un Chemin des addons personnalisés

Pour conserver les modules dans des sous-répertoires, indiquez à Skysize où chercher à l'aide du champ Chemin des addons personnalisés dans les paramètres de la branche (sous Configuration des addons). Listez un ou plusieurs répertoires relatifs à la racine de votre dépôt, chacun commençant par /, séparés par des virgules :

/addons/finance,/addons/hr

Avec ce paramètre, Skysize analyse addons/finance et addons/hr pour trouver les modules (un niveau de profondeur, comme d'habitude), de sorte que les quatre modules de l'exemple ci-dessus sont détectés. Les chemins sont résolus par rapport à votre dépôt, donc /addons/finance désigne le dossier addons/finance de votre dépôt.

Quelques points à connaître :

  • Chaque chemin doit commencer par /, Skysize rejette les entrées qui ne le font pas.
  • Le paramètre est enregistré par branche et appliqué au prochain déploiement.
  • Les chemins personnalisés remplacent l'analyse au niveau de la racine. Si vous conservez aussi des modules à la racine du dépôt, incluez également la racine dans la liste.

Correctif alternatif : aplatir vers la racine

Si vous préférez ne pas utiliser le champ, déplacez les dossiers de modules pour que chacun se trouve directement à la racine du dépôt :

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

Le prochain déploiement détectera les quatre modules.


Installer les modules dans Odoo

Les modules détectés sont disponibles sur le serveur mais ne sont pas installés automatiquement.

  1. Ouvrez votre instance Odoo.
  2. Activez le mode développeur : Settings → Activate the developer mode.
  3. Allez dans Apps, cliquez sur Update Apps List, puis recherchez chaque module et cliquez sur Install.