- Berkontribusi ke Kelas Rumah Berbagi
Dalam proyek ini, kita memaksimalkan penggunaan fitur-fitur GitHub untuk mendokumentasikan dan memberikan sinyal terhadap kemajuan apapun dalam pengerjaan website ini.
GitHub baru saja meluncurkan fitur perencanaan proyek dalam versi beta. Anda dapat membaca dokumentasi resmi GitHub terkait fitur baru ini.
Kita mencoba untuk memanfaatkan fitur baru ini dalam mengelola tugas secara lebih baik. Berikut ini cara kita menggunakannya dalam proyek ini.
Untuk menemukan status bagi setiap issues, silakan kunjungi rbagi.id/board. Berikut ini makna dari setiap kolom di papan tersebut:
Kolom | Deskripsi |
---|---|
Ready | Tugas siap untuk dikerjakan |
In Progress | Seseorang telah mulai mengerjakannya, terindikasi dengan adanya draft PR yang terhubung |
In Review | Pengelola sedang meninjau PR yang terhubung, terindikasi dengan adanya PR yang siap ditinjau |
Pending Release | Pengelola telah menyetujui PR yang terhubung, sedang menunggu lolosnya proses CI |
Done | PR telah disatukan ke cabang main dan tugas itu telah dianggap selesai |
Untuk melihat daftar utas utama yang menaungi berbagai issues yang bisa dikerjakan di sini dan memahami status keseluruhan proyek ini, silakan kunjungi rbagi.id/epic.
Sebagian besar kontribusi berawal dari membuat Issues. Tiap orang dapat memulai membuat Issues untuk diskusi. Anda dapat mengunjungi pranala ini untuk pemahaman lebih lanjut mengenai Issues. Secara spesifik, Anda dapat menemukan Issues di tab Issues ini. Hanya ada dua kategori bagian pada Issues, yakni Open dan Closed Issues.
Open Issues merupakan kategori yang membutuhkan perhatian lebih serta penyelesaian. Kontributor disarankan menelusuri bagian Open Issues dan mulai mengerjakannya.
Closed Issues merupakan kategori issue yang sudah selesai dikerjakan atau tidak membutuhkan aksi lanjutan. Issue dengan status closed dapat kembali diubah menjadi open ketika kontibutor menemukan issue yang berhubungan di masa mendatang.
Mohon perhatikan tiap atribut issue. Tiap issue kemungkinan dikerjakan oleh kontributor lain melalui Linked Pull Requests. Ini berarti issue sedang dalam penanganan. Untuk menghindari pekerjaan yang sama, kontributor sangat dianjurkan untuk mengajukan sebuah draft pull request terlebih dahulu setiap kali hendak mengerjakan suatu issue.
Seperti yang tertulis
di sini,
good first issue
merupakan sebuah fitur label dari GitHub yang diciptakan
untuk membantu para kontributor pemula dalam berkontribusi ke sebuah proyek
open-source. good first issue
memberitakan kita mengenai tingkat kesulitan
dari sebuah issue. Ini berarti, bahwa sebuah issue dengan label
good first issue
cocok sekali bagi kontributor pemula yang ingin melakukan
kontribusi pertama mereka ke sebuah proyek open-source.
Bagaimana cara mencari issue dengan label good first issue
:
- Cara paling mudah adalah dengan mengunjungi pranala
github.com/<owner>/<repository>/contribute
. Dalam hal ini, Anda dapat mengunjungi pranala ini. Pranala tersebut akan memberikan daftar dari semua issue dengan labelgood first issue
. - Atau cara lainnya adalah dengan mengunjungi bagian Issues
dari sebuah repository, lalu klik bagian Labels di sebelah Milestones. Di
sana, Anda dapat melihat banyak label untuk issues yang terdapat dalam
repository tersebut. Lalu cari dan klik label
good first issue
.
Sebelum mengerjakan sebuah issue, pastikan hal-hal berikut:
- Fork repositorynya dengan benar. Meskipun Anda sudah pernah melakukannya, kami masih menyarankan untuk membaca manual resminya.
- Clone forked repository Anda dan ikuti Getting Started guide.
- Periksa di pull requests dan tidak ada orang lain yang sedang mengerjakan issue tersebut.
- Buat branch baru dari
main
.
Saat Anda sudah siap dengan branch dan memiliki sesuatu untuk berkontribusi, Anda perlu untuk memberitahu orang-orang bahwa Anda sedang mengerjakan issue tersebut. Untuk mengkomunikasikan hal ini, kami menggunakan Draft Pull Requests dari GitHub.
Draft Pull Request merupakan pull request biasa, namun ia tidak dapat digabungkan ke branch utama sampai statusnya diubah menjadi "ready for review". Draft Pull Request menandakan bahwa pull request ini masih sedang dalam pengerjaan. Hal ini diperlukan untuk memberikan sinyal kepada kontributor lainnya bahwa pekerjaan dalam menyelesaikan issue tersebut sudah dimulai dan masih dikerjakan. Membuat Draft Pull Request juga merupakan cara yang lebih baik sebagai media komunikasi antar kontributor karena informasi tambahan bisa disediakan di sana, selain melihat perubahan file-file.
Dengan demikian, ketika Anda memiliki setidaknya 1 commit, sangat penting bagi Anda untuk membuat suatu Draft Pull Request untuk mengumumkan kepada orang-orang bahwa issue itu sedang Anda kerjakan.
Langkah-langkah untuk membuat Draft Pull Request:
-
Commit dan push perubahan terbaru ke forked repository Anda. Mohon merujuk ke @commitlint/config-conventional untuk membuat pesan commit atau Anda dapat menggunakan commitlint.io untuk membantu Anda membuat pesan commit.
-
Pergi ke bagian Pull requests pada forked repository Anda, dan klik New pull request.
-
Pilih forked repository Anda sebagai head repository, dan pilih branch tempat Anda membuat perubahan untuk bagian compare.
-
Berikan judul dan deskripsi yang jelas mengenai pull request Anda. Pastikan Anda mengikuti pengisian deskripsi seperti keterangan di bawah.
-
Pilih Create draft pull request (seperti pada gambar di atas) dan klik tombol berwarna hijau.
-
Jangan lupa untuk menandai Draft Pull Request Anda sebagai Ready for review ketika Anda sudah melakukan semua perubahan yang diinginkan.
Agar pull request dapat berkaitan dengan issue, ada 1 syarat teks yang harus
dimasukkan ke dalam deskripsinya. Harap pastikan Anda menyebutkan nomor issue
yang Anda kerjakan dengan benar. Ubah teks
<!-- mention the issue that you're trying to close with this PR -->
yang
disediakan dari template menjadi nomor issue. Contoh:
Closes #318
## Description
Update **`Start working on Issues`** section with clearer instructions on
getting ready to work on an issue.
Kami menganjurkan untuk menonaktifkan GitHub Action pada repository yang telah di-forked
Ada beberapa alasan mengapa kita menggunakan bahasa Inggris ketika berkomunikasi di dalam issue dan pull request:
- Secara alamiah, lebih mudah untuk software engineer berkomunikasi dalam bahasa Inggris, karena terminologi-terminologi teknis yang digunakan dalam pemrograman pun berbahasa Inggris. Menerjemahkannya ke Bahasa Indonesia memunculkan resiko miskomunikasi, sementara menggunakan Bahasa Inggris membutuhkan banyak penyesuaian penulisan dalam bentuk italic mengacu pada PUEBI.
- Membiasakan para kontributor yang mayoritas berasal dari Indonesia untuk berkomunikasi dengan bahasa Inggris. Sangat penting untuk mengasah kemampuan menulis dan membaca bahasa Inggris kita karena sebagian besar dari komunitas open-source di seluruh dunia menggunakan bahasa Inggris sebagai bahasa utama mereka.
- Menggunakan bahasa Inggris membuat proyek ini lebih mudah diakui secara global. Apabila kita ingin mendapatkan dukungan dari komunitas global, mereka lebih mudah memahami tujuan kita, sehingga mereka lebih mudah untuk meluangkan waktu dan keahlian mereka untuk membantu membuat proyek ini lebih baik. Contohnya menyediakan free credits untuk layanan mereka, mengadvokasikan proyek ini kepada pemimpin dunia, atau berkontribusi langsung ke proyek kita.
Pada repository dengan kontributor yang banyak seperti ini, memahami apa yang terjadi di dalamnya dan dapat menyelusuri di antara commits adalah hal yang sangat penting. Terlebih lagi dengan berbagai macam tingkat dan latar belakang, pesan commit bisa membingungkan dan strukturnya bisa mengikuti pendekatan yang berbeda.
Untuk menangani hal ini, pengurus mengadopsi commit conventions agar para kontributor dapat menambahkan makna yang berkaitan (semantic) pada git history. Kita menggunakan commitlint untuk me-lint pesan-pesan commit. Dalam menggalakkan konvensi ini, kita menggunakan git hook untuk menjalankan commitlint pada saat git commit. Konfigurasi ini mencegah proses commit jika pesannya tidak memenuhi konvensi itu.
Anda disarankan untuk membaca sekilas commit conventions supaya mengetahui lebih lanjut manfaat-manfaatnya. Jika Anda memiliki kendala apapun dengan konvensi ini, Anda bisa menggunakan situs ini untuk membantu.
Harap merujuk kepada daftar commit types dan scopes yang kita pakai untuk menghindari penambahan scope baru yang bermakna serupa atau yang merupakan sinonim dari scope yang sudah dipakai.
Spesifikasi konvensi seperti ini:
<type>[optional scope]: <description>
[optional body]
[optional footer(s)]
Ini adalah commit types yang kita pakai:
build
chore
docs
feat
fix
perf
refactor
style
test
Ini adalah commit scopes yang kita pakai:
assets
ci
cms
components
donasi
education
home
json-ld
kontak-darurat
layout
telemedicine
cypress
deps
dx
e2e
fetcher
pages
faq
isoman
security
seo
ui
Catatan: Jika ada scope terdaftar di level kedua, cukup gunakan level terendah (yang kedua tersebut).
Issue labels adalah fitur untuk mengelompokkan beberapa issues ke dalam satu atau banyak kategori berbeda. Hal ini memudahkan kita untuk memantau serta mengelola issues dan pull requests yang ada pada repository Kelas Rumah Berbagi.
Jika Anda memiliki ide atau saran untuk penambahan label baru yang belum ada di repository, mohon untuk membuka issue di GitHub repository ini.
Nama label | Pranala | Deskripsi |
---|---|---|
blocked |
cari | Issues yang terhalang oleh issue lainnya. |
bug |
cari | Laporan mengenai adanya bug atau kesalahan pada website. |
enhancement |
cari | Permintaan untuk penambahan fitur baru. |
epic |
cari | Utas utama dari issue yang didalamnya terdiri dari beberapa issues yang lebih sederhana. |
good first issue |
cari | Issues yang sederhana. Cocok untuk para pemula untuk mulai berkontribusi ke repository Kelas Rumah Berbagi. |
help wanted |
cari | Issues yang membutuhkan perhatian lebih dan prioritas. |
invalid |
cari | Issues yang tidak valid. |
question |
cari | Membutuhkan informasi tambahan terkait permasalahan yang ada atau terkait permintaan fitur baru. |
wontfix |
cari | Tim Kelas Rumah Berbagi tidak akan mengerjakan issue tersebut untuk saat ini. |
Nama Label | Pranala | Deskripsi |
---|---|---|
ci-cd |
cari | Continuous Integration & Continuous Delivery. |
design |
cari | Issues yang berkaitan dengan desain. |
documentation |
cari | Perbaikan serta penambahan informasi pada dokumentasi. |
dx |
cari | Issues terkait pengalaman developer dalam melakukan pengembangan. |
ui |
cari | Issues terkait tampilan antar muka pengguna. |
ux |
cari | Issues terkait pengalam pengguna dalam menggunakan website. |
seo |
cari | Search engine optimization. |
scripting |
cari | Issues terkait kode. |
testing |
cari | Automated testing. |