# Changelog All notable changes to **ITSulu Blog Publisher** are recorded here. This project uses a three-part version number — `MAJOR.MINOR.PATCH` (each part 0–999): - **MAJOR** — a major release for sale; significant feature upgrades or a significant change to the software. - **MINOR** — one or more features added, or a meaningful performance improvement. - **PATCH** — a single group of commits, or one large commit. Release notes are written in plain language so anyone on the team can follow what changed. --- ## 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 ITSulu Kubernetes cluster and fixes two bugs that affected real blog posts and emails. ### Fixed - **Notification emails now render correctly.** The email template was written in an old syntax that Odoo 17 no longer understands, so notification emails were going out with raw code (like `${object.blog_post_id.name}`) instead of the actual post title. The template was rebuilt using Odoo 17's current format, so subjects and bodies now fill in properly. - **Generated blog posts are no longer empty.** When a post was created automatically, the AI-written body was being thrown away before it reached the post. Every auto-generated post was published blank. The body is now saved to the post's content field. - Removed a duplicate field definition that produced a warning on every Odoo startup. ### Testing & Infrastructure - The full automated test suite — **69 tests** (48 unit, 15 behaviour, 6 performance) — now passes end to end on the ITSulu Kubernetes test cluster. - The CI/CD pipeline was corrected: stages now run in the right order, database credentials are handled properly, and test reports are generated as build artifacts. - End-to-end tests now run as ephemeral jobs on the ITSulu cluster (`itsulu-testing` namespace) instead of an external preview service. - Brought the test code up to date with Odoo 17 (email rendering, blog post fields, and the behaviour-test environment setup). ### Documentation - Recorded the Odoo 16 → 17 migration lessons (email templates, post body fields, template database refresh) in `CLAUDE.md` so they are not rediscovered the hard way. - Introduced this changelog and the project versioning scheme.