Benar-benar tidak ada yang salah dengan melakukan itu selama semua orang dapat menanggung biaya, manfaat dan risiko.
... perbaikannya tampaknya cukup sederhana ... untuk menambal kode sendiri
Ketika Anda memiliki pekerjaan yang harus dilakukan, sempurna (memiliki perpustakaan pihak ketiga yang persis apa yang Anda inginkan) adalah musuh yang cukup baik (menambalnya sendiri), dan kadang-kadang Anda harus melakukan hal-hal seperti itu. Saya telah melakukan sejumlah proyek di mana kami telah membeli lisensi sumber untuk perpustakaan komersial sehingga kami dapat memperbaiki masalah sebelum vendor mendapatkannya.
... pencela ingin memperdebatkan kasus bahwa ini hampir selalu merupakan ide yang buruk karena berisiko dan memperkenalkan kompleksitas yang merepotkan.
Itu ide yang buruk jika Anda tidak memiliki daging untuk menangani pembedahan kode orang lain, mengidentifikasi masalah dan menulis perbaikan. Itu benar apakah kodenya di rumah atau pihak ketiga; satu-satunya perbedaan adalah apakah itu dilemparkan di atas bilik atau dinding bangunan sebelum mendarat di pangkuan Anda.
Jika pencela Anda hanya menyisihkan ide tanpa mempertimbangkan biaya untuk tidak melakukan patch ini, mereka tidak melakukan pekerjaan rumah mereka. Jika Anda memiliki banyak kode internal yang dipengaruhi oleh bug yang akan diperbaiki oleh tambalan Anda, Anda harus melewati dan mengubahnya untuk mengatasinya dan menguji kembali semuanya untuk memastikannya berfungsi dengan benar. Kemudian, jika Anda pernah memutakhirkan paket ke versi bug-diperbaiki, Anda mungkin harus menemukan dan menghapus solusi Anda dan menguji lagi. Ada risiko untuk melakukan itu juga, seperti melewatkan kasus yang Anda ubah atau pengujian yang tidak memadai. Secara pribadi, jika saya memiliki kesempatan untuk memperbaiki bug pada sumbernya, saya lebih suka melakukannya di sana daripada mengejar sisa kode dengan pemukul lalat dan berharap saya mendapatkan semuanya.
... perubahan kode dilakukan oleh kami ... itu harus menjadi bagian dari basis kode kami ... kami harus memperkenalkannya sebagai proyek baru dan memasukkan build otomatisnya ke dalam proses build kami.
Jika Anda melakukan tambalan, tambalan itu adalah bagian dari kode Anda sendiri, yang berarti Anda harus menjadikannya bagian dari proses Anda. Ini tidak ada bedanya dengan menambahkan sesuatu yang 100% kode Anda ke sistem Anda. Perlakukan distribusi pihak ketiga sebagai sakral dan masukkan ke dalam modul seperti itu adalah kode sumber. Setiap tambalan yang Anda tulis disimpan dengannya dalam file terpisah dan diterapkan sebagai bagian dari proses pembuatan. Dengan begitu Anda selalu beralih dari sumber bersih ke sumber yang ditambal ke produk yang dibuat dan dapat menunjukkan dengan tepat apa yang terjadi. (Beberapa orang membongkar, menambal tangan, mengemas ulang dan menyimpannya dalam kontrol versi. Itu buruk.)
... kami akan menarik kode mereka dari repositori kontrol sumber mereka ke dalam kode kami, dan kami kehilangan sejarah di balik setiap perubahan kode ...
Jika Anda memperlakukan perpustakaan pihak ketiga sebagai ketergantungan pihak ketiga, Anda tidak memiliki sejarah untuk memulai dan Anda tidak kehilangan apa-apa. Jika Anda memiliki akses berkelanjutan ke repositori pihak ketiga, Anda dapat berkonsultasi yang harus Anda lakukan. Rilis pihak ketiga harus diperlakukan seperti gumpalan amorf yang Anda periksa di sistem Anda sendiri tanpa diubah. Jika Anda perlu melihat perubahan antara rilis yang Anda gunakan dan rilis yang lebih baru, Anda bisa melakukan itu dan, jika Anda mau, buat tambalan ke versi lama yang memasukkan perubahan yang Anda inginkan.
Juga sepertinya sesuatu yang terlalu rumit untuk perubahan kode kecil yang perlu dibuat.
Jika proses pembuatan Anda cukup canggih, menambahkan ini seharusnya tidak lebih sulit daripada menambahkan kode Anda sendiri. Ada sejumlah kecil tenaga kerja untuk membawanya ke titik di mana proses unpack / patch / build adalah automagic, tetapi setelah selesai, itu dilakukan selamanya. Mungkin ada satu bug sekarang, tetapi mungkin ada dua puluh di masa depan. Jika ada, Anda akan jauh lebih bahagia karena meletakkan dasar untuk mendukung semua itu sekarang, karena itu akan membuat berurusan dengan 19 pekerjaan berikutnya jauh lebih sedikit.