Die Entwicklung von Themes für WordPress erfolgt typischerweise in mehreren Instanzen, die jeweils spezifische Funktionen im Arbeitsprozess eines Teams haben. Wir haben euch bereits beschrieben, wie wir verschiedene Arbeitsumgebungen in WordPress definieren und verwenden. Um den Überblick über die Projektstände in den Instanzen zu behalten, wenden wir das Prinzip der Arbeitsumgebungen auch in der Versionsverwaltung für unseren Code an. Zusätzlich kommt eine Projektmanagmentsoftware zum Einsatz, mit der wir Aufgaben zuordnen und erfolgte Arbeitsschritte nachvollziehen können.

Git–Branches für verschiedene Projektstände (main, dev, feature)

Als Werkzeug zur Versionsverwaltung benutzen wir die quelloffene Software Git. Pro Projekt erstellen wir ein Repository in Bitbucket, das uns als Git-Host dient. In einem Repository verwalten wir typischerweise nur das von uns erstellte Theme (andere Komponenten, wie WP-Core, Plugins, Datenbank, Uploads etc. handhaben wir mit anderen Werkzeugen).

Analog zu dem dreistufigen Modell der Arbeitsumgebungen haben wir ein dreistufiges Branch-Modell in Git etabliert. Der Branch main entspricht dem Stand auf dem Production-Server, ist also stets der Stand, der öffentlich zugänglichen Version der Website. Der Branch dev repräsentiert den Stand auf dem Development-Server, entspricht also dem aktuellen Entwicklungsstand, mit dem z. Bsp. Kunden ein neues Feature präsentiert werden kann, bevor es in main überführt und auf den Production-Server gespielt wird.

Screenshot der Branch-Struktur in Bitbucket
Beispiel unserer Branch-Struktur in Bitbucket

Das Branch-Präfix feature benutzen wir für Neu- und Weiterentwicklungen. Soll also eine neue Funktionalität umgesetzt werden, erfolgt dies in einem von dev abzweigendem Branch, der bspw. feature/new-thing heißt. Die Arbeit an Feature-Branches erfolgt in lokalen Arbeitsumgebungen. Einzelne Schritte werden in Commits verfasst und regelmäßig auf den Git-Host gespielt, so dass aktuelle Änderungen stets für das gesamte Team nachvollziehbar sind. Erst wenn ein Feature lokal getestet wurde, wird es in den dev-Branch überführt und auf den Development-Server gespielt.

Je nach Bedarf werden auch weitere Branches oder Branch-Prefixe verwendet, z. Bsp. config für Konfigurationen. Auf diese Weise sind wir flexibel, aber strukturiert.

Zusammenspiel von Versionsverwaltung und Projektmanagement

Als Projektmanagementwerkzeug benutzen wir Jira. Darin legen wir auf Projektebene für jede Anforderung (»Feature«) eine Aufgabe an, führen dort aber auch Support- und Fehlertickets zusammen. Jede dieser Aufgaben in Jira hat eine ID, die wir zur Kennzeichnung von Branches und Commits in Git benutzen und damit eine Zuordnung von Aufgabe und Umsetzung erreichen. So wird etwa das Ticket »ABC-999« im Branch feature/ABC-999 bearbeitet.

Screenshot der automatisch zugeordneten Commits in Jira
Über den Präfix der Ticket-ID (hier HE-18) werden Branches aus Bitbucket automatisch im Jira-Ticket angezeigt

Die Commit-Messages folgen dem Muster <type> <id> <message>. Die Umsetzung von Aufgaben sind vom Typ feature, die Behebung eines Fehlers wird mit fix gepräfixt. Weitere von uns verwendete Commit-Typen sind test, refactor, clean und config. Die ID ist die Ticket-ID. Eine Commit-Meldung für die Umsetzung eine neuen Features sieht also so aus: feature ABC-999 Implement new thing. Dadurch ist die Zuordnung eines Commits zu einer Aufgabe auch später noch unkompliziert möglich. Außerdem können auf diese Weise Bitbucket und Jira zusammengehörige Tasks und Commits in der jeweilegen Benutzeroberfläche anzeigen.

Geschrieben von Konstantin Hanke

Benutzerbild

Konstantin arbeitet als Webentwickler bei kulturbanause. Seine Hauptaufgabe ist die technische Umsetzung von klaren, soliden und effizienten Webauftritten und Website-Komponenten. Darüber hinaus kümmert er sich um die Wartung, Optimierung und Weiterentwicklung von bestehenden Websites. Sein besonderes Interesse gilt der Idee von quelloffener, freier Software.

Feedback & Ergänzungen – 3 Kommentare

  1. Kamran
    schrieb am 30.10.2022 um 13:40 Uhr:

    Hi,
    das Beitrag ist Super. Habt ihr ich diese Sachen beschrieben? „wie WP-Core, Plugins, Datenbank, Uploads etc. handhaben wir mit anderen Werkzeugen).“ Es hätte mich interessiert wie ihr die Plugin u& Datenbank Aktualisierungen macht

    Antworten
    • Anonym
      schrieb am 10.02.2023 um 14:14 Uhr:

      Kann mich dem Vorredner nur anschließen :) Der Beitrag ist super, Einsatz anderer Werkzeuge – wenn das kein Betriebsgeheimnis ist – sehr interessant. Danke!

      Antworten
    • Konstantin Hanke
      schrieb am 10.02.2023 um 14:32 Uhr:

      Besten Dank für die lobenden Worte. Aktuell ist kein Beitrag dieser Art geplant. Aber wir notieren das mal als mögliches Thema für einen zukünftigen Artikel.

      Antworten

Kommentar zu dieser Seite

Wir freuen uns über Anregungen, Ergänzungen oder Hinweise zu Fehlern. Wir lesen jeden Eintrag, veröffentlichen aber nur, was den Inhalt sinnvoll ergänzt.

Website-Projekte mit kulturbanause

Wir wissen wovon wir reden. Wir realisieren komplette Projekte oder unterstützen punktuell in den Bereichen Design, Development, Strategy und Content.

Übersicht Kompetenzen →

Schulungen von kulturbanause

Wir bieten Seminare und Workshops zu den Themen Konzept, Design und Development. Immer up-to-date, praxisnah, kurzweilig und mit dem notwendigen Blick über den Tellerrand.

Übersicht Schulungsthemen →