- 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)
230 lines
6.1 KiB
Markdown
230 lines
6.1 KiB
Markdown
# 🎉 Instalación Completada - Linters y Pre-commit OCA
|
|
|
|
## ✅ Resumen de la Instalación
|
|
|
|
Se han instalado y configurado exitosamente **todas las herramientas de verificación OCA** en el repositorio.
|
|
|
|
---
|
|
|
|
## 📦 Paquetes Instalados (Versiones)
|
|
|
|
| Herramienta | Versión | Descripción |
|
|
|-------------|---------|-------------|
|
|
| **black** | 26.1.0 | Formateador de código Python |
|
|
| **isort** | 7.0.0 | Ordenador de imports |
|
|
| **flake8** | 7.3.0 | Linter de estilo Python |
|
|
| **pylint** | 4.0.4 | Analizador estático de código |
|
|
| **pylint-odoo** | 10.0.0 | Plugin específico para Odoo |
|
|
| **pre-commit** | ✅ | Gestor de hooks de git |
|
|
| **autoflake** | ✅ | Elimina código no usado |
|
|
| **pyupgrade** | ✅ | Actualiza sintaxis Python |
|
|
| **flake8-bugbear** | ✅ | Verificaciones adicionales |
|
|
|
|
---
|
|
|
|
## 📁 Archivos Creados
|
|
|
|
### Configuración de Linters
|
|
- ✅ `.pre-commit-config.yaml` - 25 hooks configurados
|
|
- ✅ `.pylintrc` - Reglas opcionales + mandatorias
|
|
- ✅ `.pylintrc-mandatory` - Solo reglas obligatorias
|
|
- ✅ `.flake8` - Configuración de flake8
|
|
- ✅ `.isort.cfg` - Configuración de isort
|
|
- ✅ `setup.cfg` - Configuración compartida
|
|
- ✅ `pyproject.toml` - Configuración de black
|
|
- ✅ `.editorconfig` - Consistencia de editor
|
|
|
|
### Herramientas de Desarrollo
|
|
- ✅ `Makefile` - 10+ comandos útiles
|
|
- ✅ `check_addon.sh` - Script de verificación de addons
|
|
- ✅ `requirements.txt` - Dependencias del proyecto
|
|
|
|
### Documentación
|
|
- ✅ `LINTERS_README.md` - Guía completa de uso
|
|
- ✅ `INSTALACION_COMPLETA.md` - Documentación detallada
|
|
- ✅ `RESUMEN_INSTALACION.md` - Este archivo
|
|
|
|
### VS Code
|
|
- ✅ `.vscode/settings.json` - Configuración actualizada
|
|
- ✅ `.vscode/extensions.json` - Extensiones recomendadas
|
|
|
|
---
|
|
|
|
## 🔧 Estado de Pre-commit
|
|
|
|
```
|
|
✅ Pre-commit hooks instalados en .git/hooks/
|
|
✅ 25 hooks configurados y listos
|
|
✅ Hooks actualizados a las últimas versiones
|
|
```
|
|
|
|
Los hooks se ejecutarán automáticamente en cada commit.
|
|
|
|
---
|
|
|
|
## 🚀 Comandos Rápidos
|
|
|
|
### Comandos más usados
|
|
|
|
```bash
|
|
# Verificar todo el código
|
|
make lint
|
|
|
|
# Formatear código automáticamente
|
|
make format
|
|
|
|
# Verificar un addon específico
|
|
./check_addon.sh account_invoice_triple_discount
|
|
|
|
# Ver todos los comandos disponibles
|
|
make help
|
|
```
|
|
|
|
### Pre-commit
|
|
|
|
```bash
|
|
# Ejecutar en todos los archivos
|
|
pre-commit run --all-files
|
|
|
|
# Ejecutar en archivos modificados
|
|
pre-commit run
|
|
|
|
# Actualizar a últimas versiones
|
|
pre-commit autoupdate
|
|
```
|
|
|
|
---
|
|
|
|
## 📊 Hooks Configurados (25)
|
|
|
|
### Verificaciones Básicas (7)
|
|
1. `forbidden-files` - Detecta archivos .rej
|
|
2. `oca-update-pre-commit-excluded-addons` - Actualiza exclusiones
|
|
3. `trailing-whitespace` - Elimina espacios finales
|
|
4. `end-of-file-fixer` - Nueva línea al final
|
|
5. `check-merge-conflict` - Detecta conflictos
|
|
6. `check-xml` - Valida XML
|
|
7. `mixed-line-ending` - Normaliza finales de línea
|
|
|
|
### Formateo de Código (3)
|
|
8. `black` - Formatea Python
|
|
9. `isort` - Ordena imports
|
|
10. `prettier` - Formatea XML/YAML/JSON
|
|
|
|
### Análisis de Código (5)
|
|
11. `flake8` - Linter Python
|
|
12. `pylint` (opcional) - Análisis con exit-zero
|
|
13. `pylint` (mandatorio) - Análisis que falla commit
|
|
14. `mypy` - Verificación de tipos
|
|
15. `eslint` - Linter JavaScript
|
|
|
|
### Mejoras Automáticas (3)
|
|
16. `autoflake` - Elimina imports no usados
|
|
17. `pyupgrade` - Actualiza sintaxis Python (py38+)
|
|
18. `fix-encoding-pragma` - Remueve pragmas encoding
|
|
|
|
### Verificaciones de Seguridad (4)
|
|
19. `debug-statements` - Detecta debugs olvidados
|
|
20. `check-executables-have-shebangs` - Verifica shebangs
|
|
21. `check-symlinks` - Valida enlaces simbólicos
|
|
22. `check-case-conflict` - Conflictos mayús/minús
|
|
|
|
### Odoo Específico (3)
|
|
23. `setuptools-odoo-make-default` - Genera setup/
|
|
24. `setuptools-odoo-get-requirements` - Actualiza requirements.txt
|
|
25. `check-docstring-first` - Verifica docstrings
|
|
|
|
---
|
|
|
|
## ✅ Verificación de la Instalación
|
|
|
|
Ejecuta estos comandos para verificar que todo funciona:
|
|
|
|
```bash
|
|
# 1. Verificar versiones
|
|
black --version # 26.1.0
|
|
isort --version # 7.0.0
|
|
pylint --version # 4.0.4
|
|
flake8 --version # 7.3.0
|
|
|
|
# 2. Probar en un archivo
|
|
black --check account_invoice_triple_discount/models/account_move_line.py
|
|
|
|
# 3. Ejecutar un hook
|
|
pre-commit run forbidden-files --all-files
|
|
```
|
|
|
|
---
|
|
|
|
## 🎯 Próximos Pasos
|
|
|
|
1. **Ejecutar verificación inicial**
|
|
```bash
|
|
make lint
|
|
```
|
|
|
|
2. **Corregir problemas encontrados**
|
|
```bash
|
|
make format # Formatea automáticamente
|
|
```
|
|
|
|
3. **Hacer commit**
|
|
```bash
|
|
git add .
|
|
git commit -m "feat: configurar herramientas de verificación OCA"
|
|
# Pre-commit se ejecutará automáticamente
|
|
```
|
|
|
|
4. **Verificar addons individuales**
|
|
```bash
|
|
./check_addon.sh nombre_addon
|
|
```
|
|
|
|
---
|
|
|
|
## 📚 Documentación
|
|
|
|
- **Guía completa**: Ver [LINTERS_README.md](LINTERS_README.md)
|
|
- **Detalles técnicos**: Ver [INSTALACION_COMPLETA.md](INSTALACION_COMPLETA.md)
|
|
- **OCA Guidelines**: https://github.com/OCA/maintainer-tools
|
|
- **pre-commit**: https://pre-commit.com/
|
|
|
|
---
|
|
|
|
## ⚙️ Configuración de VS Code
|
|
|
|
Instala las extensiones recomendadas:
|
|
1. Abre VS Code
|
|
2. Ve a Extensions (Ctrl+Shift+X)
|
|
3. Busca "@recommended"
|
|
4. Instala todas las extensiones sugeridas
|
|
|
|
O ejecuta:
|
|
```bash
|
|
code --install-extension ms-python.python
|
|
code --install-extension ms-python.black-formatter
|
|
code --install-extension ms-python.isort
|
|
code --install-extension ms-python.pylint
|
|
code --install-extension ms-python.flake8
|
|
code --install-extension esbenp.prettier-vscode
|
|
code --install-extension editorconfig.editorconfig
|
|
```
|
|
|
|
---
|
|
|
|
## ⚠️ Notas Importantes
|
|
|
|
- ✅ Los hooks se ejecutan **automáticamente** en cada commit
|
|
- ✅ Black y prettier **modifican archivos** automáticamente
|
|
- ✅ Los `__init__.py` están **excluidos** de isort (estándar OCA)
|
|
- ✅ Pylint tiene **dos niveles**: opcional (no falla) y mandatorio (falla commit)
|
|
- ⚠️ Para commit sin verificación (NO RECOMENDADO): `git commit --no-verify`
|
|
|
|
---
|
|
|
|
## 🎊 ¡Todo Listo!
|
|
|
|
El repositorio está ahora configurado con los estándares de calidad OCA. Cada commit será verificado automáticamente para mantener la calidad del código.
|
|
|
|
**Fecha de instalación**: 11 de febrero de 2026
|
|
**Versión de configuración**: OCA Standard (2026)
|