💡
gumi Vietnam
  • Home
    • COMPANY POLICY
      • Company Internal Regulation
      • Overtime Register Flow
    • DEVELOPMENT POLICY
      • General
        • Digital Asset Management
        • Server Management
        • Backlog Flow
      • Git Rule
        • Branch Management
        • Committing Code
        • Release Management
          • Create Pull Request (PR)
          • Semantic Versioning
        • Git Security
        • Git Security Checklist
        • Git Flow
        • Rules of Git commit message
        • Information in commit messages
      • Coding Convention
        • HTML/CSS Basic Note
        • Google HTML/CSS Rule
        • Sass Guideline
        • JavaScript Rule
        • Vue.js Rule
          • Style Guide
          • TypeScript with Composition API
          • Nuxt and Typescript Coding Convention
            • Nuxt Coding Convention
            • Typescript Coding Convention
        • PHP Rule
          • Basic Coding Standard
          • Coding Style Guide
        • Mobile Team
          • Architecture
            • MVVM in iOS Swift
            • iOS Clean Architecture
          • Convention
            • Android
              • Kotlin Style Guide
              • Coding Convention
            • iOS
              • Swift Style Guide
    • PRIVACY POLICY AND CLIENT CONFIDENTIALITY
      • Confidentiality Policy
      • Access Production Policy
        • Rule
        • Flow
        • Problem Resolve and Penalty
Powered by GitBook
On this page
  • 1. Quy tắc đánh số phiên bản
  • 2. Lưu ý trong việc sử dụng Semantic versioning
  • 3. Tham khảo

Was this helpful?

  1. Home
  2. DEVELOPMENT POLICY
  3. Git Rule
  4. Release Management

Semantic Versioning

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

PreviousCreate Pull Request (PR)NextGit Security

Last updated 3 years ago

Was this helpful?

Đố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

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. Patch và minor 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

Semantic Versioning Homepage:

Giải thích về Semver:

https://semver.org/
https://viblo.asia/p/semantic-versioning-OeVKBN2EKkW
Semantic Versioning