Berkontribusi
Penyiapan
Buat satu perubahan kecil di tempat yang tepat, lalu kirim sebagai pull request.
Sebelum mulai
Tautan ke Sebelum mulai- Buka issue dulu, atau beri komentar di issue yang sudah ada. Tulis apa yang mau kamu ubah dan alasannya.
- Tunggu balasan, supaya kamu tidak membuat sesuatu yang tidak akan digabungkan.
- Selesaikan Penyiapan supaya kamu bisa membangun dan menjalankan HolyArrs.
Pertanyaan ke Discord. Ide ke r/HolyArrs. Issue untuk bug dan roadmap.
Kirim pull request pertama kamu
Tautan ke Kirim pull request pertama kamu-
Cari modul tempat perubahan kamu berada. Nama di Modul sama dengan nama folder, jadi notifikasi Discord yang salah berarti perubahan di
alerts. -
Buat perubahan di
app/backend/internal/<module>/danapp/frontend/src/lib/<module>/. Batasi pada satu perbaikan atau satu fitur. -
Bangun aplikasi web, lalu programnya, dan coba perubahan kamu di browser. Lihat Penyiapan.
-
Jalankan pemeriksaan di Pengujian.
Tidak boleh ada yang gagal.
-
Kalau kamu mengubah sebuah halaman, jalankan project end-to-end untuk halaman itu, misalnya
npm --prefix app/frontend run e2e -- --project=movies. -
Buka pull request. Tautkan issue-nya, tulis apa yang berubah dan bagaimana kamu mengujinya, lalu tambahkan atau perbarui tes untuk perubahan itu.
-
Di pull request pertama kamu, sebuah bot akan meminta kamu menandatangani perjanjian lisensi kontributor. Balas dengan satu kalimat yang diminta bot.
Pilihan
Tautan ke PilihanKe mana perubahan masuk
Tautan ke Ke mana perubahan masuk| Perubahan | Lihat |
|---|---|
| Route baru | Modul |
| Modul baru | Modul. Buka issue dulu |
| Fitur yang ditunda | Penyiapan |
| Sebuah versi | Merilis. Hanya untuk maintainer |
Pull request yang baik
Tautan ke Pull request yang baik- Tulis komentar yang menjelaskan kenapa kode melakukan hal itu. Tanpa nomor roadmap, tanggal, nama, atau em dash di komentar.
- Jangan ubah kata-kata di aplikasi kecuali issue-nya memang soal kata-kata.
- Biarkan path API yang sudah dirilis, nama field, kunci pengaturan, nama tabel, dan nama tugas tetap seperti semula. Tambahkan, jangan pernah ganti nama.
Kalau tidak berhasil
Tautan ke Kalau tidak berhasilGejala. Sebuah pemeriksaan struktur gagal. Penyebab. Pesannya menyebut file dan aturannya. Solusi. Pindahkan kodenya, atau kirim data biasa dari modul di atasnya. Lihat Modul.
Gejala. Aplikasi web terlihat lama. Penyebab. Program melayani build yang tertanam di dalamnya. Solusi. Bangun ulang aplikasi web sebelum programnya.
Gejala. Tes end-to-end tidak bisa mulai.
Penyebab. Browser untuk tes belum terpasang.
Solusi. Jalankan npx --prefix app/frontend playwright install chromium.
Untuk yang mahir
Tautan ke Untuk yang mahirAturan yang harus dijaga pull request
- Sebuah modul bicara ke modul lain hanya lewat service-nya (Go) atau
index.ts-nya (web). Tidak pernah lewat store atau file-nya. - SQL hanya ada di file
store*.gomilik modul, untuk tabel milik modul itu sendiri. - Bagian web masuk ke
lib/uihanya kalau dipakai 2 modul atau lebih. - Tidak ada package
util,common,shared, atauhelpers. - Setiap panggilan ke luar lewat
core/outbound.
Tes memeriksa aturan ini, jadi impor yang salah menggagalkan build. Daftar lengkap dan nama pemeriksaannya ada di Modul.
Yang dijalankan CI
| Tugas | Menjalankan |
|---|---|
| Web | check, lint, test, build, dan suite end-to-end |
| Go | go build, go vet, dan go test -timeout 60m ./... di amd64 dan arm64, secara native dan lewat emulasi |
| Race | go test -race ./... |
| Contract | Kecocokan openapi.json, pemeriksaan scope di setiap route, suite Downloader |
| Fault dan skala | Menjalankan crash, penulisan lambat, layanan luar yang rusak, dan memori |
| Image | Image pengembangan dibangun, dijalankan, dan melaporkan versinya |
Detail untuk proses yang panjang ada di Pengujian.
Terkait
Tautan ke TerkaitHolyArrs gratis. Kalau ini menghemat waktumu, beri bintang di GitHub, jadi sponsor atau traktir saya kopi.