WordPress Core, Git und Docker

Die Entwicklung am WordPress Core ist nun endlich auch mit Docker und Git möglich. Seit gefühlten Ewigkeiten ist das Aufsetzen einer Entwicklungsumgebung, um bei einem WordPress Contributer Day bei der Core-Entwicklung mitmachen zu können, immer mit der Einrichtung von VVV verbunden (gewesen). Neben Vagrant und Virtualbox brauchte man zudem noch wenigstens 8GB Arbeitsspeicher, ein oder zwei richtige Einstellungen im Bios des Computers und sehr viel Geduld. Das letztgenannte Requisit ist eher keine Stärke von mir und so verwundert es einige wahrscheinlich auch nicht, dass ich bei der geringsten Aussicht auf Änderung, sofort interessiert war.

Vom Interesse zur Anwendung

Vom reinen Interesse bis zur tatsächlichen Nutzung ist es aber oftmals ein langer Weg (oder es fehlt einfach an den richtigen Gelegenheiten). Am vergangenen Wochenende war ich beim WordCamp Verona 2019. Im Vorfeld hatten mich die Organisatoren gefragt, ob ich mich beim Contributor Day um den Core-Tisch kümmern würde, was ich natürlich gern bejaht habe. Nur der Gedanke an die übliche Prozedur, interessierten Anfängern den ganzen Vormittag über bei der Einrichtung von VVV zu helfen, war nicht so einladend. Zeit also, neue Wege aufzuzeigen und zu testen. Und das Ticket dazu scheint auf bestem Wege in die neue WordPress Version 5.3 zu sein.

Vorbereitung und Installation

Für viele ist das eher der problemfreie Teil der ganzen Geschichte. Ich habe zwar auch die Folien zum Thema online verfügbar gemacht, aber ich beschreibe die ganze Prozedur in den folgenden Abschnitten lieber im Detail.

Als erstes sollte man sich versichern, einen aktuelle Docker-Version installiert zu haben. Zudem gibt es wohl auch Pakete, bei den docker-compose nicht enthalten ist. Das Paket muss dann separat installiert werden. Als nächstes ist Node.js dran. Die LTS-Version ist völlig ausreichend und hat (bei mir) keine Probleme verursacht. Ansonsten braucht ihr auch git … ich hatte das erst nicht auf den Folien, weil ich davon ausgegangen bin, dass heutzutage so ziemlich jeder Entwickler von git Gebrauch macht. Beim Contributor Day in Verona bin ich vom Gegenteil überrascht worden.

Der nächste Schritt besteht darin, den WordPress Mirror auf Github zu klonen:

git clone https://github.com/WordPress/wordpress-develop.git

Danach geht es gleich richtig zu Sache:

npm install
npm run build:dev
npm run env:start
npm run env:install

Diese Befehlsfolge kümmert sich um eine Ersteinrichtung. Im Normalfall braucht man dann nur noch

npm run env:start / npm run env:stop

Falls ihr alles zurücksetzen wollt, könnt ihr

npm run env:reset

ausführen und mit dem obigen Block wieder bei Null anfangen.

Mit Docker von 0 auf 100 in 10 Minuten

Einige Teilnehmer hatten in zirka 10 Minuten ihr Computer soweit, dass er beim Besuch der Adresse

http://localhost:8889/

eine fertige WordPress-Testinstallation anzeigte. Den WordPress Admin kann man dann auf

http://localhost:8889/wp-admin/

mit dem Benutzernamen admin und dem super-geheimen Paßwort password öffnen.

Einige Teilnehmer hatten allerdings auch Probleme. So gab es beispielsweise in einigen Fällen bereits beim zweiten Befehl einen Abbruch mit der Fehlermeldung, dass phantom.js nicht installiert werden konnte. Ich habe die entsprechenden Teilnehmer dann darum gebeten, das Ticket mit ihrem Feedback anzureichern. Bei der Vorbereitung hatte ich selbst Probleme am Ende der Installation, weil das Skript davon ausgeht, das man auf seinem System mit der UID 1000 unterwegs ist. Auf meinem Rechner habe ich aber die UID 1001. Nach der notwendigen Korrektur in der Datei docker-compose.yml lief dann jedoch alles gut durch.

Der Git-Workflow

Manch einer muss sich vielleicht auch erst an den neuen Workflow gewöhnen. Es ist aber wirklich nicht so schwer:

git checkout -b meine-korrektur
git add .
git commit -m "Beschreibung der Änderung"
git diff master meine-korrektur > mummer-des-tickets.diff

Exerziert man das eine Weile, öffnet einen Branch (hier „meine-korrektur“), fügt nach erfolgreicher Änderung (mit UnitTests, wenn möglich) die geänderten Dateien zum nächsten Commit hinzu, kann man ganz einfach ein Patch erstellen, ohne ständig – wie früher – die Codebase wieder zurücksetzen zu müssen.


Ich füge dem Artikel bei Bedarf noch mehr Informationen hinzu. Schreibt einfach in die Kommentare, falls irgendetwas unklar ist. Wer möchte, kann noch viele weitere Infos (auf Englisch) im Core Contributor Handbook finden. Viel Spaß beim Stöbern!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert