Artikel

Cara Kontribusi Open Source Project (Github)

By Maksum Rifai

May 27, 2021

Mengapa Anda harus berkontribusi ke Proyek Open Source

Berkontribusi pada proyek Open Source sebenarnya cukup menyenangkan, bahkan ada banyak manfaatnya, seperti:

Belajar Dasar-dasar Git dan Github

Sebelum Anda terjun ke dunia Open Source, Anda harus belajar dasar-dasar Git dan Github, dan tidak harus menjadi Expert, namun ada beberapa Command yang memang harus Anda tahu dan pahami.

Artikel ini tidak akan membahas lebih mendalam mengenai hal tersebut, Anda bisa langsung melihat Git Cheat Sheet jika ingin mempelajarinya sendiri atau disimpan sebagai bahan contekan.

Temukanlah proyek yang menurutmu nyaman untuk berkontribusi

Di Github sangat banyak proyek Open Source mulai dari yang sederhana dan mudah maupun yang sangat sulit melebihi batas keahlian Anda, karena itu disarankan untuk mencari yang sesuai dengan minat maupun kemampuan.

Dalam artikel ini saya merekomendasikan proyek sederhana dari BekasiDev.org yang kebetulan Saya adalah Owner, Maintainer maupun Reviewer dari proyek tersebut.

https://github.com/bekasidev/bekasidev

Pedoman komunikasi

Setiap proyek pasti memiliki Pedoman-pedoman (Guidelines) tersendiri, entah itu pedoman komunikasi maupun pedoman kontribusi yang dapat Anda lihat pada file README.md atau CONTRIBUTING.md yang harus dipahami sebelum memutuskan memulai.

bekasidev/README.md

Dalam proyek BekasiDev yang tidak terlalu rumit bahkan cukup mudah, Anda hanya perlu mengubah tampilan web sederhana, menambahkan gambar profil maupun laman profil Anda sendiri, sedangkan untuk proyek lain aturan yang paling standar adalah sbb:

Berkontribusi untuk pertama kali

Setelah menentukan proyek mana yang akan Anda tuju untuk berkontribusi, hal pertama yang harus diperhatikan adalah issue yang sudah ada sebelumnya atau yang dibuat oleh orang lain, mungkin saja Anda memiliki masalah yang sama ataupun solusinya.

https://github.com/bekasidev/bekasidev/issues

Jika tidak ada issue yang ditemukan, Anda dapat membuatnya dengan meng-klik tombol “New Issue“, dan pastikan untuk memberikan informasi yang relevan seperti yang telah disebutkan pada poin pedoman komunikasi sebelumnya.

Anda dapat melewati pembuatan issue dan cukup mengirimkan permintaan penarikan (Pull Request). Ini akan mempersingkat komunikasi yang terkait dengan pembuatan dan pengiriman issue dan bisa langsung bekerja. Namun perlu diingat bahwa pengelola proyek dapat memutuskan untuk menolaknya. Jadi pekerjaan yang telah Anda lakukan mungkin tidak akan digunakan.

Jika ini adalah cara yang Anda pilih, silahkan melanjutkan ke langkah-langkah berikut yang akan mencakup proses pengiriman Pull Request. Dan kebetulan pada proyek Bekasidev Anda dapat langsung melakukannya tanpa perlu membuat issue, namun tetap akan melalui proses Code Review yang ketat dari Saya.

Lanjutkan membaca di halaman berikutnya

1.Fork Proyek Pilihan

Di Github, fork proyek yang Anda inginkan, dalam contoh ini kita menggunakan proyek bekasidev.

https://github.com/bekasidev/bekasidev/fork

Ini akan membuat salinan proyek ke akun Github Anda, dalam contoh ini adalah akun Saya.

https://github.com/MaksumRifai/bekasidev

2.Clone hasil Fork

Untuk Meng-Clone hasil Fork yang dimiliki cukup klik tombol “Code” dan ambil/copy URL-nya.

