Release Notes¶
All roots_hemms_* modules track the Odoo major version they ship against; the current series is 18.0.1.0. Releases are tagged by quarter rather than by SemVer minor — Q1, Q2, ... map onto bundles of related modules that ship together. Each module's own __manifest__.py carries the authoritative version string (18.0.1.0.0 across the suite today).
Format
Each release lists Added, Changed, Fixed, and Deprecated in that order. Dates reflect the merge into main on github.com/jakapolr/hemms-demo.
v18.0.1.0 — 2026-05-23 (current)¶
The first end-to-end stable release. Bundles Q1 → Q7 plus a post-Q7 navigation-polish drop. All quarters were merged through pull requests with green CI; 177 HEMMS tests gate every PR.
Added¶
roots_hemms_workflow— 5-stage repair workflow (Submitted → Pending Review → In Repair → Awaiting Pickup → Received), per-stage SLA hours,roots_is_sla_breachedsearch, immutablehemms.stage.transition.logaudit trail. (Q1, May 2026)roots_hemms_criticality— 2D Value × Risk matrix withgreen/yellow/redroots_criticality_color, bilingual label compute for the active language. (Q1, May 2026)roots_hemms_asset_master— Brand / Model master, government Ref. No. uniqueness, condition tracking (in-use / broken / deteriorated / lost / unused). (Q1, May 2026)roots_hemms_asset_inspection— Annual ปจป. stock-check with committee assignment, condition propagation, sequence (AI/YYYY/NNNNN), PDF report. (Q1, May 2026)roots_hemms_pm— Hospital PM kinds (3 bilingual seeds), thePM Scheduledinitial stage, PM-aware default stage routing. (Q1, May 2026)roots_hemms_spare_parts— Per-equipment spare-template lines, Stock Request running number, daily critical-low-stock cron, auto-draft Consumption picking when a PM cron fires. (Q2, 2026-05-22)roots_hemms_service_contracts— Contract types (Warranty / Extended / MA / Spare-only / Labor-only), per-kind coverage matrix withincluded_in_contract+billable_to_hospital, auto-link to maintenance requests, daily lifecycle cron, 60-day renewal alert, bilingual_name_search. (Q3, 2026-05-22)roots_hemms_signature—sign_ocabridge overhemms.asset.inspectionandhemms.service.contract. Signed PDF auto-attached to chatter on_check_signed. Internal in-app signing plus portal route for vendors. (Q4, 2026-05-22)roots_hemms_ha_report— HA Thailand Annual PM Report:hemms.ha.device.classwith 82 MoPH seed rows, 3-step risk waterfall (override → device class → WHO EM-score), immutable JSON snapshot on submit, 7-section QWeb template, 3-signer e-sign (BME Head / Engineering Head / Director). (Q5, 2026-05-22)roots_hemms_mass_import— XLSX upload for Equipment / Vendors / Locations, 3-step wizard (Upload → Preview → Commit), dry-run engine, idempotent business-key matching, batch-tagged delete window (7 days), strict MoPH 82-class validation, error-row XLSX export. (Q6, 2026-05-22)- CI/CD —
.github/workflows/lint.yml(ruff + pylint_odoo + oca-checks) andtests.yml(Postgres 15 + Odoo 18 container, four leaf modules pulling everything else transitively).Makefilelint/test/citargets for local parity. (Q7, PR #5 →08243ca) - Navigation polish — single top-level "Reporting" menu (Asset Inspection + HA Report under one parent), Mass Import moved to Configuration, reordered top-bar to Dashboard → Maintenance → Equipment → Asset Inspection → Service Contracts → Reporting → Configuration. English-only baseline menu labels (Thai handled via
.potranslations). (PR #7, 2026-05-23)
Changed¶
- PM default stage routing —
roots_hemms_pmnow overridesmaintenance.request.stage_idto exclude PM-initial stages from the default selector. Without this, every new corrective request would land in PM Scheduled because that stage has the lowest sequence. (commit3a63274, Q7) numbercalldropped from cron data — Odoo 18 removed thenumbercallfield onir.cron. All HEMMS crons updated. (commitb55c4cd, Q7)sign_oca_sign_allrequires sent state —roots_hemms_ha_reporttest helper now callsaction_send()before_sign_all()to match the production state machine. (commit3a63274, Q7)
Fixed¶
hemms.ha.report.linefield collision — originalroots_risk_tiercollided withroots_hemms_criticality.roots_risk_tier; renamed toroots_ha_risk_tierandroots_ha_risk_tier_source. (commitd82f278, Q5)- HA report smoke-test failures — 6 install-only bugs fixed in
f95afad: menu xmlid wasmenu_m_reportsnotmenu_maintenance_reports; QWebarch_db%%→%collapse;sign_oca._check_signedrequires state0_sentso the test helper must callaction_send()first; QWeb safe-eval blocksenv['model']anddict(_fields[...].selection)— refactored to instance helpers +t-field. (Q5 follow-up) roots_hemms_mass_importdelete guard —_check_delete_blockerstested directly (record-ruleAccessErrorwas masking the guard inside the standard delete path). (Q6.6)- CI iteration fixes — bash shell explicit in
tests.yml, broken architecture-doc link,--test-tagsscoping,test_i4outsider signer needsaction_send()too. (commitsc038fb7,b55c4cd,3a63274,08243ca)
Known issues¶
I1supplier-domain test skipped inroots_hemms_service_contracts— the vendor field on contracts can't filter tosupplier_rank > 0without depending onpurchase(or introducing aroots_is_vendorflag). The test is decorated@unittest.skipwith a follow-up note.numbercallregression — if you bring forward an older branch withnumbercall="..."on a cron, install will fail on Odoo 18. Fix is a one-line XML edit.- Q5.2 MoPH device-class seed count is 82, not 83 — row 4 in the upstream
(พ.ศ. 2564)PDF is missing. The seed honours the source document.
Deprecated¶
Nothing yet — this is the first stable line.
Quarterly merge table¶
| Quarter | Module(s) shipped | Merge commit | Date |
|---|---|---|---|
| Q1 | workflow, criticality, asset_master, asset_inspection, pm | various | 2026-05-12 → 2026-05-19 |
| Q2 | spare_parts (+ vendored maintenance_stock) | c9791f3 → 1bba093 + f15dbbb | 2026-05-22 |
| Q3 | service_contracts | 950b8ae → ade8216 | 2026-05-22 |
| Q4 | signature (+ vendored sign_oca) | 02bd1fe → e56903b | 2026-05-22 |
| Q5 | ha_report | c5da40c → f95afad | 2026-05-22 |
| Q6 | mass_import | 4527e8a → d59f3d5 | 2026-05-22 → 2026-05-23 |
| Q7 | CI/CD (.github/workflows/lint.yml, tests.yml, Makefile) | PR #5 → 08243ca | 2026-05-23 |
| Nav polish | menu consolidation | PR #7 → b0cfd62 | 2026-05-23 |
Browse the full git log for the per-commit detail, or read each quarter's design plan under Developer → Q-plans.
Migration notes¶
Nothing breaking to migrate yet — every release in this line is additive on top of the previous one. When the v18.0.2 line opens (depreciation + mobile interface, see Roadmap), upgrade instructions will appear in the Upgrade Guide.
Reporting issues¶
Find a bug or a regression?
- Check the Known issues list above.
- Search open issues on GitHub.
- File a new issue with the failing commit hash, the database name (
hemms_demovshemms_private), and amake testoutput snippet if relevant.
For internal-deployment customers, contact your Trinity Roots support channel — see Roots Health Vertical for how that works.