Skip to content

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

Các bước trong quá trình phát triển

  • Bước 1: Lên kế hoạch phát triển
  • 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

Xử lý một issue trên underthesea

Các bước thực hiện:

  1. Cập nhật code từ nhánh upstream/master (1: git fetch upstream, 2: git checkout upstream/master)
  2. Tạo một nhánh mới tương ứng với Issue. Ví dụ: GH-163
  • git checkout -B GH-163
  1. Thực hiện code trên nhánh này
  2. 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"
  1. Cập nhật lên git bằng git push origin GH-163
  2. Gửi một pull request đến nhánh release
  3. Chờ xem có pass test trên travis-CI
  4. Cập nhật path version
  5. Cập nhật lên git bằng git push origin GH-163
  6. Chờ xem có pass test trên travis-CI
  7. 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.

Quản lý phiên bản

Nhánh release-x.y.z

  1. 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
  2. Các tính năng sẽ được phát triển, sau đó merge vào nhánh này
  3. 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
  4. 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

Cách đặt tên commit

  • Đặ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

Cách đặt tên branch

  • Tên branch để phát hành có dạng release-[VERSION]
    • ví dụ: release-1.1.9

Tài liệu tham khảo

Phụ lục: Lịch sử chỉnh sửa

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