Zum Glück passiert es relativ selten, dennoch kommt es hin und wieder vor, dass man einzelne Contrib-Module aus dem Update-Prozess ausnehmen muss!
Dies ist beispielsweise der Fall, wenn ein Patch dringend auf ein Modul angewandt werden muss, dieser aber nicht zeitnah vom Modul-Maintainer in ein Release eingebracht wird.
Anforderungen
Hier gibt es zahlreiche verschiedene Lösungsmöglichkeiten, um einen solchen Ausschluss durchzuführen.
Wichtig sind dabei (aus meiner Sicht) folgende Kriterien:
- Dokumentierbarkeit - Es muss ersichtlich sein, warum und bis wann ein Modul nicht aktualisiert werden soll. (Insbesondere Bezug zum Issue)
- Verständlichkeit & Fehlerresistenz - Es sollte sichergestellt werden, dass ein Update nicht doch durch einen Flüchtigkeitsfehler oder Unwissen durchgeführt wird
- Drush-Integration - Im Optimalfall sollte die Lösung auch für die Aktualisierung über Drush funktionieren
Pro & Contra
Folgende Wege gibt es (gerne per Kommentar ergänzen):
Lösung | Pro | Contra |
---|---|---|
update_advanced.module verwenden | Verständliche UI, Dokumentation gut möglich, sehr flexibel und modular, zentraler Ort für Dokumentation & Konfiguration, einfache Installation | Auswirkung auf DRUSH unklar **muss ich noch testen** - Feedback gerne per Kommentar! |
"project" - Attribut in .info-File entfernen / ändern (Details: http://www.netstudio.gr/en/blog/excluding-modules-being-updated) | Sehr robust, Dokumentation gut möglich, Auswirkung auf DRUSH und Drupal UI | Änderung am Modul nötig |
drush pm-update --lock=modulename (Details: http://blog.wassill.eu/en/blog/short-excludes-modules-drush-update-09-0…) | Optimale Lösung für Drush, schnell und einfach | Kein Einblick in die Ausschlüsse via Drupal UI, keine Dokumentation der Gründe und Kriterien, nur für Profis verständlich |
Das Modul in sites/all/modules/contrib verschieben (Details: http://www.pixelite.co.nz/article/remove-custom-drupal-modules-and-them…) | Einfache und robuste Lösung | Keine Dokumenation, Verschieben bereits aktivierter Module ist nicht immer ohne Probleme möglich (Stichwort "Registry" / "Registry Rebuild") |
hook_update_projects_alter(&$projects) implementieren (Details: http://www.grahl.ch/comment/reply/168#comment-form) | Robust und Dokumentation möglich | Nicht selbsterklärend, weitere Modifikation des Moduls nötig, Fehlendes Modul ist Aktualisierungsliste wirft Fragen auf |
Meine Empfehlung
Alle Methoden sind für bestimmte Fälle denkbar, meine Favoriten sind die Optionen 1 und 2.