URL: https://github.com/MaksumRifai/bekasidev.git

Jangan lupa untuk meng-Clone dari akun Anda sendiri ya, jika dilangkah pertama telah meng-Fork dari bekasidev/bekasidev silahkan clone dari UsernameMilikAnda/bekasidev.

Lalu buka Terminal, Anda dapat membuat directory/folder baru maupun beralih ke folder yang sudah ada, atau buatlah folder yang sesuai dengan username bila perlu.

Lalu clone repositori yang telah Anda Fork.

Lalu beralih (cd) ke folder yang muncul setelah proses cloning tersebut, dalam contoh ini kita menggunakan repo bekasidev/bekasidev, karena itu folder yang tercipta adalah bekasidev.

3. Membuat Branch lokal

Sebelum mulai bekerja, buatlah branch atau cabang terpisah untuk menyimpan code yang anda buat maupun ubah.

4.Membuat Perubahan

Pada langkah ini Anda sudah bebas untuk melakukan perubahan apapun, dalam contoh proyek ini ubahlah gallery member, menambahkan laman profil dan foto, maupun hal-hal lain seperti yang telah disebutkan dalam pedoman.

5.Commit dan Push perubahan

Sebelum Anda Commit & Push perubahan, pastikan untuk menjalankan dan menguji kode Anda. Setelah yakin semua telah berfungsi seperti yang diinginkan, silahkan commit & push perubahan Anda ke GitHub.

6. Membuat Pull Request

Bukalah repositori hasil fork pada akun Anda, anda dapat melihat kemungkinan menjadi yang terdepan atau tertinggal dibelakang, tergantung tingkat kesulitan suatu proyek maupun jumlah kontributor yang aktif berkontribusi.

Fetch Upstream > Fetch & Merge

Gambar diatas menunjukkan bahwa Repositori Anda telah ketinggalan pembaruan berbanding repositori proyek sumber, lakukanlah Fetch Upstream sebelum melakukan perubahan untuk meminimalisir kesalahan.

Contribute > Open Pull Request

Perhatikan pesan dalam kotak biru yang menunjukkan bahwa proyek Anda lebih baru mengalami perubahan berbanding proyek asli/sumber, jadi Anda cukup klik Contribute lalu akan muncul prompt untuk Open Pull Request, tekan tombol tersebut.

Anda akan dialihkan ke laman compare, bandingkanlah dengan teliti semua perubahan antara hasil pekerjaan anda dengan proyek sumber, setelah yakin tidak ada kesalahan silahkan tekan tombol Create Pull Request.

Compare > Create Pull Request

Lalu akan muncul teks editor, buatlah pesan atau keterangan yang jelas tentang perubahan apa yang telah dilakukan atau tuliskan penjelasan lainnya yang diperlukan. Lalu klik Create Pull Request lagi.

Isilah pesan dengan jelas agar mudah dimengerti

Setelah proses ini, Anda tinggal menunggu pengelola proyek untuk memeriksa perubahan, jika tidak ada kesalahan pasti hasil pekerjaan Anda akan di-Merge ke proyek utama seperti berikut ini:

Rangkuman

Secara singkat prosedur untuk berkontribusi adalah sebagai berikut:

  1. Membaca pedoman yang ada
  2. Fork repository proyek pilihan
  3. Clone proyek ke perangkat lokal
  4. Buatlah Branch hasil pekerjaan
  5. Setelah edit, commit dan push
  6. Open dan Create Pull Request (PR)

Terima kasih sudah membaca, semoga bermanfaat, dan bersemangatlah untuk berkontribusi, gambar dibawah ini hanya sebagai pemanis. (padahal lebih lebih manis yang sedang membaca, apalagi kalau share juga 😂)

Facebook Developer Circle Open Source Challenge
SWAG Kaos & Stiker dari FaceBook HQ (USA)