Skip to content

pre-commit-vauxoo python library to add a command to use all the configuration files and environment variables of Vauxoo

License

Notifications You must be signed in to change notification settings

Vauxoo/pre-commit-vauxoo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Overview

Vauxoo
docs
Documentation Status
tests
package
PyPI Package latest release |
Commits since latest release |
Supported versions |

pre-commit script to run automatically the configuration and variables custom from Vauxoo

  • Free software: GNU Lesser General Public License v3 or later (LGPLv3+)

Installation

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

Usage

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.

Development

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

About

pre-commit-vauxoo python library to add a command to use all the configuration files and environment variables of Vauxoo

Resources

License

Contributing

Stars

Watchers

Forks

Packages

No packages published