ADR-028 — CalVer Versioning AAMMDD.NN
Status: Approved (replaces ADR-024) | Date: 2026-06-18 | Scope: All plugins
Context
Semantic versioning (MAJOR.MINOR.PATCH) does not convey when a release was made, which matters for a healthcare SaaS where compliance auditors ask "what version was running on date X?". ADR-024 used three-segment CalVer; this ADR simplifies it to two segments.
Decision
All obeliOmed plugin versions use the format AAMMDD.NN:
| Segment | Meaning | Example |
|---|---|---|
AA | Year last two digits | 26 for 2026 |
MM | Month zero-padded | 06 for June |
DD | Day zero-padded | 20 for the 20th |
NN | Build sequence within that day | 01, 02, 03 |
Examples:
260620.01 -> 2026-06-20, first build
260620.02 -> 2026-06-20, second build (hotfix same day)
260621.01 -> 2026-06-21, next day first build
Set in two places per plugin:
// composer.json
{ "version": "260620.01" }
; facturascripts.ini
version=260620.01
Consequences
- Release date is immediately readable from the version number
- No semantic meaning carried (breaking vs non-breaking) — release notes document that
- Simple comparison:
260621.01 > 260620.02for latest-version checks - Replaces ADR-024 (three-segment CalVer) — old format
26.06.20-1is invalid