Skip to content

Latest commit

 

History

History
370 lines (290 loc) · 19 KB

CONTRIBUTING_ID.md

File metadata and controls

370 lines (290 loc) · 19 KB

Berkontribusi ke Kelas Rumah Berbagi

Cara berkontribusi

Dalam proyek ini, kita memaksimalkan penggunaan fitur-fitur GitHub untuk mendokumentasikan dan memberikan sinyal terhadap kemajuan apapun dalam pengerjaan website ini.

Memahami GitHub Projects

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.

Papan issues

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

Daftar epics

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.

Menemukan atau membuat issues

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

Open Issues merupakan kategori yang membutuhkan perhatian lebih serta penyelesaian. Kontributor disarankan menelusuri bagian Open Issues dan mulai mengerjakannya.

Closed Issues

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.

Untuk Pemula: label good first 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:

  1. 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 label good first issue.
  2. 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.

Panduan bekerja

Persiapan

Sebelum mengerjakan sebuah issue, pastikan hal-hal berikut:

  1. Fork repositorynya dengan benar. Meskipun Anda sudah pernah melakukannya, kami masih menyarankan untuk membaca manual resminya.
  2. Clone forked repository Anda dan ikuti Getting Started guide.
  3. Periksa di pull requests dan tidak ada orang lain yang sedang mengerjakan issue tersebut.
  4. Buat branch baru dari main.

Penugasan issue & komunikasi

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.

Pembuatan Draft Pull Request

Langkah-langkah untuk membuat Draft Pull Request:

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

  2. Pergi ke bagian Pull requests pada forked repository Anda, dan klik New pull request.

    Petunjuk-1

  3. Pilih forked repository Anda sebagai head repository, dan pilih branch tempat Anda membuat perubahan untuk bagian compare.

    Petunjuk-2

  4. Berikan judul dan deskripsi yang jelas mengenai pull request Anda. Pastikan Anda mengikuti pengisian deskripsi seperti keterangan di bawah.

    Petunjuk-3

  5. Pilih Create draft pull request (seperti pada gambar di atas) dan klik tombol berwarna hijau.

  6. Jangan lupa untuk menandai Draft Pull Request Anda sebagai Ready for review ketika Anda sudah melakukan semua perubahan yang diinginkan.

Pemberian deskripsi pull request

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.

Menonaktifkan GitHub Actions

Kami menganjurkan untuk menonaktifkan GitHub Action pada repository yang telah di-forked

  1. Masuk ke Setting pada repository yang telah di-forked
  2. Pilih Action pada sidebar
  3. Disable Actions Disable-actions

Pertanyaan yang sering ditanyakan

Mengapa kita menggunakan bahasa Inggris dalam menulis issue dan pull request?

Ada beberapa alasan mengapa kita menggunakan bahasa Inggris ketika berkomunikasi di dalam issue dan pull request:

  1. 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.
  2. 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.
  3. 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.

Catatan Tambahan

Commitlint

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.

Referensi

Conventional Commits

Spesifikasi konvensi seperti ini:

<type>[optional scope]: <description>

[optional body]

[optional footer(s)]

Commit types

Ini adalah commit types yang kita pakai:

  • build
  • chore
  • docs
  • feat
  • fix
  • perf
  • refactor
  • style
  • test

Commit scopes

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

Label pada issue dan pull request

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.

Tipe Issue and Issue State

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.

Kategori

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.