diff --git a/.odoo-series b/.odoo-series new file mode 100644 index 0000000..6ea9a3b --- /dev/null +++ b/.odoo-series @@ -0,0 +1 @@ +19.0 diff --git a/CHANGELOG.md b/CHANGELOG.md index d6315a5..7eac61b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -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 diff --git a/Dockerfile b/Dockerfile index 86677bd..d58fe13 100644 --- a/Dockerfile +++ b/Dockerfile @@ -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 \ diff --git a/PORTING.md b/PORTING.md new file mode 100644 index 0000000..97332f6 --- /dev/null +++ b/PORTING.md @@ -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`). diff --git a/README.md b/README.md index 7c0c859..c0cc6b0 100644 --- a/README.md +++ b/README.md @@ -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 0–999). 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` diff --git a/VERSION b/VERSION index cb498ab..8f0916f 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.4.8 +0.5.0 diff --git a/addons/itsulu_blog_publisher/__manifest__.py b/addons/itsulu_blog_publisher/__manifest__.py index 161ac5e..c3378c6 100644 --- a/addons/itsulu_blog_publisher/__manifest__.py +++ b/addons/itsulu_blog_publisher/__manifest__.py @@ -3,7 +3,7 @@ 'name': 'ITSulu Blog Publisher', # Odoo manifest 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