Membuat Kontribusi Open Source Pertamamu, Bagian 1: Menemukan Proyek, Isu, dan Program Mentorship

Bagaimana kamu bisa mulai berkontribusi ke open source? Artikel ini akan membahas tentang langkah-langkah yang dapat kamu lakukan untuk memberikan kontribusi pertamamu, mulai dari mencari proyek untuk dikerjakan hingga program mentoring yang dapat membantu. Ini adalah bagian pertama dari seri 'Membuat Kontribusi Open Source Pertamamu'.

Dari dulu aku pengen banget membuat kontribusi open source, tapi di saat yang sama aku selalu merasa hal tersebut adalah hal yang mengintimidasi. Pada akhirnya aku membuat kontribusi pertamaku beberapa tahun setelahnya. Paragraf di bawah ini, yang kuambil dari situs PyCon US, merangkum dengan tepat tantangan yang aku hadapi ketika membuat kontribusi open source pertamaku:

Dari perspektif teknis, berinteraksi dengan servis hosting berbasis web (GitHub, GitLab, dll.), membuat branch dan membuat pull request, adalah hal-hal yang sangat besar apabila hal-hal tersebut bukanlah bagian sehari-hari alur kerjamu. Kebenaran kode dan potensi bug adalah kendala umum lainnya dan ketakutan yang mungkin dihadapi pendatang baru. Belum lagi waktu dan frustrasi yang terakumulasi ketika mencari isu ramah pemula untuk dikerjakan.

Aku mempelajari banyak hal yang aku harap aku tahu lebih dulu sebelumnya, dan aku akan membagikannya dalam artikel-artikel yang kubagi ke tiga bagian:

Pengalaman setiap orang berbeda, jadi aku akan berbagi tentang hal-hal yang aku alami. Apa yang berhasil untukku mungkin nggak berhasil untukmu & sebaliknya.

Jika kamu ada di sini, kamu mungkin sudah tahu mengapa kamu ingin berkontribusi pada open source. Bahasan tersebut berada di luar cakupan artikel-artikel ini, jadi jika kamu ingin membaca lebih lanjut tentang ini, Open Source Guides memiliki bagian komprehensif tentang topik tersebut.


Menemukan proyek

Mulai dari proyek yang kamu gunakan

Aku memulai dengan mencari proyek yang aku gunakan setiap harinya seperti pandas, matplotlib, & scikit-learn. Aku pikir mengerjakan proyek yang sering aku gunakan sehari-hari akan memberikan motivasi yang lebih besar bagiku untuk mengerjakannya. Menggunakannya setiap hari berarti aku juga sudah cukup mengenal proyeknya juga.

Namun, aku segera sadar bahwa ternyata nggak sesederhana itu. Proyek-proyek ini sangatlah populer dan isu yang ramah pemula tampaknya hilang dalam beberapa menit setelah seseorang memposting isu tersebut. Yang tersisa adalah isu-isu yang lebih rumit dan aku sendiri nggak cukup pede bisa menanganinya.

Sekarang, ini tergantung pada dirimu sendiri. Tentu saja nggak ada yang menyuruh kamu untuk nggak mengerjakannya. Nyatanya, kamu mungkin akan belajar banyak dari isu-isu yang sulit. Tapi ketika aku memulai, aku nggak punya banyak waktu luang, karena waktu itu aku masih kuliah juga. Mengerjakan isu yang rumit pasti akan memakan waktu cukup lama, jadi aku memutuskan untuk mencari opsi lain.

Cari situs web yang membantumu menemukan proyek open source yang membutuhkan bantuan

Aku juga mencari berbagai situs web yang membantu aku menemukan proyek open source yang membutuhkan bantuan. Beberapa situs web yang aku coba:

Situs web ini memaparkanku pada lebih banyak proyek sumber terbuka yang belum pernah aku ketahui sebelumnya, dan itu keren banget! Meskipun strategi ini mungkin berhasil untuk banyak orang, akungnya itu nggak benar-benar berhasil untukku — karena aku belum pernah menggunakan proyek ini sebelumnya, aku harus mempelajari semuanya dari nol, & kadang-kadang sampai beberapa lama kemudian, aku baru sadar bahwa aku nggak terlalu tertarik untuk mengerjakan proyeknya. Waktu adalah kendala besar bagiku saat itu. Kalau aku punya lebih banyak waktu, aku yakin sih akan menemukan sesuatu yang cocok untukku pada akhirnya.

Ikuti pengelola proyek open source di media sosial

