「コアをハッキングすることでしか解決できない問題はありませんか?
この質問に答えるために、はい、あなたは時々あなたがコア(またはcontribモジュール)をハックしなければならないことを意味する克服しなければならない問題があります。
この場合、ハッキングされたコードに多くのコメントを入れて、変更したものをすべて文書化する限り、ハッキングしても大丈夫だと思います。
たとえば、コアまたはcontribの変更については、パッチを作成します。それが一般的で他の人々にとって有用である場合、私は問題でdrupal.orgにそれを提出します。
次に、コードの変更とともに、パッチファイルをバージョン管理にコミットします。
これは、何かがハッキングされた場合にパッチファイルを探すことで確認できることを意味します。
それに加えて、ハックのリストをサイトの開発者ドキュメントに追加します(サイトで動作する可能性のある他の人のために、そして必然的に物事を忘れる場合は自分のために開発者ドキュメントを用意する必要があります)。
このハックのドキュメントでは、ハックの内容と理由、影響を受けるモジュール/ファイル、ハックコードを含むパッチファイルの名前、および関連するdrupal.orgの問題へのリンク(ほぼ常に)私の場合はあります)。
そうすれば、あなたと将来このサイトで働く他の誰もがハッキングの完全なリストを手に入れることができ、アップデートで何かを誤って壊すことを心配する必要はありません。
次に、更新プロセスのために、ハッキングのリストを確認し、更新しているすべてのモジュールのパッチファイルをすばやく確認します。ハッキングがあり、drupal.orgの問題がある場合、最新バージョンにパッチが含まれているかどうかを確認します。その場合、更新でハックを吹き飛ばし、ハッキングのリストから削除します(make drupal.orgのコミットメッセージを見て、コミットされたものが使用しているパッチのバージョンと同じであるか、少なくとも機能的には同じであるかを確認してください。
パッチがコミットされていない場合は、モジュールを更新してパッチを再適用するだけで済みます。多くの場合、パッチはきれいに適用され、プロセスは簡単ですが、時々、新しいバージョンのパッチを再ロールしてから、ローカルリポジトリにパッチの新しいバージョンをコミットする必要があります(関連するdrupal.orgの問題(該当する場合)。
モジュール(またはdrupal.orgモジュールの上に拡張するカスタムモジュール)のコア機能と相互作用するより実質的なパッチまたはパッチがある場合、私がやりたいもう1つのことは、更新されたモジュールのリリースノート(つまり、現在のバージョンと更新先のバージョンの間のすべてのバージョンを意味します)、コードを壊す可能性のあるものが何もないことを確認します。注:最近、多くのモジュールメンテナーが完全なリリースノートを提供してくれますが、まだリリースノートをゴミにする多くの人がいます。この場合、場合によっては、現在のバージョン以降のすべてのコミットメッセージを調べます(これは、通常、別のモジュールと深くやり取りする複雑なコードがある場合のみです)。注意:
次に、更新後(サイトの開発コピー上)、徹底的にテストします。いくつかのバグがすり抜けた後、最終的に何を意味するかを学習します。
その後、十分にテストされたら、ライブサイトをアップグレードするか、ローカルの更新を展開するか、展開プロセスがどうであろうと。
簡単だとしても、誰もがそれをしないと言う理由:ほとんどの人は私が概説したようなシステムを持っていないので、更新を行う時が来たとき、またはサイトが他の誰かに渡されて働くそれは悪夢になり、バグを解決し、ハックを追跡し、それらが存在する理由を解明するなど、多くの時間(場合によっては膨大な時間)を費やす必要があります。
そのようなサイトを継承した場合、完全に理解できます:)