Lewati ke konten

Berkontribusi

Penyiapan

Buat satu perubahan kecil di tempat yang tepat, lalu kirim sebagai pull request.

  • 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
  1. Cari modul tempat perubahan kamu berada. Nama di Modul sama dengan nama folder, jadi notifikasi Discord yang salah berarti perubahan di alerts.

  2. Buat perubahan di app/backend/internal/<module>/ dan app/frontend/src/lib/<module>/. Batasi pada satu perbaikan atau satu fitur.

  3. Bangun aplikasi web, lalu programnya, dan coba perubahan kamu di browser. Lihat Penyiapan.

  4. Jalankan pemeriksaan di Pengujian.

    Tidak boleh ada yang gagal.

  5. Kalau kamu mengubah sebuah halaman, jalankan project end-to-end untuk halaman itu, misalnya npm --prefix app/frontend run e2e -- --project=movies.

  6. Buka pull request. Tautkan issue-nya, tulis apa yang berubah dan bagaimana kamu mengujinya, lalu tambahkan atau perbarui tes untuk perubahan itu.

  7. Di pull request pertama kamu, sebuah bot akan meminta kamu menandatangani perjanjian lisensi kontributor. Balas dengan satu kalimat yang diminta bot.

Ke 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 berhasil

Gejala. 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.

Aturan 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*.go milik modul, untuk tabel milik modul itu sendiri.
  • Bagian web masuk ke lib/ui hanya kalau dipakai 2 modul atau lebih.
  • Tidak ada package util, common, shared, atau helpers.
  • 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.

HolyArrs gratis. Kalau ini menghemat waktumu, beri bintang di GitHub, jadi sponsor atau traktir saya kopi.