การมีส่วนร่วม
ตั้งค่า
แก้เล็ก ๆ ในจุดที่ถูกต้อง แล้วส่งเป็น pull request
ก่อนเริ่ม
ลิงก์ไปยัง ก่อนเริ่ม- เปิด issue ก่อน หรือคอมเมนต์ใน issue ที่มีอยู่แล้ว บอกว่าอยากแก้อะไรและเพราะอะไร
- รอคำตอบก่อน จะได้ไม่ต้องสร้างสิ่งที่ไม่ถูก merge
- ทำการตั้งค่าเริ่มต้นให้เสร็จ จะได้สร้างและรัน HolyArrs ได้
คำถามไปที่ Discord ไอเดียไปที่ r/HolyArrs ส่วน issue ใช้สำหรับบั๊กและโรดแมป
ส่ง pull request แรกของคุณ
ลิงก์ไปยัง ส่ง pull request แรกของคุณ-
หาโมดูลที่การแก้ของคุณควรอยู่ ชื่อในหน้าโมดูลตรงกับชื่อโฟลเดอร์ ดังนั้นถ้าการแจ้งเตือน Discord ผิด ก็แก้ใน
alerts -
แก้ใน
app/backend/internal/<module>/และapp/frontend/src/lib/<module>/ให้แก้แค่เรื่องเดียวหรือฟีเจอร์เดียว -
สร้างเว็บแอป แล้วสร้างโปรแกรม จากนั้นลองดูการแก้ในเบราว์เซอร์ ดูการตั้งค่าเริ่มต้น
-
รันการตรวจสอบในหน้าการทดสอบ
ต้องไม่เห็นความล้มเหลวใด ๆ
-
ถ้าแก้หน้าเว็บ ให้รันโปรเจกต์ end-to-end ของหน้านั้น เช่น
npm --prefix app/frontend run e2e -- --project=movies -
เปิด pull request ลิงก์ issue บอกว่าแก้อะไรและทดสอบอย่างไร และเพิ่มหรืออัปเดตเทสต์สำหรับการแก้นั้น
-
ใน pull request แรกของคุณ บอตจะขอให้เซ็นข้อตกลงใบอนุญาตผู้มีส่วนร่วม ตอบกลับด้วยประโยคเดียวที่บอตขอ
ตัวเลือก
ลิงก์ไปยัง ตัวเลือกการแก้แต่ละแบบไปที่ไหน
ลิงก์ไปยัง การแก้แต่ละแบบไปที่ไหน| การแก้ | ไปที่ |
|---|---|
| เส้นทางใหม่ | โมดูล |
| โมดูลใหม่ | โมดูล เปิด issue ก่อน |
| ฟีเจอร์ที่ยังไม่เปิดให้ใช้ | การตั้งค่าเริ่มต้น |
| การออกเวอร์ชัน | การออกเวอร์ชัน เฉพาะผู้ดูแลโปรเจกต์ |
pull request ที่ดีเป็นอย่างไร
ลิงก์ไปยัง pull request ที่ดีเป็นอย่างไร- เขียนคอมเมนต์ที่บอกว่าทำไมโค้ดถึงทำแบบนั้น ห้ามใส่เลขโรดแมป วันที่ ชื่อคน หรือ em dash ในคอมเมนต์
- อย่าแตะข้อความในแอป เว้นแต่ issue นั้นเกี่ยวกับข้อความ
- เส้นทาง API ชื่อฟิลด์ คีย์ของการตั้งค่า ชื่อตาราง และชื่อ job ที่ออกใช้งานแล้วต้องคงเดิม เพิ่มได้ ห้ามเปลี่ยนชื่อ
ถ้าไม่ทำงาน
ลิงก์ไปยัง ถ้าไม่ทำงานอาการ. การตรวจสอบโครงสร้างล้มเหลว สาเหตุ. ข้อความจะบอกชื่อไฟล์และกฎที่ผิด วิธีแก้. ย้ายโค้ด หรือส่งข้อมูลธรรมดาลงมาจากโมดูลชั้นบน ดูโมดูล
อาการ. เว็บแอปยังดูเป็นของเก่า สาเหตุ. โปรแกรมให้บริการบิลด์ที่ฝังไว้ในตัว วิธีแก้. สร้างเว็บแอปใหม่ก่อนสร้างโปรแกรม
อาการ. เทสต์ end-to-end เริ่มไม่ได้
สาเหตุ. ยังไม่ได้ติดตั้งเบราว์เซอร์สำหรับทดสอบ
วิธีแก้. รัน npx --prefix app/frontend playwright install chromium
สำหรับผู้เชี่ยวชาญ
ลิงก์ไปยัง สำหรับผู้เชี่ยวชาญกฎที่ pull request ต้องรักษา
- โมดูลคุยกับโมดูลอื่นผ่าน service (Go) หรือ
index.ts(เว็บ) เท่านั้น ห้ามผ่าน store หรือไฟล์ของมัน - SQL อยู่เฉพาะในไฟล์
store*.goของโมดูล และใช้กับตารางของโมดูลนั้นเอง - ส่วนของเว็บจะอยู่ใน
lib/uiได้ก็ต่อเมื่อมี 2 โมดูลขึ้นไปใช้ - ห้ามมี package ชื่อ
util,common,sharedหรือhelpers - ทุกการเรียกออกไปภายนอกต้องผ่าน
core/outbound
เทสต์ตรวจกฎเหล่านี้ ดังนั้น import ผิดจะทำให้บิลด์ล้มเหลว รายการเต็มและชื่อการตรวจอยู่ในโมดูล
สิ่งที่ CI รัน
| งาน | รันอะไร |
|---|---|
| Web | check, lint, test, build และชุด end-to-end |
| Go | go build, go vet และ go test -timeout 60m ./... บน amd64 และ arm64 ทั้งแบบเนทีฟและแบบจำลอง |
| Race | go test -race ./... |
| Contract | การตรวจว่าตรงกับ openapi.json การตรวจ scope ของทุกเส้นทาง ชุดทดสอบตัวดาวน์โหลด |
| Fault และ scale | รันทดสอบแครช การเขียนช้า บริการภายนอกที่มีปัญหา และหน่วยความจำ |
| Image | สร้าง development image เริ่มทำงาน และรายงานเวอร์ชันของตัวเอง |
รายละเอียดของการรันยาว ๆ อยู่ในการทดสอบ
หน้าที่เกี่ยวข้อง
ลิงก์ไปยัง หน้าที่เกี่ยวข้องHolyArrs ใช้ได้ฟรี ถ้าช่วยประหยัดเวลาคุณได้ กดดาวบน GitHub, สนับสนุนโปรเจกต์ หรือ เลี้ยงกาแฟผู้พัฒนา