| docs | |
|---|---|
| tests | |
| package |
pre-commit script to run automatically the configuration and variables custom from Vauxoo
- Free software: GNU Lesser General Public License v3 or later (LGPLv3+)
Install in the same way than you usually install pypi packages
python3 -m pip install --force-reinstall -U pre-commit-vauxoo
Or using 'sudo':
sudo python3 -m pip install --force-reinstall -U pre-commit-vauxoo
Or using '--user':
python3 -m pip install --user --force-reinstall -U pre-commit-vauxoo
Or using virtualenv
source YOUR_VENV/bin/activate && pip install --force-reinstall -U pre-commit-vauxoo
You can confirm your environment running pre-commit-vauxoo --version
Run pre-commit-vauxoo command in git repository where you want to run our lints
The autofixes are disabled by default you can use the following option to enable it
pre-commit-vauxoo -t all
Full --help command result:
Usage: pre-commit-vauxoo [OPTIONS]
pre-commit-vauxoo run pre-commit with custom validations and configuration
files
Options:
-p, --paths PATH CSV PATHS are the specific filenames to run
hooks on separated by commas. [env var:
INCLUDE_LINT; default: .]
--no-overwrite Overwrite configuration files.
*If True, existing configuration files into
the project will be overwritten.
*If False, then current files will be used,
if they exist. [env var:
PRECOMMIT_NO_OVERWRITE_CONFIG_FILES]
--fail-optional Change the exit_code for 'optional'
precommit-hooks-type.
*If this flag is enabled so the exit_code
will be -1 (error) if 'optional' fails.
*If it is disabled (by default), exit_code
will be 0 (successful) even if 'optional'
fails. [env var: PRECOMMIT_FAIL_OPTIONAL]
-x, --exclude-autofix PATH CSV Exclude paths on which to run the autofix
pre-commit configuration, separated by
commas [env var: EXCLUDE_AUTOFIX]
-l, --exclude-lint PATH CSV Paths to exclude checks, separated by
commas. [env var: EXCLUDE_LINT]
-d, --pylint-disable-checks TEXT CSV
Pylint checks to disable, separated by
commas. [env var: PYLINT_DISABLE_CHECKS]
--oca-hooks-disable-checks TEXT CSV
OCA Hooks checks to disable, separated by
commas. [env var: OCA_HOOKS_DISABLE_CHECKS]
-S, --skip-string-normalization
If '-t fix' is enabled, don't normalize
string quotes or prefixes '' -> ""
This parameter is related to 'black' hook
[env var: BLACK_SKIP_STRING_NORMALIZATION]
-t, --precommit-hooks-type [mandatory|optional|fix|experimental|all|-mandatory|-optional|-fix|-experimental]
Pre-commit configuration file to run hooks,
separated by commas.
prefix '-' means that the option will be
removed.
*Mandatory: Stable hooks that needs to be
fixed (Affecting build status).
*Optional: Optional hooks that could be
fixed later. (No affects build status almost
'--fail-optional' is set).
*Experimental: Experimental hooks that only
to test. (No affects build status).
*Fix: Hooks auto fixing source code (Affects
build status).
*All: All configuration files to run hooks.
[env var: PRECOMMIT_HOOKS_TYPE; default:
all, -fix]
--install Install the pre-commit script
Using this option a '.git/hooks/pre-commit'
will be created
Now your command 'git commit' will run 'pre-
commit-vauxoo' before to commit
--version Show the version of this package
--odoo-version TEXT Odoo version used for the repository. [env
var: VERSION]
--py-version TEXT Python version used for the repository.
[env var: TRAVIS_PYTHON_VERSION]
--is-project-for-apps BOOLEAN It is a project for apps (manifest with
price) enabling special pylint checks [env
var: PRECOMMIT_IS_PROJECT_FOR_APPS]
--only-cp-cfg Only copy configuration files without
running the pre-commit script
--compatibility-matrix COMPATIBILITY-MATRIX
Defines the compatibility and behavior level
for each linter tooling.
This parameter controls how aggressive or
modern the enabled linters, formatters, and
autofixes are. Each position in the matrix
represents a specific tool and its behavior
level.
Lower values prioritize backward
compatibility and minimal diffs. Higher
values enable newer versions, stricter
rules, and more aggressive autofixes.
Default: Latest newers and aggressive
behavior for all tools.
Example: * 0.0.0.0.0.0 → Using zero 0 or not
defined will use the latest behavior ever *
10.10.10.10.10.10 → Freeze old behavior
<=2025 year (safe, backward-compatible) *
20.20.20.20.20.20 → Enable new 2026
behaviors and aggressive autofixes * (future
changes may add more values) * Mixed values
(e.g. 10.20.10.20.0.20) allow fine-grained
control per tool
Tool order: 🟢 1. Prettier (20 → Enable XML
aggressive whitespace fixes) 🟢 2. OCA hooks
https://github.com/OCA/odoo-pre-commit-hooks
(20 → rm py headers, rm unused logger,
change xml id position first, change xml
bool/integer to eval, add xml-header-missing
uppercase, mv README.md to README.rst,
change py _('translation') to
self.env._('translation'), rm manifest
superfluous keys, rm field-string-redundant)
🟢 3. ESLint 🟢 4. Black / Autoflake 🟢 5. pre-
commit framework 🟢 6. Pylint/pylint-odoo
⚠️ Higher values or empty valuesmay
introduce formatting changes, stricter
linting, or non-backward-compatible fixes
(especially for XML, Python, and JS files).
[env var: LINT_COMPATIBILITY_MATRIX]
--help Show this message and exit.
To run all the tests run:
tox
Use extra parameters to change the test behaviour.
e.g. particular python version:
tox -e py310
e.g. particular unittest method:
tox -e py310 -- -k test_basic
e.g. all the tests at the same time in parallel:
tox -p auto
Note, to combine the coverage data from all the tox environments run:
| Windows | set PYTEST_ADDOPTS=--cov-append tox |
|---|---|
| Other | PYTEST_ADDOPTS=--cov-append tox |