关于 odoo-lint
odoo-lint 是面向 Odoo 开发者及使用 OCA 检查的团队的 Rust 原生模块检查器,覆盖多种文件类型,提供自动修复和升级检查,并附带供 AI 编码 Agent 使用的 MCP 服务。
主要功能
- 01检查 Python、清单、XML、CSV、PO 和 JavaScript
- 02匹配 pylint-odoo 与 OCA 检查结果
- 03应用安全和非安全自动修复
- 04检查旧版 Odoo 遗留内容
- 05配置项目及公司专属规则
- 06提供 CI 输出和编辑器语言服务
适用场景
- 01合并前检查 Odoo 插件
- 02修复翻译和模块文件
- 03升级 Odoo 时查找过时写法
- 04让编码 Agent 在编辑后获取检查反馈
MCP 相关
内置 MCP 服务,可通过 `odl mcp` 为 AI 编码 Agent 提供功能。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
odoo-lint
基于 Rust 的 Odoo 模块检查工具,速度极快。命令名为 odl。
它会检查 Python 文件、清单、XML 和 CSV 数据文件、翻译(.po)文件以及 JavaScript(OWL 组件和模板),检查项与 OCA 的 pylint-odoo、oca-checks-odoo-module 和 oca-checks-po 相同:名称相同、消息相同,在各自的测试套件中结果也相同。它还会警告不应属于模块的文件,例如意外提交的软件包或数据库转储。
按照 OCA 的 pre-commit 钩子运行 pylint-odoo,检查整个 OCA/sale-workflow 18.0。请参阅基准测试。
- ⚡ 比使用 pylint-odoo 的 pylint 快 250 倍,单核运行也快 30 倍
- ⚖️ 可直接替代 pylint-odoo 和 OCA 的 pre-commit 检查:代码、名称和消息相同,在各自的测试套件中每项检查结果均一致(兼容性),且
# pylint: disable=注释仍然有效 - 🔧 自动修复,支持与 Ruff 一样的安全和不安全修复,适用于 Python、清单、XML 和
.po文件(odl check --fix,使用--diff预览) - ⬆️ 升级检查:查找旧版 Odoo 遗留的问题,例如自 Odoo 15.0 起已不起作用的 Bootstrap 4 类,并提供修复
- 🌍 可预测 Odoo 加载器行为的翻译检查:查明 Odoo 为何记录“malformed po file”,以及翻译为何没有显示
- 📦 可通过 pip、uv 或 pipx 安装:Linux、macOS 和 Windows 上提供预构建 wheel,仅含一个二进制文件,无需 Python 依赖
- 🛠️ 在
pyproject.toml中配置,包括公司特定的作者规则 - 📋 支持 CI 输出:GitHub 注释、GitLab Code Quality、SARIF 和 JSON
- ✍️ 可在编辑器中使用:提供支持快速修复的语言服务器(
odl server),以及 VS Code 和 Zed 扩展 - 🤖 面向 AI 编码 Agent:提供 MCP 服务,以及适用于 Claude Code、DeepSeek Harness 和 OpenCode 的插件,可检查 Agent 编辑的每个文件
- 🪝 Git 钩子:pre-commit 和 hk
安装
uv tool install odoo-linter # or: pipx install odoo-linter
cargo install odoo-lint # from crates.io
PyPI 软件包名为 odoo-linter,因为 odoo-lint 与一个现有的 PyPI 项目名称过于相似。在 crates.io 上,它的名称是 odoo-lint。
快速开始
odl check path/to/addons # lint a directory
odl rule # list all rules
odl rule C8101 # explain a rule
odl check --fix # apply the safe fixes (--diff to preview)
从 pylint-odoo 移植的规则保留其代码、名称和消息,并且
# pylint: disable= 注释仍然有效。公司特定的规则可在你的 pyproject.toml 中配置:
[tool.odoo-lint]
target-version = "17.0"
[tool.odoo-lint.rules.manifest-required-author.mapping]
"acme_*" = "Acme Corp"
对于 AI 编码 Agent,我们提供 MCP 服务(odl mcp)和编辑后钩子,
并将其打包为 Claude Code(/plugin marketplace add GetFluvo/odoo-lint)、
DeepSeek Harness 和 OpenCode 的插件。
如果你刚开始使用 odoo-lint,请从 入门指南开始; 如果你之前使用的是 OCA 的 pre-commit 钩子,请阅读 从 OCA 工具迁移。 有关所有命令、配置选项和规则,请参阅文档。
开发
uv sync --all-groups # builds odl into .venv via maturin
uv run nox # pre-commit, fmt, clippy, cargo tests, CLI tests, docs
请参阅 CONTRIBUTING.md 和开发指南。
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。