odoo-lab 0.1.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. odoo_lab-0.1.0/.github/workflows/ci.yml +52 -0
  2. odoo_lab-0.1.0/.github/workflows/publish.yml +32 -0
  3. odoo_lab-0.1.0/.gitignore +30 -0
  4. odoo_lab-0.1.0/LICENSE +13 -0
  5. odoo_lab-0.1.0/PKG-INFO +305 -0
  6. odoo_lab-0.1.0/README.md +270 -0
  7. odoo_lab-0.1.0/pyproject.toml +67 -0
  8. odoo_lab-0.1.0/src/oolab/__init__.py +14 -0
  9. odoo_lab-0.1.0/src/oolab/cli.py +63 -0
  10. odoo_lab-0.1.0/src/oolab/commands/__init__.py +0 -0
  11. odoo_lab-0.1.0/src/oolab/commands/add.py +325 -0
  12. odoo_lab-0.1.0/src/oolab/commands/doctor.py +131 -0
  13. odoo_lab-0.1.0/src/oolab/commands/generate.py +101 -0
  14. odoo_lab-0.1.0/src/oolab/commands/init.py +525 -0
  15. odoo_lab-0.1.0/src/oolab/commands/list.py +58 -0
  16. odoo_lab-0.1.0/src/oolab/commands/remove.py +64 -0
  17. odoo_lab-0.1.0/src/oolab/config.py +164 -0
  18. odoo_lab-0.1.0/src/oolab/scaffold.py +250 -0
  19. odoo_lab-0.1.0/src/oolab/templates/README.md.j2 +125 -0
  20. odoo_lab-0.1.0/src/oolab/templates/docker-compose.yaml.j2 +35 -0
  21. odoo_lab-0.1.0/src/oolab/templates/env.j2 +4 -0
  22. odoo_lab-0.1.0/src/oolab/templates/extensions.json.j2 +7 -0
  23. odoo_lab-0.1.0/src/oolab/templates/gitignore.j2 +49 -0
  24. odoo_lab-0.1.0/src/oolab/templates/launch.json.j2 +91 -0
  25. odoo_lab-0.1.0/src/oolab/templates/nginx.conf.j2 +43 -0
  26. odoo_lab-0.1.0/src/oolab/templates/odoo.conf.j2 +42 -0
  27. odoo_lab-0.1.0/src/oolab/templates/settings.json.j2 +12 -0
  28. odoo_lab-0.1.0/src/oolab/templates/tasks.json.j2 +19 -0
  29. odoo_lab-0.1.0/src/oolab/versions.py +39 -0
  30. odoo_lab-0.1.0/wiki/Comandos.md +94 -0
  31. odoo_lab-0.1.0/wiki/Contribuir.md +70 -0
  32. odoo_lab-0.1.0/wiki/Enterprise.md +48 -0
  33. odoo_lab-0.1.0/wiki/Estructura-del-Workspace.md +76 -0
  34. odoo_lab-0.1.0/wiki/FAQ.md +49 -0
  35. odoo_lab-0.1.0/wiki/Home.md +33 -0
  36. odoo_lab-0.1.0/wiki/Instalacion.md +74 -0
  37. odoo_lab-0.1.0/wiki/Quick-Start.md +74 -0