Kayaknya aku menemukan sebagian besar proyek yang aku kontribusikan melalui Twitter. Aku aku membuat kontribusi open source pertamaku ke proyek Object Explorer milik Sarah Drasner.

Aku mengikuti banyak orang yang kebetulan mengerjakan proyek open source mereka sendiri, & karena aku biasanya mengikuti orang yang mengerjakan hal-hal yang bersinggungan dengan minatku, proyek mereka biasanya juga menarik minatku. Selain itu, mereka mungkin men-tweet tentang proyek baru mereka yang belum memiliki banyak kontributor, & proyek baru memiliki cakupan yang jauh lebih kecil, sehingga penghalang untuk masuk biasanya lebih rendah.

Misalnya, berikut Andreas Mueller men-tweet tentang proyek barunya:

UPDATE: Buat teman-teman dari Indonesia, kamu juga bisa cek repositori berikut untuk menemukan proyek-proyek open source Indonesia: github.com/opensourceindonesia/daftar-proyek-OSS.

Menemukan isu

Sekarang setelah kamu memiliki proyek yang ingin kamu kerjakan, inilah waktunya untuk menemukan isu yang dapat kamu tangani!

Nggak selalu harus menulis kode

Satu hal yang ingin aku tekankan di sini adalah bahwa isu yang kamu pilih nggak selalu ada hubungannya dengan penulisan kode. Menulis dokumentasi, menerjemahkan proyek, mendesain … semuanya juga dianggap berkontribusi pada open source juga. Memperbaiki kesalahan ketik juga berkontribusi pada open source! Ada ruang untuk semua orang & setiap peran.

Cari label ramah pemula

Setiap isu biasanya memiliki label atau tag. Kamu dapat menjelajahi isu yang diberi label seperti good-first-issue atau help-wanted, yang berupa isu-isu yang dapat dikerjakan oleh kontributor pemula. GitHub baru saja meluncurkan fitur yang secara otomatis melabeli isu yang cocok untuk pemula. Kamu bisa pergi ke tautan berikut: github.com/ <owner> / <repository> / kontribusi. Misalnya, jika kamu ingin berkontribusi ke elektron untuk pertama kalinya, kamu dapat membuka tautan ini: https://github.com/electron/electron/contribute.

Jika kamu menemukan bahwa:

  • Nggak ada yang mengerjakannya: Biasanya, yang harus kamu lakukan selanjutnya adalah memberikan komentar & komentar bahwa kamu akan menangani isu ini. Ini adalah cara untuk memberi tahu semua orang bahwa seseorang (yaitu kamu!) Sedang menangani isu ini untuk menghindari pekerjaan gkamu.
  • Seseorang mengatakan mereka sedang mengerjakannya, tetapi sudah berbulan-bulan: Jika kamu menemukan isu di mana seseorang mengatakan bahwa mereka sedang mengerjakannya tetapi tampaknya tidak ada aktivitas selama beberapa bulan terakhir, silakan untuk berkomentar dan bertanya apakah kamu dapat mengambil alih isu ini!

Satu hal yang perlu diingat adalah kamu dapat membuat isu kamu sendiri, & kamu juga dapat menanganinya sendiri! Meskipun membuat pull request secara langsung mungkin dapat diterima, perlu diingat bahwa beberapa project, seperti rust-wasm, secara eksplisit menyebutkan bahwa kamu harus membuat isu kamu sendiri sebelum membuat pull request karena beberapa diskusi mungkin diperlukan. Jadi sebelum kamu membuat PR kamu sendiri, kamu bisa membuat isunya terlebih dahulu untuk memastikan bahwa kamu sedang mengerjakan sesuatu yang orang setuju harus dikerjakan.

Namun, sebelum kamu membuat isu itu …

  • Lihat PR dan isu yang ada: Mungkin ada isu serupa lainnya yang terbuka, & kamu nggak ingin membuat isu duplikat untuk menghemat waktu kamu & waktu pengelola proyek open source-nya.
  • Lihat README (lebih lanjut tentang ini di posting berikutnya!): Beberapa proyek open source memiliki pedoman tentang cara untuk membuat isu kamu sendiri. Ini untuk memastikan bahwa kamu telah memberikan semua informasi yang diperlukan terkait isu tersebut untuk meminimalkan bolak-balik antara kamu & pengelola proyek open source-nya.

Menemukan program dengan mentor

