"N'y a-t-il pas des problèmes qui ne peuvent être résolus qu'en piratant le noyau? Et alors?"
Pour répondre à cette question, oui, il y a parfois des problèmes que vous devez surmonter, ce qui signifie que vous devez pirater le cœur (ou un module contrib).
Dans ce cas, je pense qu'il est correct de pirater tant que vous mettez beaucoup de commentaires dans votre code piraté et documentez tout ce que vous changez.
Par exemple, pour tout changement de cœur ou de contribution que je fais, je crée un patch. S'il est générique et utile à d'autres personnes, je le soumets à drupal.org dans un numéro, sinon c'est pour mon usage personnel.
Je valide ensuite le fichier de correctif dans mon contrôle de version avec le changement de code.
Cela signifie que je peux voir en recherchant des fichiers de correctifs si quelque chose a été piraté.
En plus de cela, j'ajoute également une liste de hacks à la documentation développeur pour le site (vous devriez vraiment avoir une documentation développeur pour le bien des autres qui pourraient travailler sur le site et pour vous-même lorsque vous oubliez inévitablement des choses).
Dans cette documentation de hacks, je liste chaque hack avec ce que fait le hack et pourquoi, les modules / fichiers affectés, le nom du fichier de patch qui contient le code de hack et un lien vers un problème drupal.org connexe s'il y en a un (presque toujours dans mon cas il y en a).
Ensuite, vous et toute autre personne travaillant sur le site à l'avenir disposez d'une liste complète de hacks et n'avez pas à vous soucier de casser accidentellement quelque chose avec une mise à jour.
Ensuite, pour le processus de mise à jour, je vérifie ma liste de hacks et jette un œil aux fichiers de correctifs dans tous les modules que je mets à jour. S'il y a un hack et qu'il y a un problème avec drupal.org, je vérifie le problème pour voir si la dernière version a le patch inclus, auquel cas je supprime le hack avec la mise à jour et le supprime de ma liste de hacks (make en regardant les messages de validation de drupal.org, assurez-vous que ce qui a été validé était la même que la version du correctif que vous utilisez, ou du moins fonctionnellement la même).
Si le correctif n'a pas été validé, tout ce que j'ai à faire est de mettre à jour les modules et de réappliquer les correctifs. Dans de nombreux cas, les correctifs s'appliqueront toujours proprement et le processus est facile, mais parfois vous devez relancer les correctifs pour la nouvelle version, puis valider la nouvelle version du correctif dans votre référentiel local (avec la publication sur le site concerné) problème drupal.org le cas échéant).
Une autre chose que j'aime faire si j'ai des correctifs plus substantiels ou des correctifs qui interagissent avec la fonctionnalité principale d'un module (ou simplement des modules personnalisés qui s'étendent au-dessus d'un module drupal.org), est de vérifier les notes de publication du module mis à jour ( cela signifie que toutes les versions entre votre version actuelle et la version vers laquelle vous effectuez la mise à jour) et assurez-vous qu'il n'y a rien là-dedans susceptible de casser votre code. Remarque: Beaucoup de mainteneurs de modules sont bons de nos jours avec des notes de version complètes, mais il y en a encore beaucoup qui font des notes de version. Dans ce cas, dans certains cas, je passe par tous les messages de validation depuis ma version actuelle (ce n'est généralement que dans les cas où j'ai du code complexe qui interagit profondément avec un autre module). Remarque:
Ensuite, après la mise à jour (sur une copie de développement du site), testez soigneusement. Vous apprendrez finalement ce que signifie complètement après que quelques bogues se soient glissés.
Ensuite, quand il a été suffisamment testé, mettez à niveau le site en direct ou augmentez vos mises à jour locales ou quel que soit votre processus de déploiement.
La raison pour laquelle tout le monde dit de ne pas le faire, même si c'est plus facile: parce que la plupart des gens n'ont pas de système comme je l'ai décrit, donc quand vient le temps de faire des mises à jour, ou que le site est remis à quelqu'un d'autre pour travailler sur, cela devient un cauchemar et beaucoup de temps (parfois énormément de temps) doit être consacré à résoudre les bugs et à traquer les hacks et à trouver pourquoi ils sont là, etc.
Si vous avez hérité d'un site comme celui-ci, vous comprendrez parfaitement :)