In diesem Artikel erfährst Du, was die Versionsnummer eines Shopware-Releases an Informationen enthält. Du erfährst, inwieweit Dich das betrifft, und wann Du handeln musst, egal ob Du Extensions entwickelst, eine Agentur betreibst oder Händler bist.
Das Wichtigste vorab: Mit der Veröffentlichung der Version 6.3.0.0 nutzt Shopware SemVer und bringt monatlich eine neue Version.
Falls gewünscht: Eine kurze Auffrischung darüber, warum es überhaupt sinnvoll ist, Software mit Versionsnummern zu versehen und wie die Versionierungsstrategie von Shopware bislang aussah kannst Du hier im ausklappbaren Menü nachlesen.
Das neue Shopware Versionierungs-System
Das neue Versionierungs-System könnte kurz als "SemVer mit Anhang" beschrieben werden. SemVer (semantische Versionierung) ist eine Spezifikation, die den Aufbau einer Versionsnummer definiert, und noch wichtiger: den Informationsgehalt der Erhöhung der einzelnen Stellen der Versionsnummer. Die SemVer-Spezifikation definiert drei Stellen, genannt "Major”, "Minor” und "Patch". Sie werden anhand der folgenden Regeln hochgezählt:

- Major: Wenn inkompatible API-Änderungen durchgeführt wurden
- Minor: Wenn eine neue Funktionalität hinzugefügt wurde, die rückwärtskompatibel ist
- Patch: Wenn rückwärtskompatible Fehlerbehebungen durchgeführt wurden
Unabhängig davon bleibt die "Big Number". Denn Shopware 6 ist nach wie vor das Produkt, allerdings gibt es nun eine Version 6.3.0.0, bei der 3.0.0 der SemVer-kompatible Teil ist.
Die öffentliche API
Was Du im Hinterkopf behalten solltest: Alle Informationen, die die Versionsnummer enthält, beziehen sich immer nur auf die sogenannte "Public API". Diese öffentliche API ist Shopware-Code, mit dem ein Theme oder einer Erweiterung interagiert. Das kann die REST-API sein, aber es existiert auch eine interne API, die hauptsächlich von Plugins genutzt wird. Das ist insofern wichtig, als dass Änderungen, die breaking changes in der privaten API bewirken, unter Umständen lediglich zu einer Erhöhung der Patch-Nummer führen können. Das würde trotzdem Plugins unbenutzbar machen, die die private API von Shopware nutzen. Glücklicherweise gilt es als schlechter Stil und als gefährlich, als Drittentwickler auf die private API einer Software zuzugreifen. Zudem gibt es nur einen verschwindend geringen Anteil an Erweiterungen von Shopware, die das tun. Trotz alledem gibt es nie eine hundertprozentige Sicherheit bei der Aktualisierung von Software. In jedem Fall sollte immer ein Staging-System für den Test eines Updates verwendet werden, bevor es im Live Shop eingespielt wird.
Der Shopware Releasezyklus
Mit der Einführung des neuen Versionierungsansatzes ändert sich auch der Releasezyklus von Shopware. Die neuen Shopware-Versionen werden einmal pro Monat veröffentlicht. Dies kann neue Funktionen enthalten, aber auch ein einfaches Patch-Release sein.
Obwohl neue spannende Funktionen natürlich weiterhin angekündigt und vermarktet werden, bekommst Du sie nun potenziell früher oder, in einigen Fällen, in weiter fortgeschrittener Reife. All das bedeutet nicht, dass Händler ihre Shops einmal im Monat updaten sollten. Es bedeutet, dass Funktionen und Fehlerbehebungen regelmäßiger veröffentlicht werden und dabei allen erforderlichen Support und Testaufwand erhalten.
Händler und SemVer
Ungeachtet des Versionierungs-Schemas: Es ist immer unabdingbar, jegliche Updates eines Shops immer zuerst in einem Staging-System zu testen. Davon abgesehen erhältst Du als Händler nun belastbarere Informationen als zuvor. Wenn sich eine der letzten beiden Zahlen ändert, kannst Du die neue Version installieren, und weißt, dass das mit keinen größeren Änderungen in Erweiterungen und Themes einhergeht. Ein Wechsel von 6.3.0.0 auf 6.3.0.1 enthält also nur Fehlerbehebungen, und auch ein Wechsel von 6.3.0.0 auf 6.3.1.0 enthält neue Funktionen, die ohne Änderungen an Erweiterungen und Themes auskommen.
Plugin Entwickler und SemVer
Was muss ich als Plugin-Entwickler beachten?
Mit den neuen Anpassungen werden wir in Zukunft auf die Veröffentlichung eines „Release Candidate“ verzichten. Plugin-Entwickler haben die Möglichkeit, den aktuellen Entwicklungsstand jederzeit über den Master-Branch auf GitHub einzusehen und die Kompatibilität ihrer Plugins zu prüfen. Die Kompatibilität der Plugins kann nach wie vor über Composer gesteuert werden. Hier empfiehlt sich eines der folgenden Szenarios:
~6.3.0: Mit dieser Konfiguration wäre das Plugin für alle Minor-Versionen innerhalb des 6.3 Major Zyklus als kompatibel markiert. Dazu gehören alle Minor und Patch Versionen in dem 6.3.x.x Raster.
~6.3.1.0: Auch wenn alle Minor Versionen abwärtskompatibel sind, kann es hin und wieder zu Änderungen in der Logik kommen. Wer sicher gehen möchte, dass ein Plugin mit einer bestimmten Minor-Version kompatibel ist, kann durch eine genauere Angabe über vier Ziffern sein Plugin für bestimmte Minor-Versionen markieren. Das Plugin ist dann kompatibel mit allen 6.3.1.x Patch-Versionen innerhalb der Minor-Version.
Detaillierte Informationen zu der Versionskonfiguration findest Du auch in der offiziellen Dokumentation von Composer. Das Update der 6.3.0.0 ist für Anfang August geplant, mit welchem diese neuen Anpassungen in Kraft treten. Falls Du noch Fragen zum Artikel oder Shopware generell hast, besuche uns gern auf dem Slack Community Workspace!