Semantic Versioning

Quản lý đánh số phiên bản release có ngữ nghĩa

Đối với các release branches, chúng ta sử dụng Semantic branching model (Roberto Di Remigio & Radovan Bast) để đăt tên version của release khi triển khai ứng dụng

Semantic Versioning

1. Quy tắc đánh số phiên bản

Quy tắc này dựa trên 3 con số chính MAJOR, MINOR, PATCH. Nó tương ứng với 3 con số trong việc định nghĩa version của 1 API hoặc 1 application.

  • MAJOR: Đại diện cho việc thay đổi lớn, không tương thích với bản cũ.

  • PATCH: Đại diện cho những thay đổi nhỏ, vẫn tương thích với bản cũ, thường thay đổi sẽ là update gì đó.

  • MINOR: Đai diện cho những thay đổi nhỏ, vẫn tương thích với bản cũ, nó sẽ khác với PATCH là thay vì update một cái gì đó sẽ thành create một cái gì đó.

2. Lưu ý trong việc sử dụng Semantic versioning

2.1 Một version định nghĩa đúng phải bao gồm 3 số X.Y.Z tương ứng với MAJOR, PATCH, MINOR. Mỗi phần tử phải tăng dần 1.9.0 -> 1.10.0 -> 1.11.0. Những con số này phải là số nguyên dương và không có số 0 đằng trước.

// Good
1.1.1
1.0.0

// Bad
1.01.01
1.-1.-1.
1.00.00

2.2 Khi một package đã được release. Không được phép tiến hành thay đổi nội dung trong version đó, mà phải release ở một version khác. Dù sự thay đổi là nhỏ nhất.

2.3 Major version zero(0.y.z) dành cho việc phát triển. Đây không được coi là một bản ổn định cho việc sử dụng.

2.4 Version 1.0.0 định nghĩa cho việc release lần đầu tiên. Việc quyết định X, Y, Z sẽ tăng lên trong những lần release tiếp theo phụ thuộc vào các hoàn cảnh khác nhau.

2.5 Patch version Z (x.y.Z | x > 0) phải được tăng lên cho mỗi lần sửa lỗi.

2.6 Minor version Y (x.Y.z | x > 0) phải được tăng lên nếu có gì đó mới, mà tương thích với bản cũ. Nó cũng phải được tăng lên nếu một chức năng nào đó trong API không dùng đến. Nó có thể được tăng nên nếu có cải tiến trong code. Patch version phải reset về 0 nếu Minor version tăng lên.

2.7 Major version X (X.y.z | X > 0) phải được tăng lên nếu có sự thay đổi lớn, không tương thích với bản cũ. Nó có thể bao gồm cả sự thay đổi của Y, Z. Patchminor phải được reset về 0 nếu X được tăng lên.

2.8 Các bản pre-release có thể biểu diễn thêm bằng cách thêm kí tự gạch ngang (-) đi kèm với kí tự ASCII. Bản pre-release báo hiệu rằng đây không phải là một version hoàn chỉnh. Ví dụ như 1.0.0-alpha, 1.0.0-alpha.1, 1.0.0-0.3.7, 1.0.0-x.7.z.92, 1.0.0-x-y-z.–.

3. Tham khảo

Last updated

Was this helpful?