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.
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.
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.
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.
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.
Ini akan membuat salinan proyek ke akun Github Anda, dalam contoh ini adalah akun Saya.
2.Clone hasil Fork
Untuk Meng-Clone hasil Fork yang dimiliki cukup klik tombol “Code” dan ambil/copy URL-nya.
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.
Gambar diatas menunjukkan bahwa Repositori Anda telah ketinggalan pembaruan berbanding repositori proyek sumber, lakukanlah Fetch Upstream sebelum melakukan perubahan untuk meminimalisir kesalahan.
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.
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.
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:
- Membaca pedoman yang ada
- Fork repository proyek pilihan
- Clone proyek ke perangkat lokal
- Buatlah Branch hasil pekerjaan
- Setelah edit, commit dan push
- 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 😂)