Skip to main content

CLI scaffolder for multi-project Odoo development workspaces

Project description

          ██████   ██████  ██       █████  ██████
         ██    ██ ██    ██ ██      ██   ██ ██   ██
         ██    ██ ██    ██ ██      ███████ ██████
         ██    ██ ██    ██ ██      ██   ██ ██   ██
          ██████   ██████  ███████ ██   ██ ██████

odoo-lab (oolab)

CLI scaffolder para crear y gestionar workspaces de desarrollo Odoo con soporte multi-proyecto.

Python 3.10+ Odoo 16-19 License: LGPL-3

Desarrollado por IKU Solutions SAS | Autor: Yan Chirino <yan.chirino@iku.solutions>


Que es oolab?

oolab es una herramienta de linea de comandos que automatiza la creacion y gestion de entornos de desarrollo Odoo. Permite trabajar con multiples proyectos de clientes simultaneamente, compartiendo un solo framework Odoo (Community + Enterprise opcional), con configuraciones de debug individuales por proyecto.

Caracteristicas principales

  • Multi-proyecto: gestiona multiples clientes/tenants en un solo workspace
  • Multi-version: soporte para Odoo 16, 17, 18 y 19
  • Enterprise ready: integra Odoo Enterprise via git o copia local (requiere licencia propia)
  • VSCode integrado: genera launch.json con configs de debug por proyecto (run, shell, install, update)
  • Entornos aislados: venvs por version de Odoo (.venv-v19, .venv-v18)
  • Scaffold OCA: crea proyectos vacios con estructura de calidad (pre-commit, ruff, pylint)
  • Dependencias robustas: instalacion con uv + fallbacks automaticos
  • Interactivo: wizard paso a paso con spinners y feedback visual
  • Multi-plataforma: compatible con macOS, Linux y Windows

Sobre Odoo Enterprise

oolab permite configurar proyectos que usan Odoo Enterprise, pero no incluye ni distribuye los modulos Enterprise. Para usarlos necesitas:

  • Tener una suscripcion activa de Odoo Enterprise o ser partner autorizado de Odoo.
  • Acceso al repositorio privado github.com/odoo/enterprise (Odoo otorga acceso con la suscripcion), o bien tener una copia local de los modulos Enterprise en tu maquina.

Al agregar un proyecto Enterprise con oolab add, el CLI te preguntara si quieres clonar desde un repositorio git (necesitas acceso SSH/HTTPS al repo de Enterprise) o indicar un directorio local donde ya tengas los modulos.

Importante: Los modulos Enterprise estan protegidos por la licencia Odoo Enterprise Edition. Consulta los terminos de licencia de Odoo antes de usarlos.


Instalacion

Requisitos previos

  • Python >= 3.10
  • git
  • Docker + Docker Compose v2
  • uv (se instala automaticamente si no existe)

Instalar uv (si no lo tienes)

macOS / Linux:

curl -LsSf https://astral.sh/uv/install.sh | sh

Windows (PowerShell):

powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

Instalar oolab

uv tool install odoo-lab --python 3.11

O con pipx:

pipx install odoo-lab

Agregar al PATH (si es necesario)

macOS / Linux (zsh):

echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc

macOS / Linux (bash):

echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc

Windows (PowerShell): uv agrega automaticamente al PATH. Si no, agrega %USERPROFILE%\.local\bin a las variables de entorno del sistema.

Instalar desde el codigo fuente (para desarrollo)

Si quieres contribuir o modificar oolab:

git clone https://github.com/ikusolutions/odoo-lab.git
cd odoo-lab
uv tool install -e . --python 3.11

Verificar

oolab -v

Quick Start

# 1. Navega a donde quieres crear el workspace
cd ~/Projects

# 2. Crea el workspace (wizard interactivo)
oolab init

# 3. Entra al workspace creado
cd odoo-launchpad

# 4. Agrega proyectos de clientes
oolab add

# 5. Abre en VSCode y presiona F5
code .

Comandos

Comando Descripcion
oolab init Crea un nuevo workspace odoo-launchpad/ con wizard interactivo
oolab add Agrega un proyecto de cliente (clona repo o crea con scaffold OCA)
oolab remove <nombre> Elimina un proyecto del workspace
oolab list Lista todos los proyectos configurados con su estado
oolab generate Regenera todos los archivos de configuracion desde oolab.yaml
oolab doctor Verifica dependencias del sistema (git, docker, uv, python)
oolab -v Muestra version e informacion del CLI
oolab -h Muestra la ayuda

Estructura del workspace

