Built a Python-based static analysis engine that scans Odoo 14/15/16 custom module codebases and ...Built a Python-based static analysis engine that scans Odoo 14/15/16 custom module codebases and ...
The network for creativity
Join 1.25M professional creatives like you
Connect with clients, get discovered, and run your business 100% commission-free
Creatives on Contra have earned over $150M and we are just getting started
Built a Python-based static analysis engine that scans Odoo 14/15/16 custom module codebases and generates a structured migration report before a single line of upgrade code is written.
The problem it solves:
Odoo version migrations fail at the module layer, not the database layer. The breaking changes between v14 and v17 are silent — modules install without errors but produce wrong data at runtime because deprecated API patterns execute without raising exceptions. Engineers discover these failures in production, not during migration planning.
This engine finds them before you start.
What it scans:
→ Deprecated API usage: detects v14/v15/v16 ORM patterns that break silently in v17 — including renamed methods, removed parameters, and changed return types on core model methods → Broken XML inheritance: flags xpath expressions targeting views that were restructured or renamed in the target version — the most common source of invisible UI breakage post-migration → Security CSV issues: validates ir.model.access.csv structure, detects missing columns, wrong model references, and group ID mismatches against the target version's model registry → Renamed fields: cross-references custom field usage against Odoo's official field rename manifest for each version jump — flags every reference that will produce a KeyError at runtime → Raw SQL risk: detects hardcoded table names in env.cr.execute() calls that may have changed between versions → Compute field patterns: flags deprecated @api.depends usage and missing store= declarations that behave differently in v17+
Output format:
Structured JSON and Markdown report with:
Critical issues (will break on install)
Warning issues (will break at runtime)
Advisory issues (technical debt to address)
Per-file breakdown with line numbers
Estimated remediation effort per issue category
Compatible: Odoo v14→v17, v15→v17, v16→v17, v14→v18, v15→v18, v16→v18
Stack: Python · AST module · lxml · pathlib · argparse
Post image
Back to feed
The network for creativity
Join 1.25M professional creatives like you
Connect with clients, get discovered, and run your business 100% commission-free
Creatives on Contra have earned over $150M and we are just getting started