Cara Kontribusi Open Source Project (Github)

Mengapa Anda harus berkontribusi ke Proyek Open Source

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

  • Terbiasa menggunakan Git
  • Memperoleh pengalaman
  • Mendapatkan perhatian dari pekerja maupun perekrut
  • Terhubung dengan banyak developer dalam komunitas

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:

  • git init
  • git clone
  • git checkout -b
  • git branch
  • git add
  • git commit -m
  • git merge
  • git push
  • git pull

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.

Temukan 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:

  • Saat Anda membuka sebuah issue, pastikan untuk mendeskripsikan bug atau masalah yang ditemui secara menyeluruh. Sertakan informasi yang akan membantu pengelola atau orang lain untuk memperbaikinya secara lokal.
  • Bagus juga jika Anda memberikan solusi yang mungkin telah difikirkan. Ini merampingkan komunikasi dan akan membantu pengelola untuk dengan cepat menentukan apakah kemungkinan kontribusi Anda sesuai dengan arah proyek atau tidak.
  • Coba sertakan komentar dalam kode Anda. Orang lain yang mengerjakan proyek mungkin tidak terbiasa dengan gaya pengkodean Anda atau cara Anda berpikir. Menyertakan komentar penjelasan dalam kode akan membuat logika Anda jelas dan dengan demikian, orang lain akan dapat dengan cepat memahami cara kerja kode Anda.

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.

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.

cd <nama_folder>
Contoh beralih (cd) ke Folder maksumrifai

Lalu clone repositori yang telah Anda Fork.

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

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.

cd bekasidev

3. Membuat Branch lokal

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

git checkout -b <nama-branch>

4.Membuat Perubahan

Pada langkah ini Anda sudah bebas untuk melakukan perubahan apapun, dalam contoh proyek ini Anda dapat mengubah 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.

git add .
git commit -m 'tulis pesan Anda disini' 
git push -u origin head

6. Membuat Pull Request

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

Fetch Upstream > Fetch & Merge

Gambar diatas menunjukkan bahwa Repositori Anda telah ketinggalan pembaruan berbanding repositori proyek sumber, ini tandanya Anda kalah cepat dari kontributor lainnya, Anda dapat melakukan 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 untuk membandingkan 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 dimana Anda dapat memberikan pesan atau keterangan yang jelas tentang perubahan apa yang telah dilakukan atau 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 makin bersemangat 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)

Tinggalkan Balasan