odoo-launchpad/
├── odoo/                 # Odoo Community (compartido entre proyectos)
├── enterprise/           # Enterprise addons (opcional, compartido)
├── tenants/
│   ├── cliente-a/        # Proyecto de cliente A (repo independiente)
│   └── cliente-b/        # Proyecto de cliente B (repo independiente)
├── config/
│   └── odoo/odoo.conf    # Configuracion central de Odoo
├── docker/
│   └── docker-compose.yaml
├── .vscode/
│   ├── launch.json       # Configs de debug: Community, Shell, Update, Install + tenants
│   ├── settings.json     # Python paths, venv
│   └── tasks.json        # docker-compose-up
├── .venv-v19/            # Entorno virtual (uno por version de Odoo)
├── .env
└── oolab.yaml            # Fuente de verdad del workspace

Ejemplo de uso

Crear workspace con Enterprise y un cliente

$ cd ~/Projects
$ oolab init

  Odoo Lab v0.1.0  |  IKU Solutions SAS  |  https://www.iku.solutions

  Version de Odoo [16 / 17 / 18 / 19] (19): 19
  Incluir Enterprise? [y/n]: y
  URL del repositorio Enterprise: git@github.com:odoo/enterprise.git
  Agregar un proyecto de cliente ahora? [y/n]: y
  Nombre del proyecto: Mi Cliente ERP
  Clonar desde un repositorio existente? [y/n]: y
  URL del repositorio: git@github.com:org/mi-cliente-erp.git

  ...spinners y progreso...

  Workspace listo!

Agregar otro proyecto despues

$ cd odoo-launchpad
$ oolab add

  Nombre del proyecto: Otro Cliente
  Version de Odoo [16 / 17 / 18 / 19] (19): 18
  Clonar desde un repositorio existente? [y/n]: n

  Proyecto 'Otro Cliente' agregado correctamente.

Contribuir

Las contribuciones son bienvenidas! Este es un proyecto open source mantenido por IKU Solutions SAS.

Como contribuir

  1. Fork el repositorio
  2. Crea tu branch (git checkout -b feature/mi-feature)
  3. Commit tus cambios (git commit -m 'feat: descripcion')
  4. Push al branch (git push origin feature/mi-feature)
  5. Abre un Pull Request

Reportar issues

Si encuentras un bug o tienes una sugerencia, abre un issue.

Guias de desarrollo

  • Usa Conventional Commits para mensajes de commit
  • El codigo sigue las convenciones de Ruff con line-length=88
  • Pre-commit hooks recomendados para calidad de codigo

Roadmap

  • Soporte para multiples versiones de Odoo en un mismo workspace
  • Comando oolab upgrade para actualizar el framework
  • Comando oolab db para gestionar bases de datos
  • Soporte para PyCharm/IntelliJ
  • Publicacion en PyPI

Licencia

Este proyecto esta licenciado bajo LGPL-3.0-or-later.

Copyright (c) 2026 IKU Solutions SAS
Autor: Yan Chirino <yan.chirino@iku.solutions>
Website: https://www.iku.solutions

Hecho con Python + Typer + Rich por IKU Solutions

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

odoo_lab-0.1.1.tar.gz (26.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

odoo_lab-0.1.1-py3-none-any.whl (31.0 kB view details)

Uploaded Python 3

File details

Details for the file odoo_lab-0.1.1.tar.gz.

File metadata

  • Download URL: odoo_lab-0.1.1.tar.gz
  • Upload date:
  • Size: 26.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for odoo_lab-0.1.1.tar.gz
Algorithm Hash digest
SHA256 c8b2d5e8c5075cefa3145bd914e5864eb4020830dcb9f2480ec93967e2541e0b
MD5 7a2a8c5370b4b673f32c3844890a1b01
BLAKE2b-256 67b499d55eeec2dd119b5cfb9f0f658649c602493290cf42773ed222b421f474

See more details on using hashes here.

Provenance

The following attestation bundles were made for odoo_lab-0.1.1.tar.gz:

Publisher: publish.yml on ikusolutions/odoo-lab

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file odoo_lab-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: odoo_lab-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 31.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for odoo_lab-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 51d0a8574d191acc8f6b93aefa3818bb45b952dfda7d0c583e6a545fcc3e1e18
MD5 3381c5eb3a32d170b21ea9060b2bafab
BLAKE2b-256 cb99c658a6b7bd0daec3cdf46ae8171adf95521df0fb32b0ae5a96ffbdf6642a

See more details on using hashes here.

Provenance

The following attestation bundles were made for odoo_lab-0.1.1-py3-none-any.whl:

Publisher: publish.yml on ikusolutions/odoo-lab

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page