Skip to content

Releases notes future v8.2.23

Moisés López - https://www.vauxoo.com/ edited this page Jan 25, 2026 · 4 revisions

Release Notes – pre-commit-vauxoo 8.2.23

Este release se centra principalmente en nuevos checks, mejoras de autofix


📌 Contexto del proyecto


✨ Cambios más relevantes

✔ Nuevos checks habilitados / actualizados

1. use-header-comments

Elimina encabezados comentados innecesarios en archivos Python.

Antes

# ---------------------------------------------------------
# Archivo de ejemplo
# ---------------------------------------------------------

def foo():
    return 1

Después (autofix)

def foo():
    return 1

2. unused-logger (con autofix)

Detecta y elimina _logger cuando no se utiliza.

Antes

import logging
_logger = logging.getLogger(__name__)

def foo():
    return 1

Después

def foo():
    return 1

3. xml-id-position-first

Fuerza 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">

4. xml-field-bool-without-eval / xml-field-number-without-eval

Evita valores literales incorrectos en XML de Odoo.

Antes

<field name="active">True</field>

Después

<field name="active" eval="True" />

5. xml-template-prettier-incompatible

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.


🧩 Formato e indentación XML (NUEVO ESTÁNDAR)

A partir de este release, el formato XML queda homogeneizado.

⚠️ Disclaimer: Esto puede agregar espacios adicionales que afecta el resultado en las vistas, pero ya está considerado en el check xml-template-prettier-incompatible (no tiene autofix)

Y podemos ir metiendo nuevos casos conforme salgan.

🔴 Antes (mal indentado)

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

🟢 Después (pre-commit-vauxoo / OCA)

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

🧪 QWeb – <template>

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>

xml-header-missing

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>

prefer-readme-rst

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

prefer-env-translation

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 donde self.env está disponible.


manifest-superfluous-key

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.

Ignorar los autofixes agresivos de este release

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.10

Esto 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.20

Cabe 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"