@@ -0,0 +1,52 @@
1
+ name: CI
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ pull_request:
7
+ branches: [main]
8
+
9
+ jobs:
10
+ lint:
11
+ name: Lint & Quality
12
+ runs-on: ubuntu-latest
13
+ steps:
14
+ - uses: actions/checkout@v4
15
+
16
+ - name: Set up Python
17
+ uses: actions/setup-python@v5
18
+ with:
19
+ python-version: "3.11"
20
+
21
+ - name: Install uv
22
+ uses: astral-sh/setup-uv@v4
23
+
24
+ - name: Install dependencies
25
+ run: uv pip install --system -e ".[dev]"
26
+
27
+ - name: Ruff check
28
+ run: ruff check src/
29
+
30
+ - name: Ruff format check
31
+ run: ruff format --check src/
32
+
33
+ build:
34
+ name: Build package
35
+ runs-on: ubuntu-latest
36
+ needs: lint
37
+ steps:
38
+ - uses: actions/checkout@v4
39
+
40
+ - name: Set up Python
41
+ uses: actions/setup-python@v5
42
+ with:
43
+ python-version: "3.11"
44
+
45
+ - name: Install build tools
46
+ run: pip install hatchling build
47
+
48
+ - name: Build
49
+ run: python -m build
50
+
51
+ - name: Check package
52
+ run: pip install twine && twine check dist/*
@@ -0,0 +1,32 @@
1
+ name: Publish to PyPI
2
+
3
+ on:
4
+ release:
5
+ types: [published]
6
+
7
+ permissions:
8
+ id-token: write
9
+
10
+ jobs:
11
+ publish:
12
+ name: Build and publish to PyPI
13
+ runs-on: ubuntu-latest
14
+ environment:
15
+ name: pypi
16
+ url: https://pypi.org/p/odoo-lab
17
+ steps:
18
+ - uses: actions/checkout@v4
19
+
20
+ - name: Set up Python
21
+ uses: actions/setup-python@v5
22
+ with:
23
+ python-version: "3.11"
24
+
25
+ - name: Install build tools
26
+ run: pip install hatchling build
27
+
28
+ - name: Build package
29
+ run: python -m build
30
+
31
+ - name: Publish to PyPI
32
+ uses: pypa/gh-action-pypi-publish@release/v1
@@ -0,0 +1,30 @@
1
+ # Python
2
+ __pycache__/
3
+ *.py[cod]
4
+ *$py.class
5
+ *.so
6
+ *.egg-info/
7
+ *.egg
8
+ dist/
9
+ build/
10
+
11
+ # Virtual environments
12
+ .venv/
13
+ venv/
14
+
15
+ # IDE
16
+ .idea/
17
+ .vscode/
18
+ *.sw?
19
+
20
+ # OS
21
+ .DS_Store
22
+ Thumbs.db
23
+
24
+ # Testing
25
+ .tox/
26
+ .coverage
27
+ htmlcov/
28
+ .pytest_cache/
29
+ .mypy_cache/
30
+ .ruff_cache/
odoo_lab-0.1.0/LICENSE ADDED
@@ -0,0 +1,13 @@
1
+ GNU LESSER GENERAL PUBLIC LICENSE
2
+ Version 3, 29 June 2007
3
+
4
+ Copyright (C) 2026 IKU Solutions SAS <https://www.iku.solutions>
5
+
6
+ Everyone is permitted to copy and distribute verbatim copies of this
7
+ license document, but changing it is not allowed.
8
+
9
+ This version of the GNU Lesser General Public License incorporates the
10
+ terms and conditions of version 3 of the GNU General Public License,
11
+ supplemented by the additional permissions listed below.
12
+
13
+ For the full license text, see: https://www.gnu.org/licenses/lgpl-3.0.html
@@ -0,0 +1,305 @@
1
+ Metadata-Version: 2.4
2
+ Name: odoo-lab
3
+ Version: 0.1.0
4
+ Summary: CLI scaffolder for multi-project Odoo development workspaces
5
+ Project-URL: Homepage, https://www.iku.solutions
6
+ Project-URL: Repository, https://github.com/ikusolutions/odoo-lab
7
+ Project-URL: Issues, https://github.com/ikusolutions/odoo-lab/issues
8
+ Author-email: Yan Chirino <yan.chirino@iku.solutions>
9
+ Maintainer-email: IKU Solutions SAS <info@iku.solutions>
10
+ License-Expression: LGPL-3.0-or-later
11
+ License-File: LICENSE
12
+ Keywords: cli,development,erp,odoo,scaffolder,workspace
13
+ Classifier: Development Status :: 4 - Beta
14
+ Classifier: Environment :: Console
15
+ Classifier: Framework :: Odoo
16
+ Classifier: Intended Audience :: Developers
17
+ Classifier: License :: OSI Approved :: GNU Lesser General Public License v3 or later (LGPLv3+)
18
+ Classifier: Operating System :: MacOS
19
+ Classifier: Operating System :: POSIX :: Linux
20
+ Classifier: Programming Language :: Python :: 3
21
+ Classifier: Programming Language :: Python :: 3.10
22
+ Classifier: Programming Language :: Python :: 3.11
23
+ Classifier: Programming Language :: Python :: 3.12
24
+ Classifier: Topic :: Software Development :: Build Tools
25
+ Requires-Python: >=3.10
26
+ Requires-Dist: jinja2>=3.1
27
+ Requires-Dist: pyyaml>=6.0
28
+ Requires-Dist: rich>=13.0
29
+ Requires-Dist: typer>=0.9
30
+ Provides-Extra: dev
31
+ Requires-Dist: build; extra == 'dev'
32
+ Requires-Dist: ruff>=0.6; extra == 'dev'
33
+ Requires-Dist: twine; extra == 'dev'
34
+ Description-Content-Type: text/markdown
35
+
36
+
37
+ ```
38
+ ██████ ██████ ██ █████ ██████
39
+ ██ ██ ██ ██ ██ ██ ██ ██ ██
40
+ ██ ██ ██ ██ ██ ███████ ██████
41
+ ██ ██ ██ ██ ██ ██ ██ ██ ██
42
+ ██████ ██████ ███████ ██ ██ ██████
43
+ ```
44
+
45
+ # odoo-lab (`oolab`)
46
+
47
+ **CLI scaffolder para crear y gestionar workspaces de desarrollo Odoo con soporte multi-proyecto.**
48
+
49
+ [![Python 3.10+](https://img.shields.io/badge/python-3.10%2B-blue.svg)](https://www.python.org/)
50
+ [![Odoo 16-19](https://img.shields.io/badge/odoo-16%20|%2017%20|%2018%20|%2019-blueviolet.svg)](https://www.odoo.com/)
51
+ [![License: LGPL-3](https://img.shields.io/badge/license-LGPL--3-green.svg)](https://www.gnu.org/licenses/lgpl-3.0)
52
+
53
+ > Desarrollado por **[IKU Solutions SAS](https://www.iku.solutions)** | Autor: **Yan Chirino** \<yan.chirino@iku.solutions\>
54
+
55
+ ---
56
+
57
+ ## Que es oolab?
58
+
59
+ `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.
60
+
61
+ ### Caracteristicas principales
62
+
63
+ - **Multi-proyecto**: gestiona multiples clientes/tenants en un solo workspace
64
+ - **Multi-version**: soporte para Odoo 16, 17, 18 y 19
65
+ - **Enterprise ready**: integra Odoo Enterprise via git o copia local (requiere licencia propia)
66
+ - **VSCode integrado**: genera `launch.json` con configs de debug por proyecto (run, shell, install, update)
67
+ - **Entornos aislados**: venvs por version de Odoo (`.venv-v19`, `.venv-v18`)
68
+ - **Scaffold OCA**: crea proyectos vacios con estructura de calidad (pre-commit, ruff, pylint)
69
+ - **Dependencias robustas**: instalacion con uv + fallbacks automaticos
70
+ - **Interactivo**: wizard paso a paso con spinners y feedback visual
71
+ - **Multi-plataforma**: compatible con macOS, Linux y Windows
72
+
73
+ ---
74
+
75
+ ## Sobre Odoo Enterprise
76
+
77
+ `oolab` permite configurar proyectos que usan Odoo Enterprise, pero **no incluye ni distribuye los modulos Enterprise**. Para usarlos necesitas:
78
+
79
+ - **Tener una suscripcion activa** de [Odoo Enterprise](https://www.odoo.com/pricing) o ser partner autorizado de Odoo.
80
+ - **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.
81
+
82
+ 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.
83
+
84
+ > **Importante:** Los modulos Enterprise estan protegidos por la licencia Odoo Enterprise Edition. Consulta los [terminos de licencia de Odoo](https://www.odoo.com/legal) antes de usarlos.
85
+
86
+ ---
87
+
88
+ ## Instalacion
89
+
90
+ ### Requisitos previos
91
+
92
+ - **Python** >= 3.10
93
+ - **git**
94
+ - **Docker** + Docker Compose v2
95
+ - **[uv](https://github.com/astral-sh/uv)** (se instala automaticamente si no existe)
96
+
97
+ ### Instalar uv (si no lo tienes)
98
+
99
+ **macOS / Linux:**
100
+
101
+ ```bash
102
+ curl -LsSf https://astral.sh/uv/install.sh | sh
103
+ ```
104
+
105
+ **Windows (PowerShell):**
106
+
107
+ ```powershell
108
+ powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
109
+ ```
110
+
111
+ ### Instalar oolab
112
+
113
+ ```bash
114
+ uv tool install odoo-lab --python 3.11
115
+ ```
116
+
117
+ O con pipx:
118
+
119
+ ```bash
120
+ pipx install odoo-lab
121
+ ```
122
+
123
+ ### Agregar al PATH (si es necesario)
124
+
125
+ **macOS / Linux (zsh):**
126
+
127
+ ```bash
128
+ echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc
129
+ source ~/.zshrc
130
+ ```
131
+
132
+ **macOS / Linux (bash):**
133
+
134
+ ```bash
135
+ echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
136
+ source ~/.bashrc
137
+ ```
138
+
139
+ **Windows (PowerShell):** uv agrega automaticamente al PATH. Si no, agrega `%USERPROFILE%\.local\bin` a las variables de entorno del sistema.
140
+
141
+ ### Instalar desde el codigo fuente (para desarrollo)
142
+
143
+ Si quieres contribuir o modificar oolab:
144
+
145
+ ```bash
146
+ git clone https://github.com/ikusolutions/odoo-lab.git
147
+ cd odoo-lab
148
+ uv tool install -e . --python 3.11
149
+ ```
150
+
151
+ ### Verificar
152
+
153
+ ```bash
154
+ oolab -v
155
+ ```
156
+
157
+ ---
158
+
159
+ ## Quick Start
160
+
161
+ ```bash
162
+ # 1. Navega a donde quieres crear el workspace
163
+ cd ~/Projects
164
+
165
+ # 2. Crea el workspace (wizard interactivo)
166
+ oolab init
167
+
168
+ # 3. Entra al workspace creado
169
+ cd odoo-launchpad
170
+
171
+ # 4. Agrega proyectos de clientes
172
+ oolab add
173
+
174
+ # 5. Abre en VSCode y presiona F5
175
+ code .
176
+ ```
177
+
178
+ ---
179
+
180
+ ## Comandos
181
+
182
+ | Comando | Descripcion |
183
+ |---------|-------------|
184
+ | `oolab init` | Crea un nuevo workspace `odoo-launchpad/` con wizard interactivo |
185
+ | `oolab add` | Agrega un proyecto de cliente (clona repo o crea con scaffold OCA) |
186
+ | `oolab remove <nombre>` | Elimina un proyecto del workspace |
187
+ | `oolab list` | Lista todos los proyectos configurados con su estado |
188
+ | `oolab generate` | Regenera todos los archivos de configuracion desde `oolab.yaml` |
189
+ | `oolab doctor` | Verifica dependencias del sistema (git, docker, uv, python) |
190
+ | `oolab -v` | Muestra version e informacion del CLI |
191
+ | `oolab -h` | Muestra la ayuda |
192
+
193
+ ---
194
+
195
+ ## Estructura del workspace
196
+
197
+ ```
198
+ odoo-launchpad/
199
+ ├── odoo/ # Odoo Community (compartido entre proyectos)
200
+ ├── enterprise/ # Enterprise addons (opcional, compartido)
201
+ ├── tenants/
202
+ │ ├── cliente-a/ # Proyecto de cliente A (repo independiente)
203
+ │ └── cliente-b/ # Proyecto de cliente B (repo independiente)
204
+ ├── config/
205
+ │ └── odoo/odoo.conf # Configuracion central de Odoo
206
+ ├── docker/
207
+ │ └── docker-compose.yaml
208
+ ├── .vscode/
209
+ │ ├── launch.json # Configs de debug: Community, Shell, Update, Install + tenants
210
+ │ ├── settings.json # Python paths, venv
211
+ │ └── tasks.json # docker-compose-up
212
+ ├── .venv-v19/ # Entorno virtual (uno por version de Odoo)
213
+ ├── .env
214
+ └── oolab.yaml # Fuente de verdad del workspace
215
+ ```
216
+
217
+ ---
218
+
219
+ ## Ejemplo de uso
220
+
221
+ ### Crear workspace con Enterprise y un cliente
222
+
223
+ ```bash
224
+ $ cd ~/Projects
225
+ $ oolab init
226
+
227
+ Odoo Lab v0.1.0 | IKU Solutions SAS | https://www.iku.solutions
228
+
229
+ Version de Odoo [16 / 17 / 18 / 19] (19): 19
230
+ Incluir Enterprise? [y/n]: y
231
+ URL del repositorio Enterprise: git@github.com:odoo/enterprise.git
232
+ Agregar un proyecto de cliente ahora? [y/n]: y
233
+ Nombre del proyecto: Mi Cliente ERP
234
+ Clonar desde un repositorio existente? [y/n]: y
235
+ URL del repositorio: git@github.com:org/mi-cliente-erp.git
236
+
237
+ ...spinners y progreso...
238
+
239
+ Workspace listo!
240
+ ```
241
+
242
+ ### Agregar otro proyecto despues
243
+
244
+ ```bash
245
+ $ cd odoo-launchpad
246
+ $ oolab add
247
+
248
+ Nombre del proyecto: Otro Cliente
249
+ Version de Odoo [16 / 17 / 18 / 19] (19): 18
250
+ Clonar desde un repositorio existente? [y/n]: n
251
+
252
+ Proyecto 'Otro Cliente' agregado correctamente.
253
+ ```
254
+
255
+ ---
256
+
257
+ ## Contribuir
258
+
259
+ Las contribuciones son bienvenidas! Este es un proyecto open source mantenido por [IKU Solutions SAS](https://www.iku.solutions).
260
+
261
+ ### Como contribuir
262
+
263
+ 1. **Fork** el repositorio
264
+ 2. Crea tu **branch** (`git checkout -b feature/mi-feature`)
265
+ 3. **Commit** tus cambios (`git commit -m 'feat: descripcion'`)
266
+ 4. **Push** al branch (`git push origin feature/mi-feature`)
267
+ 5. Abre un **Pull Request**
268
+
269
+ ### Reportar issues
270
+
271
+ Si encuentras un bug o tienes una sugerencia, abre un [issue](https://github.com/ikusolutions/odoo-lab/issues).
272
+
273
+ ### Guias de desarrollo
274
+
275
+ - Usa [Conventional Commits](https://www.conventionalcommits.org/) para mensajes de commit
276
+ - El codigo sigue las convenciones de [Ruff](https://docs.astral.sh/ruff/) con line-length=88
277
+ - Pre-commit hooks recomendados para calidad de codigo
278
+
279
+ ---
280
+
281
+ ## Roadmap
282
+
283
+ - [ ] Soporte para multiples versiones de Odoo en un mismo workspace
284
+ - [ ] Comando `oolab upgrade` para actualizar el framework
285
+ - [ ] Comando `oolab db` para gestionar bases de datos
286
+ - [ ] Soporte para PyCharm/IntelliJ
287
+ - [ ] Publicacion en PyPI
288
+
289
+ ---
290
+
291
+ ## Licencia
292
+
293
+ Este proyecto esta licenciado bajo [LGPL-3.0-or-later](https://www.gnu.org/licenses/lgpl-3.0.html).
294
+
295
+ ```
296
+ Copyright (c) 2026 IKU Solutions SAS
297
+ Autor: Yan Chirino <yan.chirino@iku.solutions>
298
+ Website: https://www.iku.solutions
299
+ ```
300
+
301
+ ---
302
+
303
+ <p align="center">
304
+ Hecho con <b>Python</b> + <b>Typer</b> + <b>Rich</b> por <a href="https://www.iku.solutions"><b>IKU Solutions</b></a>
305
+ </p>
@@ -0,0 +1,270 @@
1
+
2
+ ```
3
+ ██████ ██████ ██ █████ ██████
4
+ ██ ██ ██ ██ ██ ██ ██ ██ ██
5
+ ██ ██ ██ ██ ██ ███████ ██████
6
+ ██ ██ ██ ██ ██ ██ ██ ██ ██
7
+ ██████ ██████ ███████ ██ ██ ██████
8
+ ```
9
+
10
+ # odoo-lab (`oolab`)
11
+
12
+ **CLI scaffolder para crear y gestionar workspaces de desarrollo Odoo con soporte multi-proyecto.**
13
+
14
+ [![Python 3.10+](https://img.shields.io/badge/python-3.10%2B-blue.svg)](https://www.python.org/)
15
+ [![Odoo 16-19](https://img.shields.io/badge/odoo-16%20|%2017%20|%2018%20|%2019-blueviolet.svg)](https://www.odoo.com/)
16
+ [![License: LGPL-3](https://img.shields.io/badge/license-LGPL--3-green.svg)](https://www.gnu.org/licenses/lgpl-3.0)
17
+
18
+ > Desarrollado por **[IKU Solutions SAS](https://www.iku.solutions)** | Autor: **Yan Chirino** \<yan.chirino@iku.solutions\>
19
+
20
+ ---
21
+
22
+ ## Que es oolab?
23
+
24
+ `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.
25
+
26
+ ### Caracteristicas principales
27
+
28
+ - **Multi-proyecto**: gestiona multiples clientes/tenants en un solo workspace
29
+ - **Multi-version**: soporte para Odoo 16, 17, 18 y 19
30
+ - **Enterprise ready**: integra Odoo Enterprise via git o copia local (requiere licencia propia)
31
+ - **VSCode integrado**: genera `launch.json` con configs de debug por proyecto (run, shell, install, update)
32
+ - **Entornos aislados**: venvs por version de Odoo (`.venv-v19`, `.venv-v18`)
33
+ - **Scaffold OCA**: crea proyectos vacios con estructura de calidad (pre-commit, ruff, pylint)
34
+ - **Dependencias robustas**: instalacion con uv + fallbacks automaticos
35
+ - **Interactivo**: wizard paso a paso con spinners y feedback visual
36
+ - **Multi-plataforma**: compatible con macOS, Linux y Windows
37
+
38
+ ---
39
+
40
+ ## Sobre Odoo Enterprise
41
+
42
+ `oolab` permite configurar proyectos que usan Odoo Enterprise, pero **no incluye ni distribuye los modulos Enterprise**. Para usarlos necesitas:
43
+
44
+ - **Tener una suscripcion activa** de [Odoo Enterprise](https://www.odoo.com/pricing) o ser partner autorizado de Odoo.
45
+ - **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.
46
+
47
+ 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.
48
+
49
+ > **Importante:** Los modulos Enterprise estan protegidos por la licencia Odoo Enterprise Edition. Consulta los [terminos de licencia de Odoo](https://www.odoo.com/legal) antes de usarlos.
50
+
51
+ ---
52
+
53
+ ## Instalacion
54
+
55
+ ### Requisitos previos
56
+
57
+ - **Python** >= 3.10
58
+ - **git**
59
+ - **Docker** + Docker Compose v2
60
+ - **[uv](https://github.com/astral-sh/uv)** (se instala automaticamente si no existe)
61
+
62
+ ### Instalar uv (si no lo tienes)
63
+
64
+ **macOS / Linux:**
65
+
66
+ ```bash
67
+ curl -LsSf https://astral.sh/uv/install.sh | sh
68
+ ```
69
+
70
+ **Windows (PowerShell):**
71
+
72
+ ```powershell
73
+ powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
74
+ ```
75
+
76
+ ### Instalar oolab
77
+
78
+ ```bash
79
+ uv tool install odoo-lab --python 3.11
80
+ ```
81
+
82
+ O con pipx:
83
+
84
+ ```bash
85
+ pipx install odoo-lab
86
+ ```
87
+
88
+ ### Agregar al PATH (si es necesario)
89
+
90
+ **macOS / Linux (zsh):**
91
+
92
+ ```bash
93
+ echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc
94
+ source ~/.zshrc
95
+ ```
96
+
97
+ **macOS / Linux (bash):**
98
+
99
+ ```bash
100
+ echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
101
+ source ~/.bashrc
102
+ ```
103
+
104
+ **Windows (PowerShell):** uv agrega automaticamente al PATH. Si no, agrega `%USERPROFILE%\.local\bin` a las variables de entorno del sistema.
105
+
106
+ ### Instalar desde el codigo fuente (para desarrollo)
107
+
108
+ Si quieres contribuir o modificar oolab:
109
+
110
+ ```bash
111
+ git clone https://github.com/ikusolutions/odoo-lab.git
112
+ cd odoo-lab
113
+ uv tool install -e . --python 3.11
114
+ ```
115
+
116
+ ### Verificar
117
+
118
+ ```bash
119
+ oolab -v
120
+ ```
121
+
122
+ ---
123
+
124
+ ## Quick Start
125
+
126
+ ```bash
127
+ # 1. Navega a donde quieres crear el workspace
128
+ cd ~/Projects
129
+
130
+ # 2. Crea el workspace (wizard interactivo)
131
+ oolab init
132
+
133
+ # 3. Entra al workspace creado
134
+ cd odoo-launchpad
135
+
136
+ # 4. Agrega proyectos de clientes
137
+ oolab add
138
+
139
+ # 5. Abre en VSCode y presiona F5
140
+ code .
141
+ ```
142
+
143
+ ---
144
+
145
+ ## Comandos
146
+
147
+ | Comando | Descripcion |
148
+ |---------|-------------|
149
+ | `oolab init` | Crea un nuevo workspace `odoo-launchpad/` con wizard interactivo |
150
+ | `oolab add` | Agrega un proyecto de cliente (clona repo o crea con scaffold OCA) |
151
+ | `oolab remove <nombre>` | Elimina un proyecto del workspace |
152
+ | `oolab list` | Lista todos los proyectos configurados con su estado |
153
+ | `oolab generate` | Regenera todos los archivos de configuracion desde `oolab.yaml` |
154
+ | `oolab doctor` | Verifica dependencias del sistema (git, docker, uv, python) |
155
+ | `oolab -v` | Muestra version e informacion del CLI |
156
+ | `oolab -h` | Muestra la ayuda |
157
+
158
+ ---
159
+
160
+ ## Estructura del workspace
161
+
162
+ ```
163
+ odoo-launchpad/
164
+ ├── odoo/ # Odoo Community (compartido entre proyectos)
165
+ ├── enterprise/ # Enterprise addons (opcional, compartido)
166
+ ├── tenants/
167
+ │ ├── cliente-a/ # Proyecto de cliente A (repo independiente)
168
+ │ └── cliente-b/ # Proyecto de cliente B (repo independiente)
169
+ ├── config/
170
+ │ └── odoo/odoo.conf # Configuracion central de Odoo
171
+ ├── docker/
172
+ │ └── docker-compose.yaml
173
+ ├── .vscode/
174
+ │ ├── launch.json # Configs de debug: Community, Shell, Update, Install + tenants
175
+ │ ├── settings.json # Python paths, venv
176
+ │ └── tasks.json # docker-compose-up
177
+ ├── .venv-v19/ # Entorno virtual (uno por version de Odoo)
178
+ ├── .env
179
+ └── oolab.yaml # Fuente de verdad del workspace
180
+ ```
181
+
182
+ ---
183
+
184
+ ## Ejemplo de uso
185
+
186
+ ### Crear workspace con Enterprise y un cliente
187
+
188
+ ```bash
189
+ $ cd ~/Projects
190
+ $ oolab init
191
+
192
+ Odoo Lab v0.1.0 | IKU Solutions SAS | https://www.iku.solutions
193
+
194
+ Version de Odoo [16 / 17 / 18 / 19] (19): 19
195
+ Incluir Enterprise? [y/n]: y
196
+ URL del repositorio Enterprise: git@github.com:odoo/enterprise.git
197
+ Agregar un proyecto de cliente ahora? [y/n]: y
198
+ Nombre del proyecto: Mi Cliente ERP
199
+ Clonar desde un repositorio existente? [y/n]: y
200
+ URL del repositorio: git@github.com:org/mi-cliente-erp.git
201
+
202
+ ...spinners y progreso...
203
+
204
+ Workspace listo!
205
+ ```
206
+
207
+ ### Agregar otro proyecto despues
208
+
209
+ ```bash
210
+ $ cd odoo-launchpad
211
+ $ oolab add
212
+
213
+ Nombre del proyecto: Otro Cliente
214
+ Version de Odoo [16 / 17 / 18 / 19] (19): 18
215
+ Clonar desde un repositorio existente? [y/n]: n
216
+
217
+ Proyecto 'Otro Cliente' agregado correctamente.
218
+ ```
219
+
220
+ ---
221
+
222
+ ## Contribuir
223
+
224
+ Las contribuciones son bienvenidas! Este es un proyecto open source mantenido por [IKU Solutions SAS](https://www.iku.solutions).
225
+
226
+ ### Como contribuir
227
+
228
+ 1. **Fork** el repositorio
229
+ 2. Crea tu **branch** (`git checkout -b feature/mi-feature`)
230
+ 3. **Commit** tus cambios (`git commit -m 'feat: descripcion'`)
231
+ 4. **Push** al branch (`git push origin feature/mi-feature`)
232
+ 5. Abre un **Pull Request**
233
+
234
+ ### Reportar issues
235
+
236
+ Si encuentras un bug o tienes una sugerencia, abre un [issue](https://github.com/ikusolutions/odoo-lab/issues).
237
+
238
+ ### Guias de desarrollo
239
+
240
+ - Usa [Conventional Commits](https://www.conventionalcommits.org/) para mensajes de commit
241
+ - El codigo sigue las convenciones de [Ruff](https://docs.astral.sh/ruff/) con line-length=88
242
+ - Pre-commit hooks recomendados para calidad de codigo
243
+
244
+ ---
245
+
246
+ ## Roadmap
247
+
248
+ - [ ] Soporte para multiples versiones de Odoo en un mismo workspace
249
+ - [ ] Comando `oolab upgrade` para actualizar el framework
250
+ - [ ] Comando `oolab db` para gestionar bases de datos
251
+ - [ ] Soporte para PyCharm/IntelliJ
252
+ - [ ] Publicacion en PyPI
253
+
254
+ ---
255
+
256
+ ## Licencia
257
+
258
+ Este proyecto esta licenciado bajo [LGPL-3.0-or-later](https://www.gnu.org/licenses/lgpl-3.0.html).
259
+
260
+ ```
261
+ Copyright (c) 2026 IKU Solutions SAS
262
+ Autor: Yan Chirino <yan.chirino@iku.solutions>
263
+ Website: https://www.iku.solutions
264
+ ```
265
+
266
+ ---
267
+
268
+ <p align="center">
269
+ Hecho con <b>Python</b> + <b>Typer</b> + <b>Rich</b> por <a href="https://www.iku.solutions"><b>IKU Solutions</b></a>
270
+ </p>