-
Notifications
You must be signed in to change notification settings - Fork 2
Releases notes future v8.2.23
Este release se centra principalmente en nuevos checks, mejoras de autofix
- Repositorio principal: https://github.com/vauxoo/pre-commit-vauxoo
- Paquete PyPI: https://pypi.org/project/pre-commit-vauxoo/8.2.23
- Fuente mayoritaria de cambios: https://github.com/OCA/odoo-pre-commit-hooks
Elimina encabezados comentados innecesarios en archivos Python.
Antes
# ---------------------------------------------------------
# Archivo de ejemplo
# ---------------------------------------------------------
def foo():
return 1Después (autofix)
def foo():
return 1Detecta y elimina _logger cuando no se utiliza.
Antes
import logging
_logger = logging.getLogger(__name__)
def foo():
return 1Después
def foo():
return 1Fuerza que el atributo id sea el primero en nodos <record> y <template>.
Antes
<record model="ir.model" name="model_one" id="model_one">Después
<record id="model_one" model="ir.model" name="model_one">Evita valores literales incorrectos en XML de Odoo.
Antes
<field name="active">True</field>Después
<field name="active" eval="True" />Detecta estructuras XML incompatibles con Prettier (no autofixable).
⚠️ Este check solo reporta, no modifica el archivo.
Este check detecta casos en los que el autofix podría agregar textos adicionales inesperados
Aquí es probable que no estén considerados todos los casos, pero se puede ir detectando nuevos casos en la marcha para considerarlos.
A partir de este release, el formato XML queda homogeneizado.
xml-template-prettier-incompatible (no tiene autofix)
Y podemos ir metiendo nuevos casos conforme salgan.
<odoo>
<record id="view_partner_form" model="ir.ui.view">
<field name="name">res.partner.form</field>
<field name="model">res.partner</field>
<field name="arch" type="xml">
<form string="Partners">
<sheet>
<group>
<field name="name"/>
<field name="email"/>
</group>
</sheet>
</form>
</field>
</record>
</odoo><odoo>
<record id="view_partner_form" model="ir.ui.view">
<field name="name">res.partner.form</field>
<field name="model">res.partner</field>
<field name="arch" type="xml">
<form string="Partners">
<sheet>
<group>
<field name="name" />
<field name="email" />
</group>
</sheet>
</form>
</field>
</record>
</odoo>Antes
<template id="my_template">
<t t-foreach="docs" t-as="o">
<div>
<span t-esc="o.name"/>
</div>
</t>
</template>Después
<template id="my_template">
<t t-foreach="docs" t-as="o">
<div>
<span t-esc="o.name" />
</div>
</t>
</template>Agrega el encabezado XML estándar cuando falta o lo modifica considerando mayúsculas y espacios usados.
Antes
<odoo>
<record id="partner_demo" model="res.partner">
<field name="name">Demo</field>
</record>
</odoo>Después (autofix)
<?xml version="1.0" encoding="UTF-8"?>
<odoo>
<record id="partner_demo" model="res.partner">
<field name="name">Demo</field>
</record>
</odoo>Fomenta el uso de README.rst en lugar de README.md en módulos Odoo.
Antes
my_module/
├── README.md
Después (autofix / sugerido)
my_module/
├── README.rst
Evita el uso directo de _() y fuerza el uso del entorno de Odoo para traducciones.
Antes
_("Customer")Después (autofix)
self.env._("Customer")
⚠️ Aplica principalmente a módulos Odoo ≥ 18.0 y contextos dondeself.envestá disponible.
Elimina claves redundantes del __manifest__.py que ya tienen valores por defecto en Odoo.
Antes
{
"name": "My Module",
"installable": True,
"application": False,
"auto_install": False,
"data": [],
}Después (autofix)
{
"name": "My Module",
}✔ Reduce ruido y mantiene manifests mínimos y limpios.
Nótese que se agregó una nueva variable de entorno que permite desactivar estos nuevos autofixes sin dejar de lado los anteriores que ya estaban activados
En el --help o en el README de pre-commit-vauxoo explica esta modalidad:
TL;DR;
En el archivo variables.sh de la raíz del project agrega esta variable de entorno si quieres tener la compatibilidad legacy:
export LINT_COMPATIBILITY_VERSION=10.10.10.10.10.10.10Esto será para proyectos que no se les da más mantenimiento, o no tienen horas aprobadas con el cliente.
O si quieres activar en tu proyecto los nuevos autofixes aggressive:
export LINT_COMPATIBILITY_VERSION=20.20.20.20.20.20.20Cabe señalar que debido a que son muchos cambios lo que se harán en tu repositorio, es probable que tengas que correr el comando
pre-commit-vauxoo
3 veces la primera vez, para que haga los cambios de los cambios.
También recuerden hacer un commit por módulo, pueden apoyarse de este mini script:
#!/bin/bash
set -e
# Asegura que estamos dentro de un repositorio git
git rev-parse --is-inside-work-tree >/dev/null 2>&1 || {
echo "❌ No estás dentro de un repositorio Git"
exit 1
}
# Recorre solo carpetas de primer nivel
for dir in */ ; do
# Quita la barra final
folder="${dir%/}"
# Verifica si hay cambios dentro de la carpeta
if git status --porcelain -- "$folder" | grep -q .; then
echo "📦 Commit para carpeta: $folder"
git add "$folder"
git commit -m "[REF] $folder: New autofixes"
else
echo "⏭️ Sin cambios en: $folder"
fi
done
echo "✅ Proceso terminado"