Etiket apa yang tepat untuk merilis penulisan ulang lengkap dari proyek yang ada?

12

Saya baru di dunia opensource. Proyek yang saya kerjakan berada di Github. (Hanya untuk referensi) Proyek yang saya kerjakan adalah plug-in untuk Plex Media Server. Saya berencana untuk mengirimkan plug-in saya ke Plex sehingga akan dimasukkan dalam "app store" mereka. Sekarang untuk pertanyaan saya.

Ketika saya pertama kali memulai, saya menemukan sebuah plugin semi-ditinggalkan yang melakukan beberapa dari apa yang saya inginkan tetapi tidak terlalu baik. Saya mulai dengan berkontribusi pada repo itu. Saya segera menjadi kolaborator dengan hak penuh atas repo tersebut karena pemilik saat ini mengatakan dia terlalu sibuk untuk mengacaukannya. Namun, ketika saya mulai menggali lebih dalam kode saya menyadari bahwa itu sia-sia. Basis kode yang ada sangat buruk dan tidak ada cara yang efisien untuk memperbaikinya. Saya akhirnya baru mulai dari awal. Satu-satunya kode yang saya gunakan di plugin baru saya adalah kode yang saya lakukan pada awalnya.

Sekarang proyek ini siap dirilis. Namun saya tidak yakin bagaimana cara melakukan ini. Saya melihat opsi saya sebagai berikut:

  1. Buat repo baru dan lupakan saja yang sudah ada. Saya tidak yakin apakah saya harus menyebutkan repo sebelumnya dan atau kontributornya. Saya tidak menggunakan kode / sumber daya apa pun dan telah membuat basis kode yang sama sekali baru. Sementara plugin melakukan beberapa hal yang sama dengan yang lama, plugin melakukannya dengan cara yang sama sekali baru dan lebih efisien.

  2. Saya garpu repo yang ada, hapus kode yang ada, dan komit kode baru saya. Saya benar-benar baru di Git, jadi saya tidak yakin apakah ini mungkin.

  3. Saya melakukan perubahan pada repo yang ada dan melihat bagaimana pendapat kontributor saat ini.

Dari tiga opsi, saya sangat condong ke yang pertama. TAPI! Saya baru mengenal open source dan saya ingin memastikan saya melakukan sesuatu sesuai dengan etika yang benar. Saya tidak ingin proyek pertama saya meledak di wajah saya dan menjadi bencana. Opsi dua tidak terdengar buruk tetapi saya tidak yakin apakah saya harus melakukan itu. Saya tidak yakin bagaimana sejarah dan perbedaan akan bekerja. Kami hanya berbicara tentang 500 - 1000 baris kode paling banyak. Jadi itu bukan basis kode besar.

Terima kasih atas masukan yang Anda berikan!

Matt Keller
sumber
10
Karena ini semua kode baru, saya cenderung memilih # 1 karena sejarah proyek lama benar-benar tidak relevan. Tetapi akan menyenangkan untuk menambahkan sesuatu ke README di sepanjang baris, "Berdasarkan ide dari ....".
Peter Rowell
2
@PeterRowell tolong berikan komentar itu dalam jawaban sehingga saya dapat meningkatkannya!
MattDavey
@PeterRowell Terima kasih atas sarannya. Itu ide yang bagus.
Matt Keller
1
Untuk 2, tidak perlu menghapus repositori yang ada. Apa pun yang Anda lakukan, saya yakin pengembang asli akan menghargai Anda mengatakan kepadanya bahwa Anda mengarang proyek
James

Jawaban:

13

Karena ini semua kode baru, saya cenderung memilih # 1 karena sejarah commit dari proyek lama benar-benar tidak relevan. Tetapi akan menyenangkan untuk menambahkan sesuatu ke README di sepanjang baris, "Berdasarkan ide dari ....".

Saya penggemar berat mengetahui dari mana kami (atau algoritma kami) berasal. Jika Anda melihat kembali ke kabut sejarah, Anda akan melihat bahwa kita semua berdiri di atas bahu orang-orang yang datang sebelumnya — kita semua . Sebagai contoh, saya mengembangkan dan memasarkan mesin pencari kesamaan pada tahun 1980-an, dan tampaknya cukup radikal bagi sebagian orang (Boolean adalah Raja waktu itu). Tetapi inti dari algoritma yang saya gunakan didasarkan pada pekerjaan yang dimulai oleh Gerard Salton di Cornell 20 tahun sebelum saya.

Peter Rowell
sumber