Pre-release
This release is a pre-release and may not be stable for production use.
odoo-lint
Blazing fast Rust-native linter for Odoo modules. The CLI is called odl.
Installation
uv tool install odoo-linter # or: pipx install odoo-linter
cargo install odoo-lint # from crates.io
Usage
odl check path/to/addons # target Odoo version from config, default 17.0
odl check . --version 18.0 # override the target version
odl check . --config odoo-lint.toml # use an explicit config file
Exit codes: 0 no violations, 1 violations found, 2 configuration error.
Rules
| Code | Description |
|---|---|
ODOO001 |
Compute method referenced by compute= lacks @api.depends |
ODOO010 |
__manifest__.py author does not match the configured author |
Configuration
odl looks for odoo-lint.toml or a pyproject.toml with a
[tool.odoo-lint] table, starting at the linted path and walking up.
[tool.odoo-lint]
target-version = "17.0"
[tool.odoo-lint.rules.manifest-author]
# Used when no pattern matches
default = "Odoo Community Association (OCA)"
# Company-specific overrides by module folder name. An exact name wins,
# otherwise the longest matching `prefix*` pattern.
[tool.odoo-lint.rules.manifest-author.mapping]
"mijnbedrijf_*" = "MijnBedrijf B.V."
"acme_*" = "Acme Corp"
In odoo-lint.toml the same keys live at the top level ([rules.manifest-author]).
Development
Rust builds the binary, maturin packages it as a wheel and uv manages the virtual environment.
uv sync --all-groups # builds `odl` into .venv via maturin
uv run nox # pre-commit, fmt, clippy, cargo tests, CLI tests
uv run nox -s clippy # a single session
License
MIT
Metadata
Release files for odoo-linter 0.1.0a1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| odoo_linter-0.1.0a1.tar.gz | 16.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| odoo_linter-0.1.0a1-py3-none-manylinux_2_34_x86_64.whl | Python 3 | none | Linux glibc 2.34+ x86-64 | Details |
Total release size: 1.3 MB
Release files / odoo_linter-0.1.0a1.tar.gz
| Download URL | odoo_linter-0.1.0a1.tar.gz |
|---|---|
| Size | 16.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a9f843b539ec525e0eed37f0b7987b4611f1204e2a4372af2d1aa279cb2a5d58
|
|
BLAKE2b-256 checksum How to use checksums |
5d3061f3a1914a4b42932193a71767bea7fa6ded2bd2c14ef27921ebf22f8eb6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.16 {"installer":{"name":"uv","version":"0.11.16","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Fedora Linux","version":"44","id":"","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / odoo_linter-0.1.0a1-py3-none-manylinux_2_34_x86_64.whl
| Download URL | odoo_linter-0.1.0a1-py3-none-manylinux_2_34_x86_64.whl |
|---|---|
| Size | 1.3 MB |
| Tags | Linux glibc 2.34+ x86-64 Python 3 |
|
SHA-256 checksum How to use checksums |
321da55ed98d8731b083297cff82b6b38586afda7812c074967bb7bea6dfcd32
|
|
BLAKE2b-256 checksum How to use checksums |
7109af5e6be311b32f65969ca90b150c1b634d0d3df6759103e7ad3841c85608
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.16 {"installer":{"name":"uv","version":"0.11.16","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Fedora Linux","version":"44","id":"","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|