Memodifikasi aplikasi sumber terbuka

9

Apa alur kerja umum ketika saya ingin menambahkan fitur ke aplikasi open source yang awalnya tidak saya tulis? Bagaimana saya bisa mengetahui kodenya? Bagaimana cara menemukan tempat yang perlu diubah atau ditambahkan? Bagaimana saya benar-benar melakukan perubahan tanpa merusak yang lain? Bagaimana saya menguji bahwa semuanya masih berfungsi?
Apa pedoman umum tentang proyek semacam itu?

Dani
sumber
2
Anda juga harus mengirimkan perubahan Anda ke proyek, biasanya sebagai tambalan, sehingga orang lain dapat memperoleh manfaat.

Jawaban:

6

Ada beberapa protokol, semua orang kurang lebih menginginkannya dengan waktu, tetapi ini dia, terbuka.

  • Anda mengunduh sumber yang didistribusikan.
  • Anda mulai sedikit menavigasi kode sendiri

    • Jika ini adalah program yang dikompilasi, Anda sekarang belajar cara mengkompilasinya.
    • Jika Anda gagal mengompilasinya, Anda melaporkan ke pembuat / milis dan menanyakan arah
  • Jika Anda benar-benar tidak mengerti apa-apa tentang kode ...

    • Ya, tidak, Anda tidak meminta mereka.
    • Anda membatalkannya, karena Anda mungkin tidak normal dan tidak dapat membantu apa pun.
    • Anda mengirimkan fitur jika penulis menerima permintaan fitur.
  • Lain

    • Anda menemukan tempat yang ingin Anda ubah.

    • Jika Anda bertanya-tanya tentang detail kecil, Anda bertanya kepada penulis / milis, dan menjelaskan niat Anda.

    • Anda melakukan cd ke direktori utama distribusi (yang teratas keluar dari pembatalan tanda / unzipping)

    • Kamu diff -ur . > mypatch.path

    • Anda mengirim mypatch.patchkepada penulis menjelaskan apa yang Anda lakukan, mengapa Anda melakukannya, dan (karena Anda sudah ada di sana) Anda menyatakan dengan jelas bahwa Anda melepaskan hak atas tambalan kepada mereka.

  • jika penulis tidak menyukai kontribusi Anda

    • Anda memeriksa apakah ada cara untuk melepaskan modifikasi Anda sebagai semacam plugin

      • dalam hal ini, sekarang Anda sedang dalam perjalanan untuk menjadi mantainer plugin .
    • lain

      • Anda berbicara tentang situasi di blog Anda dan melepaskan tambalan di sana, bebas untuk mengunduh dan mencoba dengan penjelasan dan kata-kata kasar Anda,

      • Anda menghantui sekarang dan kemudian sistem bug / mailing list mencoba untuk membeli dukungan untuk tambalan Anda. Hindari dilarang.

    • dalam kasus-kasus ini Anda tidak perlu memotong kode , karena ini adalah proses yang sangat melelahkan dan tidak menguntungkan, Anda tidak akan bisa mengikuti waktu: yang akan membuat pengguna sedih dan bingung. Fork harus benar-benar hanya terjadi ketika sebuah perusahaan besar mencoba menggertak keputusannya pada sepotong OSS .

  • lain

    • Anda menerima instruksi lebih lanjut dari penulis itu

Di samping: ada alternatif terbaru untuk diff -ur .tambalan dan merupakan cara github .

  • Anda "bercabang" kode mereka di github dengan nama Anda,
    (sekarang Anda memiliki salinan kode mereka di akun Anda)
  • hubungkan git Anda ke salinan pribadi Anda,
  • buat modifikasi Anda tentang itu, periksa di,
  • dan beri tahu penulis utama untuk melihat proyek github Anda.

  • Jika mereka menyukainya, mereka akan melakukan sinkronisasi .

  • Jika tidak, Anda dapat menautkan "gitfork" di blog Anda.
ZJR
sumber
Semua baik sampai Anda menyarankan OP api pembuat produk untuk tidak merangkul tambalan fitur baru, tidak jelas apakah ini seharusnya lucu atau serius, baik, itu bentuk yang SANGAT buruk untuk secara efektif menangis seperti anak kecil ke seluruh dunia karena tim produk tidak suka / ingin tambalan fitur baru Anda. Dengan segala cara, posting itu tetapi selalu murah hati jika tidak diterima, terlepas dari seberapa tidak logis keputusan itu tampaknya. -1 - FYI, saya akan dengan senang hati mengembalikan suara saya, jika Anda menghapusnya.
ocodo
Aplikasi yang ingin saya ubah mengikuti standar ketat yang dengan perubahan saya akan melanggar standar. Saya pikir saya bahkan tidak dalam posisi untuk meminta patch saya untuk diterapkan.
Dani
@Slomojo OSS penuh dengan orang yang tidak dewasa, dan hal semacam itu terjadi setiap saat, setiap orang harus siap bekerja seperti keledai dan kemudian ditolak atas dasar yang kadang solid dan kadang bisa diperdebatkan . Dan kemudian, setidaknya, Anda selalu memiliki kesempatan mengomel tentang hal itu dan menemukan orang-orang yang merasa Anda mungkin benar. Sekarang, karena dendam , itu akan menjadi langkah yang salah dan sangat kiddish untuk dilakukan.
ZJR
@Ani lol, Anda benar-benar harus mengambil bagian tambalan dan kata-kata kasar tentang hal itu . Hindari forking karena akan menghabiskan hidup Anda, rasanya seperti refactoring terus menerus tanpa gaji. ... ngomong-ngomong, periksa dengan milis dan sistem laporan kutu jika ada, untuk melihat apakah ada orang yang tertarik dengan ekstensi semacam itu, mungkin Anda tidak sendirian. Aaa dan yang terbaik adalah mereka memiliki beberapa API untuk memperpanjang atau plugin-hal untuk memasukkan perubahan Anda. Itu selalu merupakan pilihan terbaik dalam kasus-kasus seperti itu: mempertahankan plugin . ... akan mengeditnya di.
ZJR
2
jika ada kasus pengujian otomatis, jalankan sebelum Anda mengirimkan tambalan.
oenone
0

Khas.

Jika itu adalah proyek OS acak, kemungkinan besar Anda akan memperbaiki bug kecil di sana-sini.

Akhirnya Anda akan mengirimkan banyak perubahan, sebagai "tambalan".

Biasanya Anda akan mendapatkan hak komit jika barang Anda bagus.

Saya berbicara secara umum dan sejelas mungkin dan tidak spesifik karena pertanyaan itu

MattyD
sumber