Forking proyek open source dengan baik

27

Sudah waktunya.

Anda telah bekerja keras dan lama untuk menambahkan visi Anda ke proyek sumber terbuka yang Anda sukai, di mana Anda telah bekerja, berdebat, dan yang telah Anda berikan kontribusi dalam jumlah kode dan wawasan yang tak terduga.

Tapi itu tidak akan berhasil dengan pengembang yang ada.

Anda akhirnya perlu fork kode.

Bagaimana Anda melakukan ini dan tetap dengan persyaratan terbaik dengan proyek yang ada? Bagaimana Anda tidak mengatakan, " Oh, ya? Sialan! "

Selain dari mekanisme polinasi silang dan dengan asumsi bahwa alasan forking adalah masuk akal, logis, dan dapat diterima, masalah apa yang muncul?

Kompetisi? Pengisapan sumber daya? Perburuan pengguna?

Bagaimana Anda melewati proses yang bisa dibilang sulit dan panjang ini sampai Anda cukup terdiversifikasi sehingga tidak lagi dipandang sebagai masalah?

Daripada membahas alasan di balik keputusan tersebut, silakan asumsikan bahwa Anda telah diyakinkan bahwa forking kode adalah solusi keseluruhan terbaik, dan sekarang intinya adalah untuk bergerak maju dengan cara sebaik mungkin.

-Adam

Adam Davis
sumber

Jawaban:

20

Anda ingin mengerjakan sendiri garpu kode atau Anda ingin memecah-mecah komunitas?

Kami secara internal telah bercabang beberapa proyek. Kami akan membuat perubahan, mengirimkannya kepada pemilik, mereka akan berkata "tidak, terima kasih", dan kami akan mengangkat bahu dan membawanya secara internal dan mempertahankannya sendiri.

Pikiran, ini bukan proyek-proyek besar, tetapi hanya jalannya saja. Kami belum menerbitkan apa pun, meng-host situs, atau apa pun. Kami hanya mendorong sumber hilir ke klien kami dengan sisa basis kode.

Sama sekali tidak ada panggilan bagi kami untuk "mempromosikan" perubahan kami dengan cara yang lebih umum daripada milis dev.

Jika Anda ingin mempertahankan keseimbangan dengan yang asli, maka Anda harus menjadi agresif dalam manajemen tambalan, dan penggabungan, dan apa pun.

Jika Anda tidak ingin repot, maka ... jangan. Tidak ada alasan untuk mengumumkannya kecuali jika itu maksud umum, daripada hanya perlu versi bercabang untuk proyek Anda sendiri.

Sumbernya ada untuk digunakan, jadi gunakanlah.


sumber
8

Dalam sebagian besar proyek open source, kata "garpu" tidak sering dianggap dengan hangat, saya secara pribadi membuat pengalaman bahwa meminta untuk bekerja pada "cabang topik" untuk mengembangkan serangkaian fitur tertentu jauh lebih disambut.

Dan ini hanya masuk akal: "garpu" pada dasarnya adalah pesaing potensial, sementara "cabang topik" - setidaknya dengan desain - dimaksudkan untuk akhirnya digabung / dikontribusikan kembali ke proyek.


sumber
5

Pertama katakan Anda hanya ingin melakukan beberapa refactoring eksperimental. Anda tahu, hanya beberapa ide yang ingin Anda mainkan. Tetapi perubahan ini mungkin mengharuskan Anda untuk melanggar kompatibilitas dengan cabang utama proyek, jadi Anda tidak ingin melakukan perubahan di sana.

Lalu buat garpu Anda. Tentu saja Anda adalah pengembang yang bertanggung jawab, sehingga Anda meletakkan semua kode di bawah kendali revisi. Gunakan Launchpad atau SourceForge atau Google Code atau apa pun.

Berbohong rendah untuk sementara dan kerjakan sendiri. Kemudian mintalah seseorang yang Anda percaya untuk "melihat" apa yang telah Anda buat. Lalu seseorang lain. Beberapa saat setelah itu, buat situs web proyek sederhana di mana pun Anda menyimpan sumber Anda.

Pada saat itu, orang-orang yang Anda pikir tidak bekerja pada proyek asli mungkin akan pindah juga, jadi tidak akan ada orang yang tersinggung. Proyek asli akan menurun dalam aktivitas karena proyek baru Anda mendapatkan pengikut.


Komentar Re codelogic:

Kanan; Saya berasumsi bahwa orang-orang OP ingin meninggalkan tidak mampu mempertahankan proyek sendiri.

Saya pernah mendengar katanya, "organisasi bertahan, orang tidak." Artinya, tidak ada satu orang pun yang begitu kritis terhadap suatu proyek sehingga tim yang tersisa tidak dapat mengkompensasi kekosongan yang ditinggalkan oleh keberangkatan orang tersebut.

Namun, dalam open source, terkadang memang benar bahwa tidak ada yang memiliki kemauan, bakat, dan waktu untuk menjalankan proyek tanpa pendiri.

Bill Karwin
sumber
IMHO, bagian terakhir dari jawaban Anda terlalu lancang. Tidak umum bahwa proyek populer hanya akan menurun dalam aktivitas karena garpu.
Dengan asumsi tentu saja bahwa proyek yang dimaksud bukan terutama pekerjaan pengembang tunggal yang memutuskan untuk membayar.