Kontribusi Sumber Terbuka 101
Cerita belakang ⏮
Sebagai mentor di ADPList , saya sering ditanyai tentang kontribusi open-source saya sebagai Apache committer dan bagaimana memulai dengan Github.
Ditunjuk sebagai Apache Committer ( apache/mxnet#19512 ) adalah salah satu pencapaian terbesar saya di dunia coding & teknologi. Saya ingin berbagi pembelajaran dari menghabiskan waktu dengan komunitas open-source. Hal ini mendorong saya untuk membimbing para profesional perangkat lunak karir awal dan mahasiswa ilmu komputer/engg universitas. Artikel ini adalah upaya untuk menjawab pertanyaan —
Apa yang akan saya lakukan hari ini di November 2022 jika saya memulai perjalanan saya di open source?
♀ Apa yang dimaksud dengan sumber terbuka?
Github adalah poster-anak alam semesta open-source, setelah mempopulerkan gagasan repositori, permintaan tarik & kontrol versi. Sumber terbuka pada dasarnya adalah tentang mendezokratisasikan akses ke kode sumber. Ini tentang meruntuhkan tembok yang ditempel dengan perjanjian non-disclosure [NDA] dan hak cipta & merek dagang yang membatasi ™️. Ini tidak berarti bahwa kode sumber terbuka tidak memiliki lisensi atau hak cipta. Ini tentang memberikan kebebasan untuk berbagi pengetahuan dan informasi secara publik dengan keamanan kutipan dan referensi yang tepat. Open-source adalah penyamarataan yang hebat, dalam pengertian itu. Orang-orang dari seluruh dunia dapat membaca, berkomentar, menulis, dan berekspresi dengan bebastentang perangkat lunak yang dikembangkan di dunia sumber terbuka. Kebebasan berekspresi inilah, hak asasi manusia yang mendasar, ketika diterapkan pada dunia perangkat lunak dan teknologi, terwujud dalam bentuk "sumber terbuka".
♂️Apa yang dimaksud dengan kontribusi sumber terbuka?
Baiklah, sekarang kita berada di halaman yang sama sejauh menyangkut istilah "sumber terbuka". Kegiatan apa yang terkait dengan kontribusi OS?
Menurut pendapat saya, rangkaian tindakan berikut termasuk dalam payung kontribusi OS
- Buat masalah, bug & ajukan pertanyaan
- Tingkatkan permintaan Fitur [melalui masalah, jira, atau perangkat lunak pelacakan proyek]
- Ideate & membuat Proposal
- Berkomentar dan berpartisipasi dalam diskusi
- Jawab pertanyaan
- Perbaiki bug
- Tinjau kode yang dikembangkan oleh anggota lain dalam komunitas
- Tambahkan pengujian, tingkatkan infrastruktur pengujian/CI/CD
- Tulis kode fitur baru
- Menghadiri acara virtual/tatap muka
- Menginjili perpustakaan/produk/layanan
- Berkomunikasi secara aktif dalam diskusi/saluran obrolan/daftar dev
- Beri suara & berpartisipasi dalam proses rilis [perpustakaan/produk/kerangka kerja/layanan]
Bagaimana saya harus memulai?
Saya akan mengejar 1 dari 2 rute berikut
- Proyek terkenal oleh organisasi open source terkenal
- Proyek yang paling banyak saya gunakan konteksnya
Cari proyek familiar yang didukung oleh Organisasi Open Source terkenal

- Yayasan Perangkat Lunak Apache — hadoop, hive, hbase, mxnet, cassandra
- The Document Foundation — LibreOffice [Open office] suite
- Yayasan GNOME — lingkungan desktop GNOME yang terkenal
- Linux Foundation — terkenal dengan sistem operasi berbasis UNIX
- Mozilla Foundation — terkenal dengan browser
Cara mudah untuk membuat dampak yang berarti bagi komunitas pengembang adalah ketika Anda sudah memiliki beberapa model mental bawaan dari produk/kerangka kerja/layanan yang mendasarinya. Saya akan menyalurkan energi saya dalam memberikan kontribusi sumber terbuka tersebut dengan memanfaatkan pengetahuan & konteks yang telah saya bangun sejauh ini sebagai pengembang.
Ini bisa berarti proyek yang berbeda untuk pengembang yang berbeda, jelas berdasarkan tumpukan perangkat lunak yang paling sering mereka gunakan.
Saya akan mencantumkan proyek sumber terbuka umum berdasarkan bahasa:

10 proyek Javascript teratas oleh Technical Geek
- Bereaksi dengan Facebook/Meta
- Tensorflow.js oleh TF [awalnya oleh Google]
- Node.js
- Angular.js
- jQuery
- Manajer Paket Node [npm]
- Vue.js
- Ember.js
- Meteor.js
- Polimer
- Tensorflow — pembelajaran mendalam
- matplotlib — visualisasi data
- Flask — pengembang web
- Django oleh Django Software Foundation
- PyTorch — awalnya oleh Facebook/Meta
- MXNet oleh Yayasan Perangkat Lunak Apache
- Ansible — penerapan, Ops & alat orkestrasi
- Permintaan — Pustaka HTTP oleh Python Software Foundation
- Scikit-learn — ML dengan python
- Pandas — ilmu data/analisis data
- OpenJDK
- RXJava
- Apache Pinot — penyimpanan data OLAP
- Hazelcast — komputasi terdistribusi dan platform penyimpanan
- Format Google Java — Gaya Google Java
- jOOQ — SQL untuk Java
- Boot Musim Semi
- Glide — caching dan pembuatan gambar untuk Android
- Guava — perpustakaan Java inti oleh Google
- mockito - tiruan, kerangka uji
- cari di Google dengan kata kunci “top 10 open source projects” dan “language”
- Cari di Github —https://github.com/search?q=java+language%3AJava&type=repositories&l=Java