Bỏ qua để đến nội dung

Đóng góp

Cài đặt

Thực hiện một thay đổi nhỏ đúng chỗ và gửi nó dưới dạng pull request.

  • Hãy mở một issue trước, hoặc bình luận vào một issue đã có. Nói rõ bạn muốn thay đổi gì và vì sao.
  • Chờ phản hồi, để bạn không làm ra thứ sẽ không được merge.
  • Hoàn tất Thiết lập để bạn build và chạy được HolyArrs.

Câu hỏi gửi lên Discord. Ý tưởng gửi lên r/HolyArrs. Issue dành cho lỗi và lộ trình.

  1. Tìm module mà thay đổi của bạn thuộc về. Tên trong Module trùng với tên thư mục, nên một cảnh báo Discord sai là thay đổi trong alerts.

  2. Thực hiện thay đổi trong app/backend/internal/<module>/ và app/frontend/src/lib/<module>/. Chỉ làm một bản sửa hoặc một tính năng.

  3. Build ứng dụng web, rồi build chương trình, và thử thay đổi trong trình duyệt. Xem Thiết lập.

  4. Chạy các bước kiểm tra trong Kiểm thử.

    Bạn sẽ không thấy lỗi nào.

  5. Nếu bạn đã thay đổi một trang, hãy chạy project end-to-end của trang đó, ví dụ npm --prefix app/frontend run e2e -- --project=movies.

  6. Mở pull request. Gắn liên kết issue, nói rõ đã thay đổi gì và đã kiểm tra ra sao, rồi thêm hoặc cập nhật các bài kiểm tra cho thay đổi đó.

  7. Ở pull request đầu tiên, một bot sẽ yêu cầu bạn ký thỏa thuận cấp phép cho người đóng góp. Hãy trả lời bằng một câu mà nó yêu cầu.

Thay đổi Đến
Một route mới Module
Một module mới Module. Hãy mở issue trước
Một tính năng chưa mở Thiết lập
Một phiên bản Phát hành. Chỉ dành cho người bảo trì

Một pull request tốt trông như thế nào

Liên kết tới Một pull request tốt trông như thế nào
  • Viết các chú thích nói rõ vì sao mã làm như vậy. Không ghi số trong lộ trình, ngày tháng, tên người hay dấu gạch ngang dài trong chú thích.
  • Đừng đụng đến câu chữ của ứng dụng trừ khi issue nói về câu chữ.
  • Giữ nguyên các đường dẫn API đã phát hành, tên trường, khóa cài đặt, tên bảng và tên tác vụ. Chỉ thêm, đừng đổi tên.

Triệu chứng. Một bước kiểm tra cấu trúc thất bại. Nguyên nhân. Thông báo nêu tên tệp và quy tắc. Cách khắc phục. Chuyển mã đi chỗ khác, hoặc truyền dữ liệu thuần từ module cao hơn xuống. Xem Module.

Triệu chứng. Ứng dụng web trông như bản cũ. Nguyên nhân. Chương trình phục vụ bản build mà nó đã nhúng sẵn. Cách khắc phục. Build lại ứng dụng web trước khi build chương trình.

Triệu chứng. Các bài kiểm tra end-to-end không khởi động được. Nguyên nhân. Trình duyệt kiểm thử chưa được cài. Cách khắc phục. Chạy npx --prefix app/frontend playwright install chromium.

Các quy tắc mà pull request phải giữ
  • Một module chỉ nói chuyện với module khác qua service của nó (Go) hoặc index.ts của nó (web). Không bao giờ qua store hay các tệp của nó.
  • SQL chỉ nằm trong các tệp store*.go của một module, trên các bảng của chính module đó.
  • Một phần giao diện web chỉ vào lib/ui khi có từ 2 module trở lên dùng nó.
  • Không có gói util, common, shared hay helpers.
  • Mọi lệnh gọi ra ngoài đều đi qua core/outbound.

Các bài kiểm tra canh chừng những quy tắc này, nên một import sai làm bản build thất bại. Danh sách đầy đủ và tên các bước kiểm tra nằm trong Module.

CI chạy những gì
Tác vụ Chạy
Web check, lint, test, build và bộ kiểm thử end-to-end
Go go build, go vet và go test -timeout 60m ./... trên amd64 và arm64, chạy thật và chạy giả lập
Race go test -race ./...
Contract Khớp với openapi.json, kiểm tra phạm vi quyền trên mọi route, bộ kiểm thử trình tải xuống
Lỗi và quy mô Các lần chạy với sự cố, ghi chậm, dịch vụ ngoài hỏng và bộ nhớ
Image Một image phát triển được build, khởi động và báo phiên bản của nó

Chi tiết về các lần chạy dài nằm trong Kiểm thử.

HolyArrs miễn phí. Nếu nó giúp bạn tiết kiệm thời gian, hãy gắn sao trên GitHub, tài trợ dự án hoặc mời tôi một ly cà phê.