Đó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.
Trước khi bắt đầu
Liên kết tới Trước khi bắt đầu- 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.
Gửi pull request đầu tiên
Liên kết tới Gửi pull request đầu tiên-
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. -
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. -
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.
-
Chạy các bước kiểm tra trong Kiểm thử.
Bạn sẽ không thấy lỗi nào.
-
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. -
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 đó.
-
Ở 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.
Lựa chọn
Liên kết tới Lựa chọnThay đổi nên đi đâu
Liên kết tới Thay đổi nên đi đâ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.
Nếu không hoạt động
Liên kết tới Nếu không hoạt độngTriệ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.
Dành cho người dùng nâng cao
Liên kết tới Dành cho người dùng nâng caoCá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.tscủ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*.gocủ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/uikhi có từ 2 module trở lên dùng nó. - Không có gói
util,common,sharedhayhelpers. - 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ử.
Liên quan
Liên kết tới Liên quanHolyArrs 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ê.