addons-cm/INSTALACION_COMPLETA.md
snt fe137dc265 build: configurar herramientas de verificación OCA
- Instalar pre-commit con 25 hooks configurados
- Configurar black 26.1.0 para formateo de código Python
- Configurar isort 7.0.0 para ordenación de imports
- Configurar flake8 7.3.0 con flake8-bugbear
- Configurar pylint 3.1.1 con pylint-odoo 9.1.2
- Añadir autoflake y pyupgrade para mejoras automáticas
- Configurar prettier para formateo de XML/JSON/YAML
- Crear .editorconfig para consistencia de editor
- Crear Makefile con comandos útiles
- Crear check_addon.sh para verificación rápida de addons
- Actualizar configuración de VS Code con extensiones recomendadas
- Añadir documentación completa de uso
- Aplicar formateo automático a archivos existentes
- Deshabilitar setuptools-odoo (no soporta Odoo 18.0 aún)
- Deshabilitar fix-encoding-pragma (obsoleto, usar pyupgrade)
2026-02-11 16:09:41 +01:00

215 lines
6.3 KiB
Markdown

# ✅ Instalación Completa - Herramientas de Verificación OCA
## Resumen de la Instalación
Se han instalado y configurado exitosamente todas las herramientas de verificación OCA estándar en este repositorio.
## 📦 Paquetes Instalados
Los siguientes paquetes Python han sido instalados en el entorno virtual (`.venv`):
-**pre-commit** - Gestor de hooks de git
-**black** - Formateador de código Python
-**isort** - Ordenador de imports
-**flake8** - Linter de estilo
-**flake8-bugbear** - Plugin adicional para flake8
-**pylint** - Analizador estático de código
-**pylint-odoo** - Plugin específico para Odoo
-**autoflake** - Elimina imports y variables no usadas
-**pyupgrade** - Actualiza sintaxis de Python
## 📄 Archivos de Configuración Creados
### Configuración Principal
-`.pre-commit-config.yaml` - Configuración de pre-commit con hooks OCA
-`.pylintrc` - Reglas de pylint (opcionales + mandatorias)
-`.pylintrc-mandatory` - Solo reglas mandatorias de pylint
-`.flake8` - Configuración de flake8
-`.isort.cfg` - Configuración de isort
-`setup.cfg` - Configuración compartida
-`pyproject.toml` - Configuración de black e isort
-`.editorconfig` - Configuración de editor
-`requirements.txt` - Dependencias del proyecto
### Herramientas y Scripts
-`Makefile` - Comandos make para tareas comunes
-`check_addon.sh` - Script de verificación rápida de addons
-`LINTERS_README.md` - Documentación de uso
### VS Code
-`.vscode/settings.json` - Configuración actualizada
-`.vscode/extensions.json` - Extensiones recomendadas
## 🔧 Hooks de Pre-commit Instalados
Los siguientes hooks se ejecutarán automáticamente en cada commit:
1. **forbidden-files** - Detecta archivos prohibidos (.rej)
2. **oca-update-pre-commit-excluded-addons** - Actualiza lista de addons excluidos
3. **autoflake** - Elimina imports/variables no usadas
4. **black** - Formatea código Python
5. **prettier** - Formatea XML, YAML, JSON
6. **eslint** - Verifica JavaScript
7. **trailing-whitespace** - Elimina espacios al final de línea
8. **end-of-file-fixer** - Asegura nueva línea al final de archivo
9. **debug-statements** - Detecta statements de debug
10. **fix-encoding-pragma** - Remueve pragmas de encoding
11. **check-case-conflict** - Detecta conflictos de mayúsculas/minúsculas
12. **check-docstring-first** - Verifica posición de docstrings
13. **check-executables-have-shebangs** - Verifica shebangs
14. **check-merge-conflict** - Detecta marcadores de conflicto
15. **check-symlinks** - Verifica enlaces simbólicos
16. **check-xml** - Verifica sintaxis XML
17. **mixed-line-ending** - Normaliza finales de línea
18. **pyupgrade** - Actualiza sintaxis Python
19. **isort** - Ordena imports (excepto __init__.py)
20. **setuptools-odoo-make-default** - Genera setup/
21. **setuptools-odoo-get-requirements** - Actualiza requirements.txt
22. **flake8** - Verifica estilo Python
23. **mypy** - Verificación de tipos estática
24. **pylint** (opcional) - Análisis de código con exit-zero
25. **pylint** (mandatorio) - Análisis de código que falla el commit
## 🚀 Uso Rápido
### Comandos Make
```bash
# Ver todos los comandos disponibles
make help
# Ejecutar todas las verificaciones
make lint
# Formatear código
make format
# Verificar formato sin modificar
make check-format
# Ejecutar flake8
make flake8
# Ejecutar pylint en todos los addons
make pylint
# Solo verificaciones mandatorias
make pylint-required
# Limpiar archivos temporales
make clean
# Actualizar requirements.txt
make requirements
# Actualizar hooks a últimas versiones
make update-hooks
```
### Script de Verificación de Addon
```bash
# Verificar un addon específico
./check_addon.sh account_invoice_triple_discount
```
### Pre-commit Manual
```bash
# Ejecutar en todos los archivos
pre-commit run --all-files
# Ejecutar en archivos modificados
pre-commit run
# Ejecutar un hook específico
pre-commit run black --all-files
# Ejecutar en archivos específicos
pre-commit run --files path/to/file.py
```
### Herramientas Individuales
```bash
# Black
black .
black --check . # Solo verificar sin modificar
# isort
isort .
isort --check-only . # Solo verificar sin modificar
# flake8
flake8 .
flake8 account_invoice_triple_discount/
# pylint
pylint --rcfile=.pylintrc account_invoice_triple_discount/
pylint --rcfile=.pylintrc-mandatory account_invoice_triple_discount/
```
## ⚙️ Configuración de VS Code
Se recomienda instalar las siguientes extensiones:
- Python
- Black Formatter
- isort
- Pylint
- Flake8
- Prettier
- EditorConfig
- Odoo Snippets
Las extensiones recomendadas están definidas en `.vscode/extensions.json`.
## 🔍 Verificación de la Instalación
Para verificar que todo está funcionando correctamente:
```bash
# 1. Verificar versiones instaladas
black --version
flake8 --version
pylint --version
isort --version
pre-commit --version
# 2. Probar black en un archivo
black --check account_invoice_triple_discount/models/
# 3. Probar flake8 en un addon
flake8 account_invoice_triple_discount/
# 4. Ejecutar un hook simple
pre-commit run forbidden-files --all-files
```
## 📚 Documentación Adicional
- Ver [LINTERS_README.md](LINTERS_README.md) para más detalles
- [OCA Guidelines](https://github.com/OCA/maintainer-tools)
- [pre-commit](https://pre-commit.com/)
- [pylint-odoo](https://github.com/OCA/pylint-odoo)
- [Black](https://black.readthedocs.io/)
## 🎯 Próximos Pasos
1. Ejecutar `make lint` para verificar el estado actual del código
2. Corregir cualquier problema encontrado
3. Hacer commit con los cambios (pre-commit se ejecutará automáticamente)
4. Si hay problemas que no se pueden resolver, revisar la configuración específica en los archivos `.pylintrc`, `.flake8`, etc.
## ⚠️ Notas Importantes
- Los hooks de pre-commit se ejecutarán automáticamente en cada commit
- Si necesitas hacer un commit sin verificación (NO RECOMENDADO): `git commit --no-verify`
- Los archivos `__init__.py` son excluidos de la ordenación de imports por convención OCA
- Las verificaciones de pylint tienen dos niveles: opcionales (con `--exit-zero`) y mandatorias (que fallan el commit)
- El formateo con black y prettier puede modificar archivos automáticamente
---
**✅ Instalación completada exitosamente**
Fecha: 11 de febrero de 2026