addons-cm/INSTALACION_COMPLETA.md
snt fe137dc265 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)
2026-02-11 16:09:41 +01:00

6.3 KiB

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

# 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

# Verificar un addon específico
./check_addon.sh account_invoice_triple_discount

Pre-commit Manual

# 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

# 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:

# 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

🎯 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