[DOC] all: Reorganize and consolidate project documentation

- 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.
This commit is contained in:
snt 2026-02-12 16:25:49 +01:00
parent 2a480b74bb
commit b10ba1fc15
12 changed files with 1327 additions and 0 deletions

View 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