Saya baru-baru ini mencoba untuk masuk ke kolaborasi open source di GitHub dan telah mengalami situasi di mana saya ingin tahu apa cara yang disukai untuk melanjutkan.
Sekitar sebulan yang lalu, saya menemukan proyek di GitHub untuk perpustakaan yang sudah saya gunakan untuk sementara waktu dan di mana saya telah menemukan (dan memperbaiki) beberapa bug.
Sebagai perintis awal ke kolaborasi GitHub, saya menemukan repo yang tampaknya memiliki volume aktivitas terbaru, memperbaiki satu bug, menambahkan tes unit, mendorong ke GitHub, dan membuat permintaan tarik. Dalam beberapa jam, pengelola repo yang saya gali telah menerima PR dan menggabungkan beberapa PR lainnya dari orang lain yang telah menunggu juga.
Didorong oleh ini, saya memperbaiki tiga bug lagi yang saya temukan, masing-masing di cabang terpisah dari repo saya sendiri, dan mengajukan masalah dan menarik permintaan untuk masing-masing secara terpisah.
Itu hanya lebih dari sebulan yang lalu, dan permintaan tarik telah duduk di sana, tak tersentuh, sejak itu. Pengguna yang repo yang saya garpu tidak tampak sangat aktif, hanya membuat 7 kontribusi total pada GitHub dalam satu tahun terakhir, dan repo itu tidak memiliki komitmen sejak permintaan tarik pertama yang saya buat.
Jadi pertanyaan saya:
Bagaimana seseorang melanjutkan dalam situasi ini? Idealnya, saya ingin menghindari membuat fragmentasi perpustakaan dengan mematikan dan membuat sejumlah besar perubahan pada repo saya sendiri yang tidak digabungkan ke repo induk. Meskipun demikian, saya ingin terus membuat perbaikan bug dan menambahkan fitur, tetapi jika saya menggabungkan semuanya ke cabang master saya dan mendasarkan semua perbaikan baru dari cabang itu, maka jika pengelola repo yang saya garpu pernah kembali, saya menang dapat memecah semua perubahan menjadi permintaan tarikan terpisah untuk setiap perbaikan fitur / bug (saya telah membaca bahwa permintaan tarikan umumnya harus menjadi satu permintaan tarikan per fitur atau perbaikan bug).
Haruskah saya menjaga satu cabang yang sejalan dengan repo asli, mendasarkan semua cabang baru saya dari yang itu, dan kemudian menjaga semua komit digabung dalam cabang master saya? Sepertinya itu akan meninggalkan saya dengan satu ton cabang dan tugas yang semakin membebani setiap kali saya perlu menggabungkan perubahan baru ke dalam cabang master saya.
Apa cara khas seseorang mendekati situasi seperti ini? Tampaknya cukup umum bahwa suatu proyek hanya akan ditinggalkan dengan kontributor asli tidak ada untuk meninjau permintaan tarik baru. Apakah ini situasi di mana seseorang harus mengambil alih kemudi dan menjalankannya? Sepertinya itu akan membuat fragmentasi jika kontributor asli pernah kembali dan ingin mengerjakan proyek lagi.
sumber
Jawaban:
Saya belum mengalami situasi ini, tetapi itulah yang akan saya coba:
Coba hubungi pemiliknya
Mungkin mereka benar-benar kehilangan minat, tetapi bersedia untuk mentransfer proyek ke orang lain, khususnya seseorang yang sudah menunjukkan komitmen penuh perhatian.
Tetapi mungkin mereka hanya sibuk dengan hal lain (pekerjaan, liburan, sakit, proyek lain) dan tidak punya waktu untuk menangani PR Anda, tetapi rencanakan untuk melakukannya nanti.
Atau mungkin mereka benar-benar berhenti mengerjakan proyek secara permanen untuk alasan apa pun.
Tanpa bertanya, Anda tidak akan mengetahuinya.
Hubungi komunitas
Tentunya ada orang lain yang telah berkontribusi, atau setidaknya menggunakan proyek. Periksa siapa yang telah memotong proyek (bahkan jika mereka belum membuat perubahan, mereka mungkin masih tertarik melihat proyek ini berkembang); periksa siapa yang telah melaporkan masalah, atau mengomentarinya. Mungkin ada juga komunitas di luar GitHub, misalnya milis, forum, atau anggota StackOverflow.
Saya akhirnya Anda benar-benar mengambil alih proyek, Anda mungkin ingin dukungan mereka. Dan mereka perlu tahu di mana repositori master yang baru.
Terus buat permintaan tarik yang bagus
Ini menunjukkan kepada pemilik dan komunitas bahwa Anda serius tentang hal itu, dan biarkan mereka menilai kontribusi Anda.
sumber
Jika pemilik repo asli tidak ditemukan di mana pun dan absen dalam jumlah besar, saya akan menerbitkan repositori saya sendiri sebagai versi proyek yang berbeda.
Dengan ini, Anda mengambil alih memimpin pengembangan perpustakaan, dan jangan biarkan mati di sudut tanpa diperbarui lagi. Jika pemilik asli pernah menutup repo, dunia masih dapat menggunakan versi bercabang.
sumber
fork
proyek dan diREADME.md
, tinggalkan referensi dan "terima kasih" kepada pemilik asli.Karena kebanyakan proyek Free dan Open Source ukuran kecil hingga menengah saat ini di-host di github, gitlab atau sejenisnya, akan dimungkinkan untuk mengotomatisasi beberapa proses , menggunakan API Web mereka.
Dengan asumsi repo asli sudah ada
https://github.com/someUserX/projectY/
, prosesnya bisa seperti ini:("manual") Hubungi penulis asli dengan berbagai cara, setidaknya melalui email git committer-nya dan masalah (jika diaktifkan).
Dalam hal izin yang diterima atau tidak ada respons dalam beberapa minggu, orang dapat menjalankan skrip yang akan menggunakan API Web host untuk melakukan langkah-langkah seperti ini:
buat organisasi baru (GitHub) bernama
projectY
, dan di dalamnya garpu repo asli ->https://github.com/projectY/projectY/
sumber