Commit graph

6 commits

Author SHA1 Message Date
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
ec1a267ead test: RED phase — first test passing for blog.topic model
Setup:
- K8s test job with init container auto-installing itsulu_blog_publisher
- Dockerfile simplified: symlink addon to /var/lib/odoo/addons, no conftest needed
- Postgres init container creates fresh test DB for each job

Fixes:
- Disabled website_blog_publisher_templates.xml (RELAXNG validation issue in Odoo 17)
  Template elements need schema rework; deferred to Phase 2.5
- Fixed XML entity escaping in retained template code (&& → &amp;&amp;)

Test Result:
 TestBlogTopicQueueManagement::test_topic_is_created_with_pending_state PASSED
   Model itsulu.blog.topic registers correctly
   Default state='pending' works as expected

Next:
- Run all 7 blog_topic tests to ensure complete coverage
- GREEN phase: implement remaining model methods/fields
- REFACTOR: pre-commit check

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-05-29 22:50:10 -04:00
829ce90e5f chore: Phase 2 kickoff - remove problematic settings view, add roadmap
- Remove res_config_settings_views.xml from manifest (XPath selector incompatible with Odoo 17)
- Settings functionality deferred to Phase 2.5 after core models are working
- Add PHASE2_ROADMAP.md with TDD workflow and 64-test implementation plan
- Infrastructure complete; models ready for incremental TDD implementation

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-05-29 22:14:02 -04:00
392e56ded8 chore: replace README and refactor manifest
Re-order manifest view declarations for consistency.
Simplify redundant field decorations in generation log tree view.
2026-05-29 21:55:16 -04:00
34647c3742 docs: add Kubernetes test infrastructure documentation
- Add comprehensive K8s test setup guide to CLAUDE.md (section 8)
- Document K8s architecture, Docker image requirements, and job execution
- Update ARCHITECTURE.md with CI/CD infrastructure details
- Fix Dockerfile to use python3 -m pip and proper non-root user handling
- Upgrade addon to Odoo 17.0 and update XML view syntax
2026-05-29 18:13:32 -04:00
0fc4febabf Reorganize codebase into Odoo addon structure per ARCHITECTURE.md
Restructure project files to follow the addon layout:
- Move models to addons/itsulu_blog_publisher/models/
- Move services (LLM providers, routers) to addons/itsulu_blog_publisher/services/
- Move wizards to addons/itsulu_blog_publisher/wizards/
- Move views (XML templates) to addons/itsulu_blog_publisher/views/
- Move data (cron, mail templates) to addons/itsulu_blog_publisher/data/
- Move security (ACL) to addons/itsulu_blog_publisher/security/
- Move tests and factories to addons/itsulu_blog_publisher/tests/
- Move BDD features to addons/itsulu_blog_publisher/features/
- Create __init__.py files for all Python packages

This enables proper Odoo module discovery and import structure.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-05-29 12:11:42 -04:00
Renamed from __manifest__.py (Browse further)