Phiên bản CalVer
Phiên bản CalVer
Bắt đầu từ phiên bản 2026.3.0, iSPA CMS sử dụng Calendar Versioning (CalVer) thay cho Semantic Versioning (SemVer).
Định dạng
YYYY.MM.PATCH
| Segment | Ý nghĩa | Ví dụ |
|---|---|---|
YYYY | Năm phát hành | 2026 |
MM | Tháng phát hành (có zero-pad) | 03 |
PATCH | Số bản vá trong tháng, bắt đầu từ 0 | 0, 1, 2... |
Ví dụ: 2026.03.0 — phát hành tháng 3 năm 2026, bản gốc.
Phiên bản cấp ứng dụng
File VERSION ở thư mục gốc dự án là nguồn mà cms:version và cấu hình ứng dụng đọc để báo phiên bản cấp CMS.
2026.03.0
Giá trị này được đọc trực tiếp bởi:
config('ispa-cms.app_version')— config Laravelphp artisan cms:version— phiên bản ứng dụng, PHP và Laravel
module.json và composer.json của từng module là metadata riêng. Lệnh cms:bump có thể đồng bộ chúng theo VERSION, nhưng không nên mặc định rằng mọi module trong working tree luôn đang cùng phiên bản.
Snapshot hiện tại có version drift
Ngày 26/08/2026, VERSION là 2026.03.0, trong khi 40 manifest module đang có nhiều giá trị từ 2026.03.0 đến 2026.08.1, và một số manifest chưa khai báo version. Đây là trạng thái source hiện tại; tài liệu không được tiếp tục khẳng định “tất cả module luôn đồng bộ”.
Bump phiên bản
Sử dụng lệnh cms:bump để tăng phiên bản đồng loạt:
| Loại | Hành vi | Ví dụ |
|---|---|---|
patch | Tăng PATCH segment | 2026.03.0 → 2026.03.1 |
minor | Phát hành tháng mới | 2026.03.0 → 2026.04.0 |
major | Tương tự minor (CalVer dựa trên lịch) | 2026.03.0 → 2026.04.0 |
# Tăng patch
php artisan cms:bump patch
# Tháng mới
php artisan cms:bump minor
# Xem trước
php artisan cms:bump patch --dry-run
Files được cập nhật
Khi bump, lệnh sẽ cập nhật:
VERSION— file gốc- Mọi
cms/*/module.jsonkhớp glob — trườngversion - Mọi
cms/*/composer.jsonkhớp glob — trườngversion
Đây là thao tác release có ghi file
Chạy --dry-run trước và review toàn bộ file dự kiến đổi. base-admin/package.json không được lệnh cập nhật. Chỉ tạo git tag sau khi version, artifact và commit release đã được xác nhận.
Tại sao CalVer?
- Dễ hiểu: Nhìn phiên bản biết ngay thời điểm phát hành.
- Phù hợp với CMS: iSPA CMS phát hành liên tục, không theo chu kỳ major/minor truyền thống.
- Có công cụ đồng bộ:
cms:bumpcó thể đưa mọi manifest/composer module khớp glob về cùng version trong một release đã duyệt. - Được sử dụng rộng rãi: Ubuntu, pip, nhiều dự án lớn dùng CalVer.
So sánh với SemVer
| So sánh | SemVer | CalVer (iSPA CMS) |
|---|---|---|
| Định dạng | MAJOR.MINOR.PATCH | YYYY.MM.PATCH |
| Ý nghĩa MAJOR | Breaking changes | Năm |
| Ý nghĩa MINOR | Features | Tháng |
| Ý nghĩa PATCH | Bug fixes | Bản vá trong tháng |
| Ưu điểm | Rõ ràng về tương thích | Rõ ràng về thời gian |

