Wie füge ich ein Dev-Modul in eine make-Datei ein?

6

Ich verwende Drush make-Dateien, um die Entwicklung meiner Website zu automatisieren.

Ich habe dieses Tutorial befolgt , um eine Make-Datei über Drush zu erstellen.

Alles funktioniert einwandfrei, außer wenn ich die make-Datei ausführe, sagt Drush, dass die Entwicklungsversionen von Modulen nicht gefunden werden können (für die Module, in denen ich die Dev-Version verwendet habe).

Laut diesem Tutorial müssen Sie die Git-Adresse und die Revisions-ID des Moduls angeben. Wie machst du das?

Schritte, die ich unternommen habe

Angenommen, ich möchte die Version 7.x-1.x-dev des Fences- Moduls einbinden . Dieses Entwicklungsmodul wurde am 30.09.2013 veröffentlicht.

Auf der Projektseite gibt es eine Option namens Alle Releases anzeigen . Auf dieser Seite ist jedoch keine der Veröffentlichungen vom 30. September 2013 datiert. Die Projektseite enthält auch Links zu einer Git-Seite für das Projekt. Dies scheint jedoch eine Weile nicht aktualisiert worden zu sein, da das neueste Update vor 15 Monaten war.

Wie finde ich die Git-Adresse für dieses Dev-Modul oder gibt es eine andere Möglichkeit, sie in meine make-Datei aufzunehmen?

big_smile
quelle

Antworten:

17

Sie sind fast da - was Sie zu Ihrer make-Datei hinzufügen müssen, sieht so aus und Sie müssen die Git-URL und die Commit-ID angeben.

projects[path_breadcrumbs][version] = "3.x-dev"
projects[path_breadcrumbs][download][type] = "git"
projects[path_breadcrumbs][download][url] = "http://git.drupal.org/project/path_breadcrumbs.git"
projects[path_breadcrumbs][download][revision] = "c9c570b0b4bde1df0e5a322ab90197d7fc1cf9c6"

Um dies zu finden, gehen Sie zur Projektseite auf drupal.org und wählen Sie "Commits anzeigen", z Geben Sie hier die Bildbeschreibung ein

Wählen Sie auf der nächsten Seite diejenige aus, die Sie interessiert und die den Status des Moduls widerspiegelt, das Sie Ihrer make-Datei hinzufügen möchten. In diesem Beispiel greife ich zum letzten Commit:

Geben Sie hier die Bildbeschreibung ein

und ich klicke auf den Link 'commit bdcf88a', der mich zu Folgendem führt:

http://drupalcode.org/project/path_breadcrumbs.git/commit/bdccf8a

Jetzt weiß ich, dass der [Download] [URL] ist:

http://drupalcode.org/project/path_breadcrumbs.git

und der vollständige Hash für das Commit, das ich suche, ist:

bdccf8a901b6d2359b6da195d23cadf7dd90c4ec

- -

Weitere Aktualisierungen nach Bedarf - Wenn Sie nach einem bestimmten Entwicklungszweig suchen, möchten Sie möglicherweise zur Befehlszeile wechseln, um einen rekursiven Klon auszuführen, um sicherzustellen, dass Sie alle Zweige erhalten. Nach dieser Frage:

Wie kann ich einen Entwicklungszweig ziehen?

Ich werde den git 7.x-1.x-Zweig rekursiv ziehen

git clone --recursive --branch 7.x-1.x http://git.drupal.org/project/fences.git

Jetzt kann ich sehen, welche Filialen verfügbar sind:

git branch -r
  origin/1343724-region
  origin/7.x-1.x
  origin/HEAD -> origin/master
  origin/master

Jetzt kann ich diesen Zweig auf 7.x-1.x auschecken und das Protokoll überprüfen, das mir das letzte Commit und das Protokoll gibt, das zum Generieren des Entwicklungs-Snapshots verwendet wurde.

git checkout 7.x-1.x
git log

  commit 67206b5220cbebf52e8e6a290ccb977b2420b2ad
  Author: JohnAlbin <virtually.johnalbin@gmail.com>
  Date:   Tue Sep 4 13:44:40 2012 +0800

      Fix code comments on figcaption.

