-
-
Notifications
You must be signed in to change notification settings - Fork 273
Quy trình phát triển
Vu Anh edited this page May 20, 2019
·
40 revisions
Tài liệu mô tả quy trình phát triển thêm các tính năng, xử lý các bug và phát hành phiên bản mới của nhóm underthesea
Quy tắc 1: Mục tiêu phát triển là phát hành các phiên bản chính với các tính năng ổn định, hữu ích
-
Major version
(phiên bản chính) - Phiên bản với các API ổn định -
Minor version
(phiên bản phụ) - Phiên bản với các sự thay đổi nhỏ của các API -
Patch version
(phiên bản patch) - Phiên bản gồm việc sửa lỗi hoặc phát triển các tính năng nhỏ, không có sự thay đổi của các API
Quy tắc 2: Sử dụng git/github cho toàn bộ quá trình quản lý và phát triển
-
Branch
: Cho việc quản lý luồng phát triển -
Issue
: Cho việc mô tả lỗi, log lịch sử, quản lý kế hoạch phát triển -
Release
: Cho việc thông báo và mô tả các phiên bản
Mục lục
- Bước 1: Lên kế hoạch phát triển
- Tạo Major Issue, đây là issue ứng với major version
- Ví dụ: LanguageFlow v1.2.0, Underthesea 2.0
- Bước 2: Thêm tính năng mới
- Tạo các issue ứng với các tính năng, bug
- Thêm các issue này vào các phiên bản phụ (minor version) trong Major Issue
- Xử lý các issue
- Merge vào các minor version
- Chú ý merge theo kiểu rebase
- Bước 3: Phát hành rc version cho minor version
- Bước 4: Phát hành minor version (sau rc version khoảng 7 ngày)
- Bước 5: Phát hành rc version cho major version
- Bước 6: Phát hành phiên bản major version
Các bước thực hiện:
- Cập nhật code từ nhánh upstream/master (1: git fetch upstream, 2: git checkout upstream/master)
- Tạo một nhánh mới tương ứng với Issue. Ví dụ:
GH-163
git checkout -B GH-163
- Thực hiện code trên nhánh này
- Commit với prefix của issue tương ứng: Ví dụ:
GH-163: add sent_tokenize function
git commit -m "GH-163: add sent_tokenize function"
- Cập nhật lên git bằng
git push origin GH-163
- Gửi một
pull request
đến nhánh release - Chờ xem có pass test trên travis-CI
- Cập nhật path version
- Cập nhật lên git bằng
git push origin GH-163
- Chờ xem có pass test trên travis-CI
- Merge pull request.
Sau khoảng 20 phút, phiên bản của underthesea sẽ được cập nhật với tính năng mới.
- Từ nhánh master, tạo một nhánh release-x.y.z ứng với phiên bản đang phát triển
- Các tính năng sẽ được phát triển, sau đó merge vào nhánh này
- Tạo phiên bản rc
- Bump version của phiên bản thành x.y.z-rc, sau đó merge vào nhánh master để phát hành phiên bản rc
- Tạo phiên bản chính
- Bump version của phiên bản thành x.y.z, sau đó merge vào nhánh master để phát hành phiên bản chính
- Đặt tên commit với prefix
GH-[ISSUE_NUMBER]: nội dung
trỏ đến issue tương ứng- ví dụ:
GH-206: fix flake8
- ví dụ:
- Tên branch để phát hành có dạng
release-[VERSION]
- ví dụ:
release-1.1.9
- ví dụ:
- Dự án Flair - Dự án này có rất nhiều điểm rất hay để học hỏi, như cách thêm issue id vào commit message, pinned issue cho kế hoạch phát triển từng phiên bản
- Dự án allennlp - Học hỏi từ dự án này cách quản lý phiên bản
- What is the master branch and release branch for? - Ý nghĩa và sự khác nhau của master và release branch
- Semantic Versioning 2.0.0 - Cách đánh số các phiên bản
Người viết | Vũ Anh |
---|---|
Phiên bản | 1.1.0 |
Cập nhật lần cuối | 24/04/2019 |
Phiên bản | Ngày cập nhật | Nội dung |
---|---|---|
1.1.0 | 24/04/2019 | - Gộp các tài liệu vào một văn bản duy nhất |
1.0.0 | 13/01/2019 |