ข้ามไปยังเนื้อหา

การมีส่วนร่วม

ตั้งค่า

แก้เล็ก ๆ ในจุดที่ถูกต้อง แล้วส่งเป็น pull request

  • เปิด issue ก่อน หรือคอมเมนต์ใน issue ที่มีอยู่แล้ว บอกว่าอยากแก้อะไรและเพราะอะไร
  • รอคำตอบก่อน จะได้ไม่ต้องสร้างสิ่งที่ไม่ถูก merge
  • ทำการตั้งค่าเริ่มต้นให้เสร็จ จะได้สร้างและรัน HolyArrs ได้

คำถามไปที่ Discord ไอเดียไปที่ r/HolyArrs ส่วน issue ใช้สำหรับบั๊กและโรดแมป

  1. หาโมดูลที่การแก้ของคุณควรอยู่ ชื่อในหน้าโมดูลตรงกับชื่อโฟลเดอร์ ดังนั้นถ้าการแจ้งเตือน Discord ผิด ก็แก้ใน alerts

  2. แก้ใน app/backend/internal/<module>/ และ app/frontend/src/lib/<module>/ ให้แก้แค่เรื่องเดียวหรือฟีเจอร์เดียว

  3. สร้างเว็บแอป แล้วสร้างโปรแกรม จากนั้นลองดูการแก้ในเบราว์เซอร์ ดูการตั้งค่าเริ่มต้น

  4. รันการตรวจสอบในหน้าการทดสอบ

    ต้องไม่เห็นความล้มเหลวใด ๆ

  5. ถ้าแก้หน้าเว็บ ให้รันโปรเจกต์ end-to-end ของหน้านั้น เช่น npm --prefix app/frontend run e2e -- --project=movies

  6. เปิด pull request ลิงก์ issue บอกว่าแก้อะไรและทดสอบอย่างไร และเพิ่มหรืออัปเดตเทสต์สำหรับการแก้นั้น

  7. ใน pull request แรกของคุณ บอตจะขอให้เซ็นข้อตกลงใบอนุญาตผู้มีส่วนร่วม ตอบกลับด้วยประโยคเดียวที่บอตขอ

การแก้แต่ละแบบไปที่ไหน

ลิงก์ไปยัง การแก้แต่ละแบบไปที่ไหน
การแก้ ไปที่
เส้นทางใหม่ โมดูล
โมดูลใหม่ โมดูล เปิด issue ก่อน
ฟีเจอร์ที่ยังไม่เปิดให้ใช้ การตั้งค่าเริ่มต้น
การออกเวอร์ชัน การออกเวอร์ชัน เฉพาะผู้ดูแลโปรเจกต์
  • เขียนคอมเมนต์ที่บอกว่าทำไมโค้ดถึงทำแบบนั้น ห้ามใส่เลขโรดแมป วันที่ ชื่อคน หรือ 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, สนับสนุนโปรเจกต์ หรือ เลี้ยงกาแฟผู้พัฒนา