🚀 Capstone: hoàn tất blog, merge PR và release v1.0

Bạn đã có đủ mảnh ghép: branch, merge, rebase, tag, và cách mở PR sao cho người review không phải rê chuột quá lâu. Giờ là lúc chạy trọn một vòng đời thật, từ lúc mở issue đến lúc có release v1.0.0 trên trang Releases của repo blog.

Đây là vòng lặp bạn sẽ chạy hàng trăm lần trong sự nghiệp. Làm đúng một lần cho chậm, sau đó nó thành phản xạ.

Ôn nhanh

Bài trước chốt ba thói quen: issue rõ ràng là hợp đồng, PR nhỏ là cách tôn trọng thời gian người review, và comment review có nhãn (blocking, nit, question). Capstone này dùng cả ba, cộng thêm bước cuối cùng mà nhiều người bỏ qua: ==tag và release==.

1. Đề bài capstone

Repo blog của bạn đã có main được bảo vệ. Issue #12 đang mở: "Trang danh sách bài viết chưa có phân trang, cuộn mãi mới hết".

Nhiệm vụ của bạn: biến issue đó thành một release v1.0.0 thật, đi qua đủ các trạm:

flowchart LR
    Issue["📋<br/>Issue #12"] --> Branch["🌿<br/>Nhánh feature"]
    Branch --> PR["🔀<br/>Pull request"]
    PR --> Review["👀<br/>Review"]
    Review --> Merge["✅<br/>Merge vào main"]
    Merge --> Tag["🏷️<br/>Tag v1.0.0"]
    Tag --> Release["🚀<br/>GitHub Release"]

Vì sao quan trọng: một PR merge xong chưa phải là xong việc. Người dùng cuối chỉ thấy thứ bạn release, không thấy commit của bạn. Release là lúc bạn nói với thế giới: phiên bản này đã sẵn sàng, và đây là những gì thay đổi.

2. Yêu cầu / spec

Hạng mục Yêu cầu
Nhánh feature/post-list-pagination, tách từ main mới nhất
Phạm vi PR Một mục đích duy nhất, khoảng 200 đến 300 dòng diff
Commit 3 đến 5 commit nhỏ, message theo dạng feat(blog): ...
PR Có Closes #12 trong mô tả, tự review trước khi gắn reviewer
Review Ít nhất 1 comment có nhãn, và xử lý xong trước khi merge
Merge Squash merge để main giữ lịch sử gọn
Tag v1.0.0, annotated tag, tạo trên main sau khi merge
Release Tạo từ tag, có release notes ngắn gọn

3. Các milestone

This lesson is part of the paid section. Sign in and purchase the course to view the full content. Sign in