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!