Main /

Version

Version

Version

Hier geht es um Versionsnummern in Software Projekten.

Semantic versioning

Jeder schreibt seine eigenen Versionsnummern. Manche starten mit 1, andere mit 0, es soll sogar Projekte ohne Versionsnummer geben. Es gibt Projekte, die springen in den Versionen von 4.1 zu 2000(5) zu XP(6) zu 7 zu 8 zu 10. Wo ist die 9? Ausgelassen wegen interner Sorgen.

Oder traue keiner Version unter 3...

Anderes Beispiel ist TeX, das nähert sich mit der Version der Kreiszahl PI an.

Dabei gibt es eine schöne Seite: https://semver.org/lang/de de die sehr schön vorgibt wie eine Versionsnummer exakt aussehen sollte. MAJOR.MINOR.PATCH fertig.

  • Ist die Änderung nur ein Bugfix, erhöhe den PATCH um 1.
  • Ist die Änderung tiefgreifend aber voll kompatibel zum Vorgänger, reicht es MINOR zu incrementieren.
  • Ist die Änderung inkompatibel weil die API sich geändert hat. Erhöhe den MAJOR um 1.

Es gibt aber auch Projekte die zwar MAJOR.MINOR.PATCH verwenden, aber sich nicht wirklich an die Idee aus semantic versioning halten. Da gibt es inkompatible Änderungen in der API obwohl nur der MINOR erhöht wurde.

Um hier mal jemanden anzuschwärzen, Karma ist so ein Beispiel des sich nicht daran haltens. Da kann es sein, das eine Version nicht mit TypeScript zusammenarbeitet. Da gibt es die seltsamsten Fehlermeldungen.

Daraus folgt, verwendet niemals das Dach ^ oder die ~ in der package.json oder composer.json oder sonstwo. Ihr kommt in Teufels Küche.

 [...]
 "schnubbel.js": "~4.7.11",
 [...]

Tilde "~a.b.c" heißt hier: gibt es irgendwann ein Bugfix, wird dieser automatisch verwendet. Ist aber evtl. nicht mit eurer Software kompatibel/getestet.

 [...]
 "schnubbel.js": "^4.7.11",
 [...]

Dach "^a.b.c" heißt hier: gibt es irgendwann ein MINOR Update, wird dieser automatisch verwendet. Ist aber evtl. nicht mit eurer Software kompatibel/getestet.

Mein Tipp: Verwendet das nicht. Setzt die Version immer hart, egal was die Tools sagen. Sonst ist die Software evtl. nicht voll getestet.

Bin ich noch aktuell oder schon EOL

Sehr interessante Seite, gerade für DevOps?.

Frische Änderungen | Menü editieren
zuletzt geändert am 18.08.2022 10:09 Uhr von Lars
Edit Page | Page History