release: v0.5.0 — establish Odoo 19.0 branch (multi-version support)

Seed the 19.0 series branch from the 17.0 baseline and wire up the
per-Odoo-version structure:
- .odoo-series = 19.0; Dockerfile FROM odoo:19.0; manifest 19.0.0.5.0
- PORTING.md tracks the Odoo-19 API porting checklist
- README retargeted to 19.0 with a porting-in-progress notice
- CHANGELOG v0.5.0 entry

NOTE: code is seeded from 17.0 — the Odoo-19 port is NOT yet verified
(see PORTING.md). Not deploy-ready on a 19.0 instance until the suite
runs green there.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Nicholas Riegel 2026-05-30 11:15:50 -04:00
parent 5ed2851ee5
commit 00e4873f04
7 changed files with 72 additions and 8 deletions

1
.odoo-series Normal file
View file

@ -0,0 +1 @@
19.0

View file

@ -12,6 +12,30 @@ Release notes are written in plain language so anyone on the team can follow wha
---
## v0.5.0 — 2026-05-30
Sets up support for **multiple Odoo Community versions**, each on its own branch — the same
model the Odoo project itself uses. We initially target **Odoo 19.0** (the latest stable) and
**Odoo 14.0** (the version ITSulu runs in production).
### Added
- **Per-Odoo-version branches.** The addon now lives on a branch per Odoo release — `19.0`
and `14.0` — so each can track the API differences of its Odoo version independently. Check
out the branch that matches your Odoo install.
- **Version tooling is Odoo-aware.** The release helper (`bump-version.sh`) now reads which
Odoo series a branch targets and stamps the addon and release tags accordingly
(e.g. `19.0-v0.5.0`, `14.0-v0.5.0`), so one product version can ship on several Odoo versions.
- A `PORTING.md` on each version branch tracks what still needs checking for that Odoo release.
### Notes
- This `19.0` branch is **seeded from the 17.0 codebase** and the Odoo-19 port is still being
verified — see `PORTING.md`. For production today, use the `14.0` branch (also in progress).
- Documentation (`README`, `CLAUDE.md` §15) now describes the branch-per-version model.
---
## v0.4.8 — 2026-05-30
The first tagged release. This version gets the whole test suite running green on the

View file

@ -1,4 +1,4 @@
FROM odoo:17.0
FROM odoo:19.0
# Install Python testing dependencies using the system Python
RUN python3 -m pip install --no-cache-dir \

35
PORTING.md Normal file
View file

@ -0,0 +1,35 @@
# Porting status — Odoo 19.0 branch
This branch targets **Odoo Community 19.0**. It was **seeded from the 17.0 baseline**
(the `main` line) and the Odoo-19-specific porting is tracked here. Until every item below
is verified, treat this branch as **work in progress** — do not deploy to a 19.0 instance
expecting it to work unverified.
> The product feature set is the same across all Odoo branches; only the Odoo-API-specific
> code differs. See `CLAUDE.md` §15 for the branch model and §11.5 / §12 for known
> version-specific gotchas.
## Series markers (done)
- [x] `.odoo-series` = `19.0`
- [x] `Dockerfile` base image = `odoo:19.0`
- [x] manifest version prefix = `19.0.` (via `bump-version.sh`)
## API porting checklist (verify on a real Odoo 19.0 instance)
- [ ] Module installs cleanly: `odoo -i itsulu_blog_publisher` on 19.0
- [ ] `blog.post` body field name (was `content` in 17.0 — confirm for 19.0)
- [ ] `mail.template` rendering (subject inline_template, body qweb `type="html"`)
- [ ] `mail.template._render_field` signature/return shape
- [ ] `website_blog` dependency + view inheritance still valid
- [ ] Wizard / settings views pass RELAXNG validation on 19.0
- [ ] `ir.cron` data format
- [ ] Python version compatibility (19.0 ships on a newer Python)
- [ ] Full test suite green on a 19.0 template DB (K8s job, §8)
## How to work this branch
1. Stand up a 19.0 template DB (mirror §8, base image `odoo:19.0`).
2. Run the suite, fix failures one Odoo-API difference at a time.
3. Record each gotcha in `CLAUDE.md` §12 tagged with the series.
4. When green, cut a release on this branch (`bump-version.sh` → tag `19.0-vX.Y.Z`).

View file

@ -1,8 +1,12 @@
# ITSulu Blog Publisher — Odoo 17 Addon
# ITSulu Blog Publisher — Odoo 19 Addon
**Version:** 0.4.8
**Version:** 0.5.0 · **Odoo series:** 19.0
Automated blog post generation and publishing for Odoo 17 Community Edition, powered by generative AI (Anthropic Claude, OpenAI, Google Gemini, or Ollama).
Automated blog post generation and publishing for Odoo 19.0 Community Edition, powered by generative AI (Anthropic Claude, OpenAI, Google Gemini, or Ollama).
> ⚠️ **Porting in progress.** This `19.0` branch is seeded from the 17.0 baseline; the
> Odoo-19 API port is tracked in [PORTING.md](PORTING.md). Use the `14.0` branch for the
> ITSulu production instance until 19.0 is verified.
> **Versioning**`MAJOR.MINOR.PATCH` (each 0999). MAJOR = major release for sale / significant change; MINOR = features or performance improvements; PATCH = a single group of commits. See [CHANGELOG.md](CHANGELOG.md) for release notes and [CLAUDE.md](CLAUDE.md) §15 for the full scheme.
@ -63,8 +67,8 @@ primed PostgreSQL template database. See [CLAUDE.md](CLAUDE.md) §8 for the K8s
### Prerequisites
- Odoo 17.0 Community
- Python 3.10+
- Odoo 19.0 Community
- Python 3.11+
- PostgreSQL 13+
- pip packages: `requests`, `pytest-odoo`, `pytest-bdd`

View file

@ -1 +1 @@
0.4.8
0.5.0

View file

@ -3,7 +3,7 @@
'name': 'ITSulu Blog Publisher',
# Odoo manifest version = <odoo_series>.<product_version>. Product version
# is tracked in the repo-root VERSION file (currently 0.4.8). See CLAUDE.md §15.
'version': '17.0.0.4.8',
'version': '19.0.0.5.0',
'summary': 'AI-powered blog post generation with multi-LLM support, scheduling, and social media copy',
'description': """
ITSulu Blog Publisher