jadice server nutzt als Basis für Versionsangaben das Konzept des Semantic Versioning. Semantic Versioning beschreibt die Syntax und Semantik einer Versionsnummer. In Kürze zusammengefasst wird eine dreistellige Versionsnummer definiert, die wie X.Y.Z formatiert ist. Der jadice server erweitert diesen Standard um eine weitere Stelle, die die Produktgeneration beschreibt und den von Semantic Versioning spezifizierten Stellen vorangestellt wird. Es ergibt sich die Form G.X.Y.Z (Generation.Major.Minor.Patch).
Im Folgenden wird die Semantik der einzelnen Stellen kurz zusammengefasst (ausführliche und komplette Definition siehehttp://semver.org/):
- G.X.Y. Z
-
Diese Stelle ist der Patch-Level und ist die letzte Stelle der Versionsnummer. Sie wird hochgezählt, wenn ein Release lediglich abwärtskompatible Bugfixes einführt. Ein Bugfix ist eine Änderung beziehungsweise Korrektur internen Verhaltens.
- G.X.Y.Z
-
Die vorletzte Stelle ist der Minor-Level. Sie kann Änderungen auf Patch-Level beinhalten und wird hochgezählt, wenn folgende Änderungen eingeführt wurden:
-
Abwärtskompatible Erweiterung der öffentlichen API.
-
Einführung abwärtskompatibler Funktionalität.
-
Teile öffentlicher API wurde als „deprecated“ markiert.
Optional kann die Stelle hochgezählt werden, wenn signifikante interne Verbesserungen oder Funktionalität (ohne Änderung der öffentlichen API) eingeführt wurde.
Sobald der Minor-Level hochgezählt wurde, wird der Patch-Level (Z) auf 0 zurückgesetzt.
-
- G.X.Y.Z
-
Diese Stelle ist der Major-Level und wird hochgezählt, wenn nicht abwärtskompatible Änderungen an der öffentlichen API vorgenommen wurden. Major-Versionen können Änderungen auf Minor- (Y) und Patch-Level (Z) beinhalten. Sobald der Major-Level (X) inkrementiert wurde, werden Minor- (Y) und Patch-Level (Z) auf 0 zurückgesetzt.
- G.X.Y.Z
-
Diese erste Stelle wird von jadice server hinzugefügt und beschreibt die Produktgeneration. Ein Sprung auf diesem Level wird dann vollzogen, wenn die Anzahl der Änderungen auf Major-Level eine einfache Migration nicht mehr zulässt. Der Generationswechsel beinhaltet Änderungen auf den anderen Levels und setzt diese auf 0 zurück.