Das Datum unterscheidet sich von dem, was Sie möglicherweise auf der Projekthomepage sehen, nur weil dies ein automatischer Entwicklungsschnappschuss ist, der von den Drupal.org-Git-Bots erstellt wurde. Der Entwicklungsschnappschuss wird jedoch immer aus dem Zweig mit derselben Versionsnummer und dem '-dev erstellt 'part wird niemals im Filialnamen verwendet.

schnippy
quelle
Vielen Dank, aber gilt dies für alle Module. Bei Fences ist die neueste Entwicklungsversion beispielsweise der 30. September 2013, aber wenn ich auf View Commits klicke, ist die neueste Version vom 4. September 2012, also ~ 1 Jahr früher. Was kann ich in solchen Situationen tun? Vielen Dank für jede Hilfe, die Sie anbieten können.
big_smile
1
Wenn Sie das Commit / die Revision nicht angeben, erhalten Sie immer nur die neueste Entwicklungsversion.
Benjamin
@ben, wie würden Sie es in der make-Datei deklarieren. Wenn ich den Befehl Drush make verwende und ihn dann drush ausführe, heißt es, dass er nicht gefunden werden kann. Ich denke, er muss in der make-Datei auf besondere Weise deklariert werden. Vielen Dank für jede Hilfe!
big_smile
@schnippy Danke, dass du diesen tollen Leitfaden gepostet hast. Ich habe es sehr sorgfältig verfolgt, kann es aber nicht zum Laufen bringen. Folgendes habe ich in meine make-Datei eingefügt: projects[fences][version] = "1.0+6-dev" projects[fences][download][type] = "git" projects[fences][download][url] = "http://drupalcode.org/project/fences.git" projects[fences][download][revision] = "67206b5220cbebf52e8e6a290ccb977b2420b2ad" Es scheint korrekt zu sein, aber ich kann es nicht zum Laufen bringen? Vielen Dank für jede Hilfe, die Sie anbieten können.
big_smile
1
@big_smile hier ist ein Beispiel. gist.github.com/benjy14/7941404
benjy
2

Die aktuelle Version von Drush erfordert nur den Zweignamen und den Commit-Hash der Version des Moduls, da Drush Make jetzt standardmäßig Git verwendet und den Pfad zum Git-Repo finden kann.

projects[myproject][download][branch] = 7.x-1.x
projects[myproject][download][revision] = abcd123
Nielsonm
quelle
1

Schnippys Antwort ist richtig und sollte akzeptiert werden. Die obigen Anweisungen gelten für alle Module. Die einzige verbleibende Verwirrung ist das Datum 2013-Sep-30, das meines Erachtens ein Artefakt des Drupal.org-Upgrades auf Drupal 7 ist. Auf jeden Fall sagt Ihnen dieses Datum nur, dass drupal.org an diesem Datum eine Veröffentlichung verpackt hat . Das letzte Commit (30.09.2012) stellt den neuesten Code dar, der für dieses Modul verfügbar ist. Selbst wenn eine Version gepackt und mit einem späteren Datum gekennzeichnet ist, enthält sie keinen neueren Code - es gibt keinen neueren Code als das letzte Commit.

greg_1_anderson
quelle
0

IMHO ist es viel besser, DO-Releases anstelle von GIT-Filialen herunterzuladen.

Wenn Sie die Kernversion (die üblichste) deklariert haben, erzwingt diese Zeile das Herunterladen des 2.x dev-Zweigs des fboauth-Moduls:

projects[fboauth][version] = 2.x-dev
Alvaro J Hurtado Villegas
quelle
Das Problem bei diesem Ansatz ist, dass Sie nicht an eine bestimmte Entwicklungsversion gebunden sind. Wenn die Betreuer eine Reihe von Commits für diesen Zweig vornehmen, werden beim nächsten Ausführen von drush make die neuen Änderungen heruntergeladen, wodurch Ihre Site möglicherweise beschädigt wird.
Brian
Möglicherweise, aber Sie sollten die Hauptversion angeben, damit die API keine Änderungen aufweist.
Alvaro J Hurtado Villegas