[SOP] Product_Versioning

Quy ướcMô tả
Versioning Rule

Quy ước đánh mã phiên bản phần mềm: x.y.z

  • x là version lớn hiện tại:
    • Khi có một sự thay đổi lớn về các chức năng, giao diện, kiến trúc của hệ thống sẽ thực hiện tăng giá trị version lên 1 đơn vị. Giá trị khởi tạo là 1.
  • y là version nhỏ của trong version x hiện tại.
    • Tăng giá trị y khi có sự cập nhật, thay đổi một số tính năng của hệ thống. Giá trị khởi tạo là 0.
  • z là version fix lỗi của các tính năng trong version y.
    • Tăng giá trị z thực hiện fix các lỗi của các tính năng trong version y. Giá trị khởi tạo là 0.

Quy ước tự động:

  • Khi tăng x lên 1 đơn vị thì các giá trị y và z phải reset vể 0.
  • Tương tự khi tăng y lên một giá trị thì thực hiện reset z về 0.
  • Phiên bản đang trong quá trình phát triển sẽ được gắn suffix -SNAPSHOT.
  • Phiên bản chính thức sẽ loại bỏ suffix này.
Example

Khởi tạo version của các module và project như sau:

  • main.version: 1.0.0-SNAPSHOT => phiên bản của parent project.
  • core.version: 1.0.0-SNAPSHOT => phiên bản của module core
  • edc.version: 1.0.0-SNAPSHOT => phiên bản của module edc
  • epro.version: 1.0.0-SNAPSHOT => phiên bản của module epro

Khi thực hiện cập nhật version cho các module, đảm bảo các luật sau:

  • main.version.x = max(core.version.x, edc.version.x, epro.version.x, ...)
  • main.version.y = core.version.y + edc.version.y + epro.version.y + ...
  • main.version.z = core.version.z + edc.version.z + epro.version.z + ...
Build NumberBuild Number sẽ tự động tăng sau mỗi lần Build theo bảng số nguyên (int)