# Quy trình phát triển ## Branch Strategy - Trunk-Based Development là phương pháp quản lý nhánh trong Git, nơi tất cả thay đổi được tích hợp thường xuyên vào nhánh chính (`main`), còn gọi là "trunk". - Tên nhánh trùng với tiêu chuẩn của Git Commit Message - `feat`: Tạo tính năng mới - `fix`: Sửa lỗi - `docs`: Thay đổi tài liệu - `style`: Thay đổi không ảnh hưởng đến logic - `refactor`: Refactor code - `test`: Thêm hoặc sửa test - `chore`: Thay đổi cấu hình hoặc các task không liên quan đến code ## Quy trình làm việc ### 1. Khởi tạo công việc - Tạo issue mô tả công việc cần thực hiện - Gán assignee và labels phù hợp - Ước lượng effort và deadline ### 2. Phát triển - Tạo nhánh từ `main` với quy ước đặt tên: ``` /- ``` Ví dụ: `feat/123-user-authentication` - Thực hiện thay đổi, tuân thủ coding standards - Commit thường xuyên với commit message rõ ràng ``` (): ``` Ví dụ: `feat(auth): implement JWT token validation` ### 3. Kiểm thử - Viết unit tests cho mọi thay đổi - Đảm bảo test coverage đạt yêu cầu - Chạy linting và static code analysis ### 4. Review - Tạo pull request (PR) vào nhánh `main` - Mô tả chi tiết các thay đổi - Request review từ ít nhất 1 team member - Khi được approve, resolve tất cả comments ### 5. Triển khai - Merge PR vào `main` (squash và fast-forward) - CI/CD pipeline sẽ tự động build và deploy - Theo dõi logs và metrics sau khi deploy ## Gitea Workflow ### Gitea Actions - Cấu hình trong `.gitea/workflows/` - Định nghĩa các jobs: build, test, lint, deploy - Trigger dựa trên events: push, PR, tag ### Gitea Secrets - Sử dụng Secret Manager để lưu trữ credentials - Truy cập secrets trong workflows ### Gitea Registry - Build và push Docker images - Versioning theo semantic versioning ## Conventions ### Commit Messages - Format: `(): ` - Types: feat, fix, docs, style, refactor, test, chore - Scope: module/component tương ứng - Subject: mô tả ngắn gọn, rõ ràng ### Versioning - Theo Semantic Versioning: MAJOR.MINOR.PATCH - MAJOR: breaking changes - MINOR: backwards-compatible features - PATCH: backwards-compatible bug fixes ### Release Process - Tạo tag với version mới - Cập nhật changelog - Deploy lên môi trường production