"Apakah tidak ada masalah yang hanya bisa diselesaikan dengan meretas inti? Lalu bagaimana?"
Untuk menjawab pertanyaan ini, ya, terkadang ada masalah yang harus Anda atasi yang berarti Anda harus meretas inti (atau modul kontrib).
Dalam hal ini saya yakin tidak masalah untuk meretas selama Anda memasukkan banyak komentar dalam kode yang diretas dan mendokumentasikan semua yang Anda ubah.
Misalnya, untuk setiap perubahan inti atau contrib, saya membuat saya membuat patch. Jika itu generik dan bermanfaat bagi orang lain, saya kirimkan ke drupal.org dalam suatu masalah, jika tidak, itu untuk saya gunakan sendiri.
Saya kemudian mengkomit file tambalan ke kontrol versi saya bersama dengan perubahan kode.
Ini berarti bahwa saya dapat melihat dengan mencari file tambalan jika ada sesuatu yang diretas.
Selain itu, saya juga menambahkan daftar retasan ke dokumentasi pengembang untuk situs tersebut (Anda harus memiliki dokumentasi pengembang untuk kepentingan orang lain yang mungkin berfungsi di situs ini dan untuk diri Anda sendiri ketika Anda melupakan hal-hal yang tak terhindarkan).
Dalam dokumentasi peretasan ini, saya mencantumkan setiap peretasan dengan apa yang dilakukan peretasan dan mengapa, modul / file terpengaruh, nama file tambalan yang berisi kode peretasan, dan tautan ke masalah drupal.org terkait jika ada satu (hampir selalu) dalam kasus saya ada).
Maka Anda dan siapa pun yang bekerja di situs di masa depan memiliki daftar lengkap peretasan dan tidak perlu khawatir tentang sesuatu yang tidak sengaja rusak dengan pembaruan.
Kemudian untuk proses pembaruan, saya memeriksa daftar peretasan saya dan melihat sekilas file tambalan di semua modul yang saya perbarui. Jika ada peretasan dan memiliki masalah drupal.org, saya memeriksa masalah untuk melihat apakah versi terbaru memiliki tambalan, dalam hal ini saya menyingkirkan peretasan dengan pembaruan dan menghapusnya dari daftar peretasan saya (buat yakin dengan melihat pesan komit drupal.org bahwa apa yang dilakukan sama dengan versi tambalan yang Anda gunakan, atau setidaknya secara fungsional sama).
Jika tambalan tidak dilakukan, yang harus saya lakukan adalah memperbarui modul dan menerapkan kembali tambalan. Dalam banyak kasus, tambalan akan tetap berlaku bersih dan prosesnya mudah, tetapi kadang-kadang Anda harus melakukan reroll tambalan untuk versi baru dan kemudian memasukkan versi baru tambalan ke repositori lokal Anda (bersama dengan mempostingnya ke yang relevan masalah drupal.org jika berlaku).
Hal lain yang ingin saya lakukan jika saya memiliki lebih banyak tambalan atau tambalan yang berinteraksi dengan fungsionalitas inti suatu modul (atau hanya modul khusus yang meluas di atas modul drupal.org), adalah untuk memeriksa catatan rilis dari modul yang diperbarui ( itu berarti semua versi ada di antara versi Anda saat ini dan versi yang sedang Anda perbarui) dan pastikan tidak ada apa pun di sana yang dapat merusak kode Anda. Catatan: Banyak pengelola modul yang baik hari ini dengan memberikan catatan rilis lengkap tetapi masih banyak yang melakukan catatan rilis sampah. Dalam hal ini dalam beberapa kasus saya membaca semua pesan komit sejak versi saya saat ini (ini biasanya hanya dalam kasus di mana saya memiliki kode kompleks yang berinteraksi secara mendalam dengan modul lain). catatan:
Kemudian, setelah memperbarui (pada salinan pengembangan situs), uji secara menyeluruh. Anda pada akhirnya akan belajar apa arti menyeluruh setelah beberapa bug lolos.
Kemudian ketika sudah cukup diuji, tingkatkan situs langsung atau dorong pembaruan lokal Anda ke atas atau apa pun proses penyebaran Anda.
Alasan mengapa semua orang mengatakan tidak melakukannya, bahkan jika itu lebih mudah: Karena kebanyakan orang tidak memiliki sistem seperti yang saya uraikan, jadi ketika tiba saatnya untuk melakukan pembaruan, atau situs tersebut diserahkan kepada orang lain untuk bekerja pada, itu menjadi mimpi buruk dan banyak waktu (kadang-kadang banyak waktu) harus dihabiskan untuk memecahkan bug dan melacak peretasan dan mencari tahu mengapa mereka ada di sana, dll.
Jika Anda pernah mewarisi situs seperti itu, Anda akan sepenuhnya memahami :)