"Não existem problemas que só podem ser resolvidos com o hacking core? E então?"
Para responder a essa pergunta, sim, às vezes há problemas que você precisa superar, o que significa que você precisa invadir o núcleo (ou um módulo de contribuição).
Nesse caso, acredito que não há problema em invadir, desde que você coloque muitos comentários em seu código invadido e documente tudo o que mudar.
Por exemplo, para qualquer alteração no núcleo ou no contrib, eu crio um patch. Se for genérico e útil para outras pessoas, eu o envio ao drupal.org em uma edição, caso contrário, é para meu próprio uso.
Em seguida, submeto o arquivo de correção ao meu controle de versão, juntamente com a alteração do código.
Isso significa que eu posso ver procurando arquivos de correção se algo foi invadido.
Além disso, também adiciono uma lista de hacks à documentação do desenvolvedor do site (você realmente deve ter a documentação do desenvolvedor para o bem de outras pessoas que possam funcionar no site e para si mesmo quando inevitavelmente esquecer as coisas).
Nesta documentação sobre hacks, listo cada hack com o que o hack faz e por que, módulos / arquivos afetados, o nome do arquivo de correção que contém o código de hack e um link para um problema relacionado do drupal.org, se houver um (quase sempre no meu caso existe).
Então você e quem mais trabalha no site no futuro tem uma lista completa de hacks e não precisa se preocupar em quebrar acidentalmente algo com uma atualização.
Então, para o processo de atualização, verifico minha lista de hacks e dou uma olhada rápida nos arquivos de correção em todos os módulos que estou atualizando. Se houver um hack e houver um problema no drupal.org, eu verifico o problema para ver se a versão mais recente inclui o patch. Nesse caso, eu explodo o hack com a atualização e o removo da minha lista de hacks (faça Certifique-se de olhar para o drupal.org confirmar mensagens de que o que foi confirmado era o mesmo que a versão do patch que você está usando, ou pelo menos funcionalmente o mesmo).
Se o patch não foi confirmado, tudo o que tenho a fazer é atualizar os módulos e reaplicar os patches. Em muitos casos, os patches ainda serão aplicados de maneira limpa e o processo é fácil, mas às vezes é necessário rolar novamente os patches para a nova versão e, em seguida, confirmar a nova versão do patch no repositório local (juntamente com a publicação no site relevante). drupal.org, quando aplicável).
Outra coisa que gosto de fazer se tiver patches ou patches mais substanciais que interajam com a funcionalidade do núcleo de um módulo (ou apenas módulos personalizados que se estendem sobre o módulo drupal.org), é verificar as notas de versão do módulo atualizado ( isso significa toda a versão entre a versão atual e a versão para a qual você está atualizando) e verifique se não há nada que possa quebrar seu código. Nota: Atualmente, muitos mantenedores de módulos são bons em fornecer notas de versão completas, mas ainda existem muitas que fazem notas de versão de lixo. Nesse caso, em alguns casos, passo todas as mensagens de confirmação desde a minha versão atual (isso geralmente ocorre apenas nos casos em que tenho código complexo que interage profundamente com outro módulo). Nota:
Em seguida, após a atualização (em uma cópia de desenvolvimento do site), faça um teste completo. Você finalmente aprenderá o que significa completamente depois que alguns erros passarem.
Depois, quando tiver sido testado o suficiente, atualize o site ativo ou atualize suas atualizações locais ou qualquer que seja o processo de implantação.
A razão pela qual todo mundo diz que não faz isso, mesmo que seja mais fácil: porque a maioria das pessoas não tem um sistema como eu descrevi, então quando chega a hora de fazer atualizações ou o site é entregue a outra pessoa para trabalhar isso se torna um pesadelo e é necessário muito tempo (às vezes uma quantidade enorme de tempo) solucionando bugs, rastreando hacks e descobrindo por que eles estão lá, etc.
Se você herdar um site como esse, entenderá completamente :)