Wie versioniere ich mein Plugin?

Der WordPress-Welt mitzuteilen, dass ein Plugin in einer neuen Version erschienen ist, macht Spaß. Vor allem wenn jeder davon einen Mehrwert hat. Gleichzeitig ein System für die Versionierung zu haben tut Entwickler und Kunden gut. Es bringt ein sicheres Gefühl und Ordnung in das Versions-Chaos.

Versionen am Plugin eintragen

Innerhalb eines Plugins können Plugindaten per Kommentar beschrieben werden. Hierzu zählt auch die Versionsnummer:

Meistens ist diese mit drei Stellen versehen – Major-, Minor- und Patch-Version. Die Major-Version ändert sich oft, wenn sich der Code stark verändert. So weiß der Entwickler und manch ein Anwender, dass ein Update von 1.x.x auf 2.x.x Probleme mit sich bringen kann. Ein solches Schema im eigenen Plugin macht die Versionierung sehr viel wertvoller. Während andere Plugins sinnlos hoch zählen, herrscht hier die Regel der Semantischen Versionierung, welche viele Entwickler kennen.

Eine Erhöhung der Minor-Version z.B. von 1.5.x auf 1.6.x beschreibt nach diesen Regeln, dass ein neues Feature in das Plugin gekommen ist. Die erweiterte Funktionalität berührt das Bisherige kaum oder gar nicht und darf keine Probleme beim Update mit sich bringen. Die Versionen sind zu einander kompatibel, was jedem Entwickler und Anwender da draußen hilft: Updates können unbedenklich gemacht werden.

Ebenso ist es bei der Patch-Version. Wird diese erhöht, zum Beispiel von 32.14.0 auf 32.14.1, dann sollte jeder ein Update machen. Patches beinhalten Sicherheitsupdates oder Bugfixes, die jeder gern haben möchte. Hierbei geht nichts kaputt, es wird sogar repariert.

PHPSemVer als Hilfsmittel

Wie stabil ein neues Release vom Plugin gegenüber dem alten ist, lässt sich mit dem Tool „PHPSemVer“ testen: https://github.com/sourcerer-mike/phpsemver

Der Code wird analysiert und dessen Änderungen mit zur semantischen Versionierung passenden Rückmeldungen versehen. Fällt eine Klasse, eine Methode oder Funktion weg, so fehlt etwas. Ein Major-Change, weil alle vorherigen Versionen mit dieser neuen inkompatibel sind. Der Aufruf der entfernten Funktion würde zu Fehlern führen. Wird jedoch etwas hinzugefügt, so scheint es sich um einen Minor-Change zu handeln. Eine neue Klasse oder Funktion kann dies bewirken und stört alte Versionen nicht. Die Ausgabe vom Tool liefert eine Übersicht darüber:

 

Hier kann der Entwickler sich nun überlegen, ob er die Major-Version erhöht. Er kann aber auch die verlorenen Klassen und Funktionen wiederherstellen und sein Plugin kompatibel mit den Vorgängern halten. Da liegt es am Anspruch des Entwicklers selbst wie er vorgehen möchte.

Besseres Deployment als Nebeneffekt

Durch die semantische Versionierung und dem Analyse-Tool geht das Deployment viel einfacher von der Hand. Dem Kunden gegenüber kann sogar genannt werden wie schwierig oder risikoreich der Wechsel sein wird. Die Community kann sich auf das Plugin verlassen und auch die eigenen Skripte, welche sich in Filter oder Actions reinhängen. Nichts ist schlimmer als plötzlich verschwindende Filter oder Funktionen, die Fehler erzeugen und die Seite lahm legen.

Diese Rahmenbedingungen sind keine Zwangsjacke in die jetzt jeder Entwickler rein rennen soll, weil der Trend dahin geht. Es ist eine Komfort-Zone, in der der Plugin-Autor leben kann, wenn er möchte. Zumindest, wenn er diese Art der Stabilität und Wartbarkeit für sein Plugin vorsehen möchte und auch entsprechende Vorteile seinen Kunden vorhalten mag 😉

Hinterlasse einen Kommentar

*

Nächster ArtikelThemechecker - Alles klar mit meinem Theme?