Squash-merge of fix/ci-pipeline-corrections. Drives the full test suite
to 69/69 green on the ITSulu K8s cluster and fixes two production bugs.
Production fixes:
- Email template migrated from dead Odoo Mako (${}/% for) to Odoo 17
inline_template ({{ }}) + qweb body (type="html", t-out/t-foreach/t-if).
Notification emails previously rendered raw code in the subject/body.
- _create_blog_post now writes 'content': llm_response.body_html — every
auto-generated post was publishing empty.
- Removed duplicate itsulu_social_id field (startup warning).
Testing & infra:
- CI pipeline corrected (stage order, DB auth, junit artifact, addons path).
- E2E moved to ephemeral jobs in the itsulu-testing K8s namespace.
- Test code brought up to Odoo 17 (mail rendering, blog.post.content,
pytest-bdd env fixture, _render_field).
Versioning:
- Introduce MAJOR.MINOR.PATCH scheme, VERSION file, scripts/bump-version.sh,
CHANGELOG.md; first release v0.4.8. CLAUDE.md §15 documents the process.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2.3 KiB
2.3 KiB
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.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-testingnamespace) 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.mdso they are not rediscovered the hard way. - Introduced this changelog and the project versioning scheme.