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)
This commit is contained in:
snt 2026-02-11 16:09:41 +01:00
parent 5b9c6e3211
commit fe137dc265
224 changed files with 18376 additions and 0 deletions

52
check_addon.sh Executable file
View file

@ -0,0 +1,52 @@
#!/bin/bash
# Script para verificar rápidamente un addon específico
set -e
if [ -z "$1" ]; then
echo "Uso: $0 <nombre_addon>"
echo "Ejemplo: $0 account_invoice_triple_discount"
exit 1
fi
ADDON_NAME=$1
ADDON_PATH="./$ADDON_NAME"
if [ ! -d "$ADDON_PATH" ]; then
echo "Error: El addon '$ADDON_NAME' no existe en este directorio"
exit 1
fi
if [ ! -f "$ADDON_PATH/__manifest__.py" ] && [ ! -f "$ADDON_PATH/__openerp__.py" ]; then
echo "Error: '$ADDON_NAME' no parece ser un addon válido de Odoo"
exit 1
fi
echo "=========================================="
echo "Verificando addon: $ADDON_NAME"
echo "=========================================="
echo ""
echo "1. Ejecutando black..."
black --check "$ADDON_PATH" || (echo "❌ Black encontró problemas de formato" && black "$ADDON_PATH" && echo "✅ Formateado con black")
echo ""
echo "2. Ejecutando isort..."
isort --check-only "$ADDON_PATH" || (echo "❌ isort encontró problemas" && isort "$ADDON_PATH" && echo "✅ Imports ordenados con isort")
echo ""
echo "3. Ejecutando flake8..."
flake8 "$ADDON_PATH" && echo "✅ flake8 pasó correctamente" || echo "❌ flake8 encontró problemas"
echo ""
echo "4. Ejecutando pylint (checks mandatorios)..."
pylint --rcfile=.pylintrc-mandatory "$ADDON_PATH" && echo "✅ pylint mandatorio pasó correctamente" || echo "❌ pylint mandatorio encontró problemas"
echo ""
echo "5. Ejecutando pylint (checks opcionales)..."
pylint --rcfile=.pylintrc --exit-zero "$ADDON_PATH"
echo ""
echo "=========================================="
echo "Verificación completa de $ADDON_NAME"
echo "=========================================="