Semantische Versionierung

Seit 3.0 versuchten die Entwickler weitreichende Änderungen in der dokumentierten APIs zu vermeiden. Aber diverse Plugins und Module machten unerwartete Probleme, wodurch jede größere Änderung unbeabsichtigte Konsequenzen hatte.

Craft 3.0 ist seit 2,5 Jahren erhältlich und in der Zeit sind fünf große Releases mit teils weitreichenden Änderungen erschienen. Für den Kunden ist es nur ein Update von 3.2 zu 3.5, aber unter der Haube ist viel passiert und vielleicht gibt es mit Plugins Problemen, die im schlimmsten Fall dazu führen, dass die Website nicht mehr funktioniert. Gerade WordPress-Dienstleister kennen dieses Problem.

Ab Craft 4 und Commerce 4 ändert Pixel & Tonic, wie sie die großen Updates kennzeichnen. Rund zweimal im Jahr soll es diese Updates geben, die dann als Major-Releases behandelt werden. Sprich das nächste Update mit weitreichenden Änderungen und Neuerungen nach Craft 4.0 wird 5.0 und nicht 4.1.

Das bedeutet:

  • Plugin-Entwickler müssen Updates veröffentlichen, aus denen hervorgeht mit welchen Craft-Versionen sie kompatibel sind.
  • Webentwickler können die Websites erst auf die neuste Craft-Version aktualisieren, wenn alle installierten Plugins Kompatibilitäts-Updates veröffentlicht haben. Dadurch soll verhindert werden, dass ein die Website aufgrund eines nicht kompatiblen Plugins nicht mehr funktioniert.
  • Dadurch wird es auch einfacher herauszufinden, welche Plugins von den Entwicklern nicht mehr vertrieben werden, da diese keine Updates für die nächste Craft-Version erhalten.

Auch in Zukunft soll es Minor-Releases geben, diese werden aber wirklich nur Kleinigkeiten verbessern:

  • X.0.0 (Major): Große Änderungen und Neuerungen, wie etwa Craft 3.4 und 3.5. Ungefähr zweimal pro Jahr.
  • X.Y.0 (Minor): Kleinere Änderungen, wo Updates aber keine Probleme darstellen. Werden alle paar Wochen veröffentlicht.
  • X.Y.Z (Patch): Reine Fehlerbehebungen, die kurzfristig wenn nötig veröffentlicht werden.

Fazit

Richtig angewandt kann die Semantische Versionierung sehr sinnvoll sein, da alle Major-Releases miteinander kompatibel sein müssen. Und die Minor-Releases keine Breaking-Changes aufweisen dürfen. Für den Nutzer sollte also der große Vorteil gegeben sein, dass man künftig eindeutige Aussagen treffen kann, ob Plugins und CMS miteinander kompatibel sein werden. Falls nicht, kann man ggf. frühzeitig nach Plugin-Alternativen suchen oder andere Lösungen ausloten.

Der bisherige Versionssprung von 3.1 auf 3.2 wird mitunter bei Kunden oder Privatusern als zu gering erachtet und daher mal schnell auf aktualisieren geklickt. Ist der Wechsel von 3.X auf 4.X ist möglicherweise etwas mehr Respekt da und wenn nicht beim Kunden, dann eben beim Dienstleister, der dann eher mal die Release-Notes vor dem Update liest.

Gerade in den ersten Jahren nach der Umstellung erwarte ich verwirrte Kunden, wenn auf einmal innerhalb eines Jahres erst auf Craft 4 und dann auf Craft 5 aktualisiert wird. Im Folgejahr hätte man dann Craft 6 und 7 und so weiter und so fort. Positiv daran ist, dass so auch gezeigt wird, wie aktiv Craft CMS gewartet und verbessert wird. Die Zeiten, wo alle paar Jahre eine Nachfolger mit einer neuen Versionsnummer erscheint und dieser Release entsprechend gefeiert wird, sind auch vorbei. Wir leben in Zeiten von Abo-Modellen wie Adobe Creative Cloud oder PhpStorm. An die hohe Versionsnummer, die wir dann in paar Jahren im Craft-Ökosystem haben werden, gewöhnt man sich auch schnell. Als Vergleich verwaise ich gerne auf iOS und dem iPhone.

Konservative Seelen werden aber die gefühlte Sicherheit vermissen, die etwa Craft 3 ausstrahlte. Ein System was bald drei Jahre ein treuer Begleiter ist, wo dann aber große Änderungen wie Craft 3.5 vielleicht etwas untergingen.

Foto von Thomas Sausen

Selbstständiger Webentwickler, der 2005 mit WordPress-Websites anfing, dann zu ExpressionEngine wechselte und 2013 sein Herz an Craft CMS verlor. Als Gründer von Craftentries, berichtet er seit 2015 über das Craft-Ökosystem.

Thomas Sausen

Webentwickler