Semantic Version Trong Lập Trình


Tổng quan về semantic version trong lập trình và cách sử dụng.

Semantic version là tập hợp các rules và yêu cầu nhằm đánh dấu sự thay đổi của ứng dụng dựa trên việc gán và tăng số phiên bản.

Nội dung chính

Semantic version có dạng X.Y.Z. Trong đó:

  • X: MAJOR version. Tăng lên khi có sự thay đổi của API mà không tương thích ngược, có phát triển tính năng mới.
  • Y: MINOR version. Tăng lên khi có sự thay đổi trong tính năng mà vẫn đảm bảo tương thích ngược.
  • Z: PATCH version. Tăng lên khi có sự thay đổi bug fix.

Một số lưu ý thêm

  • Khi đã định phiên bản cho API. Không thay đổi source code. Khi có thay đổi, phải thay tăng phiên bản lên.

  • Phiên bản 0.y.z là phiên bản chưa release, đang phát triển.

  • Các phiên bản pre-release hoặc build metadata là 1 phần mở rộng sau X.Y.Z. Ví dụng và thứ tự ưu tiên:

1.0.0-alpha < 1.0.0-alpha.1 < 1.0.0-alpha.beta < 1.0.0-beta < 1.0.0-beta.2 < 1.0.0-beta.11 < 1.0.0-rc.1 < 1.0.0

Ràng buộc version trong package.json hay composer.json

Khi sử dụng các dependency management như npm hay composer. Chúng ta thường thấy các ký tự như ^ hay ~ trước version của các dependency. Sau đây là giải thích:

Wildcard (*)

Kiểm tra và cài đặt phiên bản mới nhất ứng với vị trí của *.

Ví dụ: 1.1.* sẽ cài phiên bản mới nhất trong khoảng: >= 1.1.0 and < 1.2.0

Tilde Version Range (~)

Dấu ~ dùng để chỉ nâng cấp PATCH version tới phiên bản mới nhất.

Ví dụ: ~1.1.0 sẽ cài phiên bản trong khoảng từ >= 1.1.0 and < 1.2.0

Caret Version Range (^)

Dấu ^ dùng để chỉ nâng cấp PATCH VÀ MINOR version tới phiên bản mới nhất.

Ví dụ: ^1.1.0 sẽ cài phiên bản trong khoảng từ >= 1.1.0 and < 2.0.0

© nvnhan0810 it-blogs - 2025