Was bedeuten Update-Versionen wirklich?

18

Viele Software-Updates folgen dem Schema von v0.1 bis v0.2 bis v2.6.5.6 . Was bedeuten diese "Updates" für Software wirklich? Gibt es einen Industriestandard, der immer eingehalten wird, oder erhöhen Programmierer die Aktualisierungsrate oder fügen weitere Dezimalstellen hinzu?

James Mertz
quelle
12
@S.Lott Da ich in der Programmierszene ziemlich neu bin, würde ich keine Besonderheiten kennen. Dies ist die beste Art zu fragen, was mir einfällt.
James Mertz
9
@S.Lott, reduzieren Sie das Koffein, Sir, es macht Sie gereizt.
ocodo
2
@ S.lott zögern sie nicht nach belieben zu bearbeiten um die frage zu verbessern. Ich habe das Gefühl, dass Sie wissen, wonach ich suche. Ich bin jedoch der Meinung, dass die Antworten sehr gut waren. Ich habe auch das Gefühl, dass ich, gemessen an den höheren Stimmen in meinem vorherigen Kommentar, das Beste getan habe, was ich kann, und dass die Frage in Ordnung ist. Kritik und Bearbeitungen sind mir jedoch willkommen. Tu was du für richtig hältst. Für mich lasse ich es in Ruhe.
James Mertz
1
@ S.lott Die Frage scheint mir so ziemlich klar zu sein. Ich denke nicht, dass die Auflistung einer bestimmten Organisation für das Verfassen von Normen eine erhebliche Verbesserung wäre. Wenn Sie sich anders fühlen, können Sie sie gerne bearbeiten. Sie haben den Repräsentanten dafür.
Adam Lear
3
@S.Lott: "Gibt es einen Industriestandard" ist völlig in Ordnung. Ja, es gibt Industriestandards! Es ist egal, wer sie schreibt: KronoS möchte wissen, was Versionen bedeuten, er kann festlegen, wie detailliert er vorgeht ... Vielleicht hätten Sie erwähnen sollen, dass Sie die Frage für umfassend halten? Das bloße Hämmern auf Details macht dem Benutzer das nicht klar und fordert ihn auf zu definieren: Wort macht dem Benutzer das nicht klar und sagt, dass es bedeutungslos ist, nachdem Ihr erster Kommentar dem Benutzer das nicht klar macht.
Tamara Wijsman

Antworten:

16

Wie Shaun sagte, gibt es nicht wirklich einen Standard. Einige Unternehmen haben bessere Versionspraktiken als andere (ich habe mich mit Anbietern befasst, die Hauptversionsnummern überspringen, und andere, die mehrere Releases später auf demselben xy stecken).

Trotzdem hat der Erfinder von Gravatars und Mitbegründer von GitHub ( Tom Preston-Werner ) ein Dokument für ' Semantic Versioning ' verfasst, das mehr als eine Lektüre wert ist.

Hier ist die Ausnahme des Intro:

Als Lösung für dieses Problem schlage ich einen einfachen Satz von Regeln und Anforderungen vor, die vorschreiben, wie Versionsnummern zugewiesen und inkrementiert werden. Damit dieses System funktioniert, müssen Sie zuerst eine öffentliche API deklarieren. Dies kann aus Dokumentation bestehen oder durch den Code selbst erzwungen werden. Unabhängig davon ist es wichtig, dass diese API klar und präzise ist. Sobald Sie Ihre öffentliche API identifiziert haben, teilen Sie Änderungen mit, wobei Ihre Versionsnummer in bestimmten Schritten geändert wird. Betrachten Sie ein Versionsformat von XYZ (Major.Minor.Patch). Fehlerkorrekturen, die sich nicht auf die API auswirken, erhöhen die Patch-Version, abwärtskompatible API-Ergänzungen / -Änderungen erhöhen die Nebenversion und abwärts inkompatible API-Änderungen erhöhen die Hauptversion.

Ich nenne dieses System "Semantic Versioning". In diesem Schema geben die Versionsnummern und die Art und Weise, wie sie sich ändern, Auskunft über den zugrunde liegenden Code und darüber, was von einer Version zur nächsten geändert wurde.

Dan McGrath
quelle
7

