- Create .github/copilot-instructions.md with global development guidelines - Add comprehensive README.md at project root with quick start guide - Create docs/ directory for technical documentation - Move installation and linter docs to docs/ - Add docs/TRANSLATIONS.md with complete translation system guide - Create README.md for OCA modified addons (product_origin, product_get_price_helper, product_main_seller) - Document translation best practices (no _() in field definitions) - Add references between all documentation files - Clean up project root by moving technical docs to docs/ All documentation now properly references addon-specific READMEs for detailed architecture and implementation.
215 lines
6.3 KiB
Markdown
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
|