CalVer Versioning
CalVer Versioning
Starting from version 2026.3.0, iSPA CMS uses Calendar Versioning (CalVer) instead of Semantic Versioning (SemVer).
Format
YYYY.MM.PATCH
| Segment | Meaning | Example |
|---|---|---|
YYYY | Release year | 2026 |
MM | Release month (zero-padded) | 03 |
PATCH | Patch number within the month | 0, 1, 2... |
Single Source of Truth
The VERSION file at the project root is the single source of truth.
2026.03.0
Read by:
config('ispa-cms.app_version')— Laravel configmodule.jsonin each module — metadatacomposer.jsonin each module — package version
Bumping Versions
| Type | Behavior | Example |
|---|---|---|
patch | Increment PATCH | 2026.03.0 → 2026.03.1 |
minor | New month release | 2026.03.0 → 2026.04.0 |
major | Same as minor (date-driven) | 2026.03.0 → 2026.04.0 |
php artisan cms:bump patch
php artisan cms:bump minor
php artisan cms:bump patch --dry-run
Manual Steps
The base-admin/package.json requires manual sync. After bumping, create a git tag: git tag v2026.03.1.
Why CalVer?
- Intuitive: Version tells you when it was released.
- CMS-friendly: Continuous delivery, no traditional major/minor cycles.
- Easy sync: All 18 modules share one version.
- Widely adopted: Used by Ubuntu, pip, and many large projects.
Comparison with SemVer
| Comparison | SemVer | CalVer (iSPA CMS) |
|---|---|---|
| Format | MAJOR.MINOR.PATCH | YYYY.MM.PATCH |
| MAJOR meaning | Breaking changes | Year |
| MINOR meaning | New features | Month |
| PATCH meaning | Bug fixes | Patch within month |
| Strength | Clear compatibility | Clear timeline |

