itsulu-blog-publisher/PORTING.md
Nicholas Riegel 96adace887 release: 14.0-v0.5.1 — Odoo 14 port verified green (69/69)
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>
2026-05-30 11:54:38 -04:00

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.0
  • Dockerfile base image = odoo:14.0
  • manifest version prefix = 14.0. (via bump-version.sh)

Odoo 14 deltas resolved (what the port required)

  • Mail template → Jinja2. data/mail_template_data.xml reverted from the 17.0 qweb (type="html", <t t-out>) to Odoo 14 Jinja2 (${...}, % if, % for).
  • View conditional attrs → attrs. 7 Odoo-17 bare/expression invisible="…" attributes (blog_topic, blog_generation_log, blog_schedule web_ribbon) converted to Odoo 14 attrs="{'invisible': [domain]}". This was blocking module install.
  • Test framework: setUpClass/cls.envsetUp/self.env. Odoo 14 exposes the env in setUp (instance), not setUpClass (Odoo 15+). 13 blocks across 6 files converted.
  • env.flush_all()env['base'].flush(). flush_all is Odoo 15+; 14 uses recordset .flush().
  • Test mocks set body_html. Odoo 14 rejects an unset MagicMock written to blog.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

  1. Use the 14.0 K8s job (base image odoo:14.0, fresh odoo_test_14, odoo -i then pytest).
  2. Record any new Odoo-14 gotcha in CLAUDE.md §12.
  3. bump-version.sh patch|minor → CHANGELOG → commit → bump-version.sh tag (tags 14.0-vX.Y.Z).