Ich habe vor einiger Zeit ein Modul erstellt und es hat erst seit ungefähr einem Monat eine Version 7.x-1.x-dev auf Drupal.org. Es gibt bereits eine Reihe von gemeldeten Downloads und Installationen für dieses Modul, daher möchte ich sicherstellen, dass die Handvoll Benutzer, die dieses Modul bereits verwenden, in der nächsten Entwicklerversion, die ich erstellen muss, noch berücksichtigt werden. Die neue Version wird eine neue Modulabhängigkeit haben, die von einem anderen Projekt stammt (dh nicht als ein Submodul von mir enthalten ist). Während ich normalerweise eine 2.x-Version erstellen würde, wenn das Modul eine stabile Version hätte, war es nur in dev. Füge ich einfach die neue Abhängigkeit im 1.x-dev hinzu oder erstelle ich einen 2.x-dev?
7
Antworten:
Für einen solchen Fall gibt es kein sanktioniertes Protokoll. Ich denke nur daran, die Auswirkungen zu minimieren.
Bedenken Sie, dass Benutzer selbst dann, wenn Sie einen neuen Zweig erstellen, möglicherweise aktualisieren und keine neue Abhängigkeit erkennen und Ihr Modul aufgrund nicht erfüllter Abhängigkeiten möglicherweise stillschweigend deaktiviert wird. Dies geschah mit der Aktualisierung der Ansichten von 6.x-2.x auf 6.x-3.x, bei der eine Abhängigkeit von ctools hinzugefügt wurde. In diesem Fall war die Auswirkung gering, da normalerweise Werkzeuge vorhanden sind.
In der Dokumentation empfehle ich zusätzlich zum Änderungsprotokoll oder Upgrade-Dokument auf der Projektseite, es den Versionshinweisen hinzuzufügen. Da können sie beim Aktualisieren mit Drush leicht gelesen werden.
Wenn die von Ihnen eingeführte Abhängigkeit ein beliebtes Modul ist, können Sie die Auswirkungen verringern, indem Sie die neue Abhängigkeit in hook_update_N aktivieren oder einen Fehler auslösen, falls dieser nicht verfügbar ist. Hier ist ein ungetesteter Code:
quelle
Abgesehen von dem, was @jonhattan erwähnt hat, würde ich eine weitere Methode vorschlagen, um dies zu tun. Fügen Sie diese Abhängigkeit in die Datei mymodule.info ein. Nehmen wir an, Sie möchten eine neue Abhängigkeit zu Link, E-Mail und Adressfeld hinzufügen.
Versuchen Sie nun in hook_requirments, die Module automatisch zu aktivieren, falls vorhanden. Bitte beachten Sie, dass, da wir Abhängigkeiten in der Info-Datei hinzugefügt haben, diese aktiviert werden, wenn sie zum ersten Mal installiert werden. Aber sonst würden sie "verschlossen" erscheinen. In diesem Fall müssten wir sie automatisch aktivieren. Nachdem @jonhattan geantwortet hat, können Sie versuchen, dies in hook_update_N zu tun und eine Ausnahme auszulösen, wenn dies fehlschlägt.
Das Problem mit der obigen Methode ist jedoch die Benutzererfahrung. Sie können in der Ausnahmemeldung keine "Links" ausgeben. Ein weiterer Grund ist, dass dies leicht vermieden werden kann, indem der Benutzer unmittelbar vor dem Versuch einer Aktualisierung informiert wird. Für diesen Fall haben wir hook_requirements.
Ich werde ein Beispiel zur Verwendung von hook_requirements für den von mir erwähnten Beispielfall bereitstellen.
Jetzt ist es auch möglich, jedes Modul einzeln zu aktivieren und die Nachricht richtig zu gestalten, sodass nur die fehlenden Module in der Nachricht angezeigt werden.
quelle