Quy trình từ cài đặt đến Pull Request
Trang này giải thích quy trình từ cài đặt môi trường đến tạo Pull Request.
Cài đặt môi trường
Fork repository trên GitHub, sau đó clone repository đã fork về máy. (Nếu bạn có quyền commit trực tiếp thì không cần fork.)
shell# Người dùng thông thườnggit clone git@github.com:your-account/survival-typescript-vietnamese.git# Người có quyền commitgit clone git@github.com:LeHoangTuanbk/survival-typescript-vietnamese.git
shell# Người dùng thông thườnggit clone git@github.com:your-account/survival-typescript-vietnamese.git# Người có quyền commitgit clone git@github.com:LeHoangTuanbk/survival-typescript-vietnamese.git
Cài đặt các công cụ cần thiết:
shellyarn
shellyarn
Khởi động dev server:
shellyarn start
shellyarn start
Việc khởi động dev server mất khá nhiều thời gian. Hãy đợi và không dừng process.
Sau khi dev server khởi động, mở http://localhost:3000 trong trình duyệt.
Tạo branch
Tạo branch mới:
bashgit checkout -b ten-branch
bashgit checkout -b ten-branch
Không thể push trực tiếp vào branch master. Vì vậy cần thực hiện thay đổi trên branch riêng.
Tạo nội dung
Thêm trang mới
Thêm file Markdown mới vào thư mục docs:
shellmkdir -p docs/category/subcategorytouch docs/category/subcategory/new-page.md
shellmkdir -p docs/category/subcategorytouch docs/category/subcategory/new-page.md
Thêm đường dẫn trang mới vào sidebars.js. Đường dẫn không bao gồm extension .md.
sidebars.jsjsmodule.exports = {// ...tutorialSidebar: [{type: "category",label: "Category",items: [{type: "category",label: "Subcategory",items: [// highlight-next-line"category/subcategory/new-page",],},],},],};
sidebars.jsjsmodule.exports = {// ...tutorialSidebar: [{type: "category",label: "Category",items: [{type: "category",label: "Subcategory",items: [// highlight-next-line"category/subcategory/new-page",],},],},],};
Sau khi hoàn thành, bắt đầu chỉnh sửa file đã tạo.
Chỉnh sửa trang có sẵn
Tìm file cần chỉnh sửa trong thư mục docs và chỉnh sửa.
Di chuyển trang có sẵn
- Di chuyển file hoặc đổi tên file.
- Cập nhật đường dẫn trong
sidebars.js. - Thêm cấu hình redirect từ URL cũ sang URL mới trong
vercel.json. - Chạy
yarn buildđể kiểm tra link hỏng.
Ví dụ, nếu di chuyển docs/tutorials/setup.md sang docs/getting-started/setup.md, sửa "tutorials/setup" thành "getting-started/setup" trong sidebars.js, và thêm cấu hình sau vào redirects trong vercel.json:
vercel.jsonjson{ "source": "/tutorials/setup", "destination": "/getting-started/setup" }
vercel.jsonjson{ "source": "/tutorials/setup", "destination": "/getting-started/setup" }
Sau các thay đổi, chạy yarn build để kiểm tra link hỏng.
Những điều cần biết khi chỉnh sửa nội dung
📄️ Chỉnh sửa bằng VS Code
VS Code là editor được khuyến nghị để chỉnh sửa file Markdown.
📄️ Markdown
Markdown ngoài cú pháp tiêu chuẩn còn có các specification được mở rộng riêng cho project này.
📄️ Cấu trúc file
Trang này giải thích cấu trúc thư mục và các file trong repository.
Commit
Sau khi chỉnh sửa, commit các thay đổi:
shellgit add docs/category/subcategory/new-page.mdgit commit -m "Thêm trang mới"
shellgit add docs/category/subcategory/new-page.mdgit commit -m "Thêm trang mới"
Ví dụ commit message:
- Thêm trang "Type annotation"
- Thêm sample code vào trang "Function"
- Sửa lỗi chính tả
Kiểm tra nội dung
Kiểm tra code style
Sử dụng Prettier và markdownlint để sửa style Markdown và TypeScript trong code block:
shellyarn markdownlint:fixyarn prettier:fix
shellyarn markdownlint:fixyarn prettier:fix
Với code block không muốn auto format bởi Prettier, thêm <!--prettier-ignore--> phía trước.
markdown<!--prettier-ignore-->```tstype Code =| 1| 2| 3;```
markdown<!--prettier-ignore-->```tstype Code =| 1| 2| 3;```
Chi tiết về các lỗi markdownlint xem tại tài liệu markdownlint.
Commit kết quả kiểm tra
Xác nhận kết quả auto fix bằng diff:
shellgit diff
shellgit diff
Để hoàn tác các thay đổi từ auto fix, dùng git checkout.
Nếu không có vấn đề với nội dung auto fix, commit:
shellgit add docs/category/subcategory/new-page.mdgit commit --amend # Gộp vào commit trước đó
shellgit add docs/category/subcategory/new-page.mdgit commit --amend # Gộp vào commit trước đó
Gửi Pull Request
Trước khi gửi Pull Request, hãy cố gắng gộp các commit thành 1.
Push các thay đổi:
shellgit push -u origin ten-branch
shellgit push -u origin ten-branch
Khi tạo Pull Request, sử dụng chức năng liên kết issue bằng keyword của GitHub để liên kết issue tương ứng. Điều này có 2 mục đích: một là để theo dõi lịch sử của PR, hai là để tự động close issue khi PR được merge. Ví dụ, với PR giải quyết issue #123, viết keyword sau trong nội dung:
markdownClose #123
markdownClose #123
Đây là bước cần thiết trong quy trình làm việc.
📄️ Quy trình làm việc (Thảo luận trước khi tạo PR)
Quy trình làm việc - thảo luận trước khi tạo Pull Request.
Khi PR được tạo, CI sẽ chạy để kiểm tra code style. Nếu CI pass, maintainer sẽ merge. Nếu bạn có quyền merge, có thể tự merge sau khi kiểm tra kết quả CI.