Mit 4 Ziffern ist es normalerweise MajorV.MinorV.PatchNum.BuildNum, zumindest dort, wo ich arbeite.

Ich persönlich bevorzuge das Ubuntu-Versionsschema - macht das Leben so viel einfacher.

Job
quelle
Was ist ihr Schema? Warum bevorzugst du sie?
James Mertz
3
Ubuntu 10.10 = Oktober 2010, Ubuntu 10.04 = April 2010, Ubuntu 11.04 = April 2011, Ubuntu 9.10 = Oktober 2009 usw. Dies wird in dem Wikipedia-Link von Shaun erwähnt.
Job
2
Das Schöne an der Verwendung von Datumsangaben als Versionsnummern ist, dass Ihre Versionsnummer immer in der richtigen Reihenfolge angezeigt wird, es sei denn, es kommt zu einem merkwürdigen Zeitparadoxon. Für die meisten von uns ist es einfacher, sich daran zu erinnern, dass heute der 13.02.2011 ist, als herauszufinden, welche Version der neuen Version sein sollte.
jmort253
@ jmort245, genau! Künstliche Systeme sind ziemlich chaotisch. Ungewöhnliche Banken glauben, dass es in einem Jahr 360, 362, 365, 366 usw. Tage gibt. Das Versionierungssystem ist eine weitere dieser dummen Kreationen. Zeitstempel lassen uns nicht nachdenken, obwohl das Lesen und Herausfinden von 20050207 etwas länger dauert als 502. Welche Software wird öfter als einmal im Monat veröffentlicht?
Job
2
@job: Mit Versionen können Sie Features jedoch an bestimmte Haupt- oder Nebenversionen binden. Wenn ich also Version 2 habe, weiß ich, dass ich Feature X habe, während Version 1 nicht Version X hat.
Martin York
6

Die kurze Version ist, dass es keinen Standard gibt und Unternehmen tun, was sie wollen. Je mehr Zahlen Sie haben, desto geringer ist im Wesentlichen die Anzahl der Änderungen, die jede Zahl darstellt. In der Regel wird mindestens die Version xy angezeigt, in der xa-Änderung in x für Hauptversionen (wichtige Erweiterungen / Feature-Rollouts) und y für Nebenversionen (wichtige Optimierungen oder Fehlerkorrekturen) steht. Mehr Dezimalstellen nach diesen beiden können für ein Unternehmen intern unterschiedliche Bedeutungen haben, obwohl sich diese oft um kleinere Inhaltserstellungen oder Patches drehen, die schnellere und kleinere Korrekturen darstellen.

Wikipedia hat einen Artikel , der dies ausführlicher behandelt.

Shaun
quelle
3

Der Zweck von Versionsnummern besteht darin, eine Referenz für Problemberichte bereitzustellen. Die einzige Voraussetzung ist, dass jede Version eine eindeutige Versionsnummer hat. Einige Zahlen werden vom Marketing bestimmt - größere ganze Zahlen sind einfacher zu verkaufen, und Potenzzahlen wie 10 (römische Zahl X) sind wirklich eingängig. Einige Leute verwenden eine Variation der semantischen Versionierung:

MAJOR.MINOR.MICRO.BUILD

  • Wichtige Schritte: Inkompatible Änderungen oder vollständige Neugestaltung der Benutzeroberfläche
  • Kleinere Schritte: Neue Funktionen hinzugefügt, kompatibel mit früheren Versionen mit derselben Hauptversionsnummer
  • Mikroschritte: Fehlerbehebung
  • Build-Nummer: Wird vom Compiler generiert oder aus der Versionskontrolle abgerufen

Viele Gruppen lassen die BUILD-Nummer in ihren Releases fallen. Dies ist normalerweise nur zwischen Test- und Entwicklungsgruppen sinnvoll.

Einige Gruppen fügen zusätzliche Semantiken hinzu, z. B. ungeradzahlige MINOR-Inkremente für experimentelle Builds und geradzahlige MINOR-Inkremente für Produktionsversionen ( Linux-Kernel verwendet diesen Ansatz).

Unterm Strich gibt es keinen Standard, außer dass neuere Versionen höhere Versionsnummern verwenden und jede Versionsnummer eindeutig ist.

Berin Loritsch
quelle