itsulu-blog-publisher/CHANGELOG.md
Nicholas Riegel c039b5f0cb release: v0.4.8 — CI pipeline green + Odoo 17 fixes (squash of !1)
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>
2026-05-30 10:58:57 -04:00

2.3 KiB
Raw Permalink Blame History

Changelog

All notable changes to ITSulu Blog Publisher are recorded here.

This project uses a three-part version number — MAJOR.MINOR.PATCH (each part 0999):

  • 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-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.