Kamu nggak harus melakukan ini sendirian, terutama jika kamu baru pertama kali melakukannya - nggak apa-apa untuk mendapatkan bantuan! Faktanya, memiliki mentor dan rekan yang juga belajar dan bekerja sama dengan kamu mungkin saja mempercepat pembelajaranmu.

Bagaimana kamu menemukan mentor dan rekan seperti itu? Ada beberapa program yang bertujuan untuk mendorong kontributor baru dalam proyek open source, dan dalam program ini, peserta biasanya akan dipasangkan dengan mentor yang akan membimbing mereka selama program berlangsung.

Mentor / magang jarak jauh dengan mentor

Tiga program di bawah ini mungkin yang paling terkenal, walaupun aku sendiri belum pernah berpartisipasi di dalamnya karena ketika aku mengetahui tentang program-program ini, aku nggak lagi memenuhi syarat:

  • Google Summer of Code: siswa mendapat kesempatan untuk bekerja dengan organisasi sumber terbuka pada proyek pemrograman 3 bulan selama istirahat mereka. Organisasi yang telah berpartisipasi termasuk Blender Foundation, DBPedia, GNOME, & lainnya.
  • Google Season of Docs: sama dengan Google Summer of Code, tetapi berfokus pada kontribusi penulisan teknis.
  • Outreachy Internship: magang untuk bekerja di open source dan software gratis. Terbuka untuk pelamar di seluruh dunia. Magang dapat dilakukan dari jarak jauh. Orang yang underrepresented, menghadapi bias sistemik, atau diskriminasi dalam industri teknologi di negara mereka didorong untuk mendaftar.

Aku secara pribadi telah berpartisipasi dalam program-program di bawah ini, & aku sangat merekomendasikannya:

  • Increasing Rust’s Reach: dijalankan oleh Tim Bahasa Pemrograman Rust untuk menumbuhkan komunitas kolaborator dan pemimpin proyek Rust. Peserta adalah individu yang underrepresented dalam komunitas Rust dan industri teknologi. Setiap peserta mengerjakan proyek Rust selama tiga bulan dengan anggota tim Rust. Program ini sepertinya sudah nggak ada lagi, tetapi kamu dapat membaca tentang pengalamanku berpartisipasi dalam program dan berkontribusi untuk Rust di sini.
  • pandas mentoring: Suatu hari aku menemukan tweet Marc Garcia:

Aku mengirim DM & aku bersemangat banget karena aku menggunakan pandas setiap hari! Marc telah melakukan pekerjaan luar biasa dalam menjalankan bimbingannya. Sejak itu, aku telah memberikan beberapa kontribusi kepada pandas mulai dari berkontribusi pada dokumentasinya hingga memperbaiki bug.

Sprint dengan bimbingan mentor

Program mentorship yang aku sebutkan di atas kebanyakan dilakukan dari jarak jauh. Namun, ada juga sprint yang dibimbing yang dapat kamu ikuti jika ada yang diadakan di kota kamu.

Dalam sprint, orang-orang berkumpul untuk membetulkan bug atau menulis dokumentasi dalam waktu singkat, seperti sehari atau akhir pekan. Sprint yang dibimbing secara khusus memiliki mentor yang dapat membimbing peserta dalam memberikan kontribusinya. Bayangkan bahwa pada akhirnya, kamu kemungkinan besar sudah memberikan kontribusi pertamamu sambil mendapatkan teman baru juga!

PyCon US telah melakukan mentored sprint tahun lalu, dan ada banyak proyek menarik yang berpartisipasi dari CPython hingga TensorFlow.

Python Sprints adalah grup nirlaba yang mengumpulkan programmer yang ingin membantu meningkatkan dunia open source menggunakan Python. Mereka telah mengadakan sprint di seluruh dunia, dan salah satu tujuan mereka adalah membantu orang-orang memulai, jadi jika ada satu di kotamu, kamu harus mampir! London telah mengadakan banyak sprint, jadi jika kamu ingin melihat bentuk sprint-nya seperti apa, kamu bisa lihat di sini.

Nah, sekarang aku punya pengumuman yang menarik: Aku akan mengadakan sprint di Jakarta untuk mengerjakan pandas docs di bulan Februari ini untuk mendapatkan lebih banyak orang lagi untuk berkontribusi di pandas. Marc Garcia, salah satu pengelola pandas, akan hadir juga! Halaman registrasi akan segera tersedia & akan aku umumkan di Twitter-ku, tapi catat tanggalnya: 15 Februari 2020 di Mozilla Community Space, Jakarta. Jika kamu memiliki pertanyaan, silakan DM aku, ya!

February 01, 2020

Open Source