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)
This commit is contained in:
parent
5b9c6e3211
commit
fe137dc265
224 changed files with 18376 additions and 0 deletions
215
INSTALACION_COMPLETA.md
Normal file
215
INSTALACION_COMPLETA.md
Normal file
|
|
@ -0,0 +1,215 @@
|
|||
# ✅ 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
|
||||
Loading…
Add table
Add a link
Reference in a new issue