Full suite passes on a live odoo:14.0 instance; module installs cleanly. PORTING.md marked complete with the full list of resolved Odoo-14 deltas. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2.3 KiB
2.3 KiB
Porting status — Odoo 14.0 branch
✅ PORT COMPLETE & VERIFIED (v0.5.1) — full suite 69/69 passing on a live Odoo 14.0
instance (K8s odoo_test_14, base image odoo:14.0, Python 3.7). Module installs cleanly.
This branch targets Odoo Community 14.0 — the version ITSulu runs in production. It was seeded from the 17.0 baseline and ported to Odoo 14 APIs.
The product feature set is the same across all Odoo branches; only the Odoo-API-specific code differs. Odoo 14 is older than the 17.0 baseline, so several things move backwards. See
CLAUDE.md§15 for the branch model and §11.5 / §12 for version-specific gotchas.
Series markers (done)
.odoo-series=14.0Dockerfilebase image =odoo:14.0- manifest version prefix =
14.0.(viabump-version.sh)
Odoo 14 deltas resolved (what the port required)
- Mail template → Jinja2.
data/mail_template_data.xmlreverted from the 17.0 qweb (type="html",<t t-out>) to Odoo 14 Jinja2 (${...},% if,% for). - View conditional attrs →
attrs. 7 Odoo-17 bare/expressioninvisible="…"attributes (blog_topic, blog_generation_log, blog_schedule web_ribbon) converted to Odoo 14attrs="{'invisible': [domain]}". This was blocking module install. - Test framework:
setUpClass/cls.env→setUp/self.env. Odoo 14 exposes the env insetUp(instance), notsetUpClass(Odoo 15+). 13 blocks across 6 files converted. env.flush_all()→env['base'].flush().flush_allis Odoo 15+; 14 uses recordset.flush().- Test mocks set
body_html. Odoo 14 rejects an unset MagicMock written toblog.post.content(can't adapt type 'MagicMock'); 17 silently stringified it. - Query budget. Odoo 14 issues ~54 framework queries vs 17's <50; budget raised to 60.
- Python 3.7 syntax verified (compileall); pytest 7.4.4 / pytest-bdd 6.1.1 / pytest-odoo 1.0.1 pinned for Python 3.7.
- Full suite green: 69/69 on odoo:14.0.
Releasing further changes on this branch
- Use the 14.0 K8s job (base image
odoo:14.0, freshodoo_test_14,odoo -ithen pytest). - Record any new Odoo-14 gotcha in
CLAUDE.md§12. bump-version.sh patch|minor→ CHANGELOG → commit →bump-version.sh tag(tags14.0-vX.Y.Z).