- 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)
88 lines
2.2 KiB
Markdown
88 lines
2.2 KiB
Markdown
# Herramientas de Verificación OCA
|
|
|
|
Este repositorio está configurado con las herramientas de verificación estándar de OCA (Odoo Community Association).
|
|
|
|
## Herramientas Instaladas
|
|
|
|
- **pre-commit**: Gestor de hooks de git para ejecutar verificaciones automáticas
|
|
- **black**: Formateador de código Python
|
|
- **isort**: Ordenador de imports Python
|
|
- **flake8**: Linter de estilo Python (con flake8-bugbear)
|
|
- **pylint**: Analizador de código Python con pylint-odoo
|
|
- **autoflake**: Elimina imports y variables no utilizadas
|
|
- **pyupgrade**: Actualiza sintaxis de Python a versiones más modernas
|
|
- **prettier**: Formateador para XML, YAML, JSON, etc.
|
|
|
|
## Uso
|
|
|
|
### Verificación Manual
|
|
|
|
Para ejecutar las verificaciones en todos los archivos:
|
|
|
|
```bash
|
|
pre-commit run --all-files
|
|
```
|
|
|
|
Para ejecutar en archivos específicos:
|
|
|
|
```bash
|
|
pre-commit run --files path/to/file.py
|
|
```
|
|
|
|
### Verificación Automática
|
|
|
|
Los hooks de pre-commit están configurados para ejecutarse automáticamente en cada commit. Si hay errores, el commit será rechazado hasta que se corrijan.
|
|
|
|
### Ejecutar Herramientas Individuales
|
|
|
|
```bash
|
|
# Black
|
|
black .
|
|
|
|
# isort
|
|
isort .
|
|
|
|
# flake8
|
|
flake8 .
|
|
|
|
# pylint (opcional)
|
|
pylint --rcfile=.pylintrc <addon_name>
|
|
|
|
# pylint (mandatorio)
|
|
pylint --rcfile=.pylintrc-mandatory <addon_name>
|
|
```
|
|
|
|
## Configuración
|
|
|
|
Los archivos de configuración son:
|
|
|
|
- `.pre-commit-config.yaml`: Configuración de pre-commit hooks
|
|
- `.pylintrc`: Verificaciones opcionales y mandatorias de pylint
|
|
- `.pylintrc-mandatory`: Solo verificaciones mandatorias
|
|
- `.flake8`: Configuración de flake8
|
|
- `.isort.cfg`: Configuración de isort
|
|
- `setup.cfg`: Configuración adicional para flake8 e isort
|
|
- `pyproject.toml`: Configuración de black e isort
|
|
- `.editorconfig`: Configuración de editor para consistencia
|
|
|
|
## Actualización de Hooks
|
|
|
|
Para actualizar los hooks a las últimas versiones:
|
|
|
|
```bash
|
|
pre-commit autoupdate
|
|
```
|
|
|
|
## Desactivar Temporalmente
|
|
|
|
Si necesitas hacer un commit sin ejecutar las verificaciones (NO RECOMENDADO):
|
|
|
|
```bash
|
|
git commit --no-verify
|
|
```
|
|
|
|
## Más Información
|
|
|
|
- [OCA Guidelines](https://github.com/OCA/maintainer-tools)
|
|
- [pre-commit](https://pre-commit.com/)
|
|
- [pylint-odoo](https://github.com/OCA/pylint-odoo)
|