Vielleicht ist dies eine dumme Frage, aber ich habe immer angenommen, dass jede durch einen Punkt abgegrenzte Zahl eine einzelne Komponente der Software darstellt. Wenn das stimmt, repräsentieren sie jemals etwas anderes? Ich möchte den verschiedenen Builds meiner Software Versionen zuweisen, bin mir aber nicht sicher, wie sie aufgebaut sein soll. Meine Software besteht aus fünf verschiedenen Komponenten.
135
Antworten:
In Version 1.9.0.1 :
1 : Hauptrevision (neue Benutzeroberfläche, viele neue Funktionen, konzeptionelle Änderungen usw.)
9 : Kleinere Überarbeitung (möglicherweise eine Änderung an einem Suchfeld, 1 Feature hinzugefügt, Sammlung von Fehlerkorrekturen)
0 : Bugfix Release
1 : Build-Nummer (falls verwendet) - Aus diesem Grund wird das .NET-Framework mit 2.0.4.2709 angezeigt
Sie werden nicht viele Apps finden, die auf vier Ebenen heruntergehen, 3 ist normalerweise ausreichend.
quelle
Es gibt die Semantic Versioning-Spezifikation
Dies ist die Zusammenfassung von Version 2.0.0:
quelle
Es kann sehr willkürlich sein und unterscheidet sich von Produkt zu Produkt. Bei der Ubuntu-Distribution bezieht sich 8.04 beispielsweise auf 2008.April
In der Regel geben die am weitesten links stehenden (Haupt-) Zahlen eine Hauptversion an. Je weiter Sie nach rechts gehen, desto geringer ist die Änderung.
quelle
major.minor [.maintenance [.build]]
http://en.wikipedia.org/wiki/Software_versioning#Numeric
quelle
Je mehr Punkte, desto geringer die Veröffentlichung. Darüber hinaus gibt es keinen wirklich soliden Standard - kann je nach Entscheidung der Projektbetreuer unterschiedliche Bedeutungen haben.
WordPress zum Beispiel geht in diese Richtung:
1,6 -> 2,0 -> 2,0,1 -> 2,0,2 -> 2,1 -> 2,1,1 -> 2,2 ...
1.6 bis 2.0 wäre eine große Version - Funktionen, Änderungen an der Benutzeroberfläche, größere Änderungen an den APIs, Bruch einiger 1.6-Vorlagen und Plugins usw. 2.0 bis 2.0.1 wären eine kleinere Version - möglicherweise zur Behebung eines Sicherheitsfehlers. 2.0.2 bis 2.1 wären eine bedeutende Version - im Allgemeinen neue Funktionen.
quelle
Zahlen können nützlich sein, wie in anderen Antworten beschrieben, aber überlegen Sie, wie sie auch ziemlich bedeutungslos sein können ... So, Sie wissen, SUN, Java: 1.2, 1.3, 1.4, 1.5 oder 5, dann 6. In den guten alten Apple II-Versionsnummern gemeint Etwas. Heutzutage geben die Leute Versionsnummern auf und gehen mit albernen Namen wie "Feisty fig" (oder so ähnlich) und "hardy heron" und "europa" und "ganymede". Dies ist natürlich weitaus weniger nützlich, da Ihnen die Jupitermonde ausgehen, bevor Sie aufhören, das Programm zu ändern, und da es keine offensichtliche Reihenfolge gibt, können Sie nicht sagen, welche neuer ist.
quelle
In Version v1.9.0.1: Dies ist das explizite Versionsschema, das verwendet wird, wenn Sie keinen Namen für die Vorabversionen verwenden oder wie -alpha, -beta erstellen möchten.
1: Hauptversion, die die Abwärtskompatibilität beeinträchtigen könnte
9: Hinzufügen neuer Funktionen zur Unterstützung Ihrer App sowie Abwärtskompatibilität mit der vorherigen Version.
0: Einige kleinere Fehlerbehebungen
1: Build-Nummer (Pre-Release-Nummer)
Aber heutzutage werden Sie ein solches Versionsschema nicht finden. Siehe Semantic Versioning [semver2.0] https://semver.org/
quelle
Versionsnummern repräsentieren normalerweise keine separaten Komponenten. Für einige Leute / Software sind die Zahlen ziemlich willkürlich. Für andere repräsentieren verschiedene Teile der Versionsnummernzeichenfolge unterschiedliche Dinge. Beispielsweise erhöhen einige Systeme Teile der Versionsnummer, wenn sich ein Dateiformat ändert. V 1.2.1 ist also mit allen anderen V 1.2-Versionen (1.2.2, 1.2.3 usw.) kompatibel, jedoch nicht mit V 1.3. Letztendlich liegt es an Ihnen, welches Schema Sie verwenden möchten.
quelle
Normalerweise ist es:
MajorVersion.MinorVersion.Revision.Build
quelle
Es kommt darauf an, aber die typische Darstellung ist die von major.minor.release.build .
Wo:
So bedeutet beispielsweise 1.9.0.1, dass es sich um Version 1.9 Ihrer Software handelt, die 1.8 und 1.7 usw. folgt, wobei 1.7, 1.8 und 1.9 in gewisser Weise neben Bugfixes in der Regel kleine Mengen neuer Funktionen hinzufügen. Da es xx0.x ist, ist es die erste Version von 1.9 und der erste Build dieser Version.
Gute Informationen finden Sie auch im Wikipedia-Artikel zu diesem Thema .
quelle
Major.Minor.Bugs
(Oder eine Variation davon)
Fehler sind normalerweise Fehlerkorrekturen ohne neue Funktionen.
Kleinere Änderungen, die neue Funktionen hinzufügen, das Programm jedoch nicht wesentlich ändern.
Major ist eine Änderung im Programm, die entweder alte Funktionen zerstört oder so groß ist, dass sich dadurch irgendwie ändert, wie Benutzer das Programm verwenden sollen.
quelle
Jeder wählt, was er mit diesen Zahlen machen möchte. Ich war versucht, Releases abc zu nennen, da es sowieso ziemlich albern ist. Abgesehen davon funktioniert das, was ich in den letzten mehr als 25 Jahren der Entwicklung gesehen habe, auf diese Weise. Angenommen, Ihre Versionsnummer lautet 1.2.3.
Die "1" zeigt eine "größere" Revision an. In der Regel handelt es sich hierbei um eine Erstveröffentlichung, eine große Änderung des Funktionsumfangs oder ein Umschreiben wesentlicher Teile des Codes. Sobald der Funktionsumfang festgelegt und zumindest teilweise implementiert ist, fahren Sie mit der nächsten Nummer fort.
Die "2" zeigt eine Veröffentlichung innerhalb einer Serie an. Oft nutzen wir diese Position, um uns über Funktionen zu informieren, die es in der letzten Hauptversion nicht geschafft haben. Diese Position (2) weist fast immer auf ein Feature-Add hin, normalerweise mit Fehlerkorrekturen.
Die "3" in den meisten Shops zeigt eine Patch-Version / Fehlerbehebung an. Zumindest auf kommerzieller Seite weist dies fast nie auf eine signifikante Funktionserweiterung hin. Wenn Features auf Position 3 angezeigt werden, liegt dies wahrscheinlich daran, dass jemand etwas eingecheckt hat, bevor wir wussten, dass wir eine Fehlerbehebung durchführen müssen.
Jenseits der Position "3"? Ich habe keine Ahnung, warum Leute so etwas tun, es wird nur verwirrender.
Insbesondere einige der OSS da draußen werfen all dies aus dem Gleichgewicht. Zum Beispiel ist Trac Version 10 tatsächlich 0.10.XX Ich denke, viele Leute in der OSS-Welt haben entweder kein Vertrauen oder wollen einfach nicht bekannt geben, dass sie eine Hauptversion haben.
quelle
In der Datei C # AssemblyInfo.cs sehen Sie Folgendes:
quelle
release.major.minor.revision wäre meine Vermutung.
Es kann jedoch zwischen den Produkten stark variieren.
quelle
Major.minor.point.build normalerweise. Major und Minor sind selbsterklärend, point ist eine Version für ein paar kleinere Bugfixes und build ist nur eine Build-ID.
quelle
Jep. Hauptversionen fügen große, neue Funktionen hinzu, können die Kompatibilität beeinträchtigen oder erheblich unterschiedliche Abhängigkeiten aufweisen usw.
Kleinere Versionen fügen ebenfalls Funktionen hinzu, aber sie sind kleinere, manchmal abgespeckte portierte Versionen aus der Beta-Hauptversion.
Wenn es eine dritte Versionsnummernkomponente gibt, handelt es sich normalerweise um wichtige Bugfixes und Sicherheitskorrekturen. Wenn es mehr gibt, hängt es wirklich so sehr vom Produkt ab, dass es schwierig ist, eine allgemeine Antwort zu geben.
quelle
Das Paradigma der Hauptkorrektur von release.minor release.bug ist meiner Meinung nach ziemlich verbreitet.
In einigen Support-Verträgen für Unternehmen gibt es $$$ (oder eine Verletzung der Vertragshaftung), die mit der Bezeichnung einer bestimmten Version verbunden sind. Ein Vertrag kann beispielsweise einen Kunden zu einer bestimmten Anzahl von Hauptversionen in einem bestimmten Zeitraum berechtigen oder versprechen, dass es in einem bestimmten Zeitraum weniger als x kleinere Versionen geben wird oder dass für so viele weiterhin Support verfügbar ist Veröffentlichungen. Unabhängig davon, wie viele Wörter in den Vertrag aufgenommen werden, um zu erklären, was eine Hauptversion gegenüber einer Nebenversion ist, ist dies natürlich immer subjektiv und es wird immer Grauzonen geben - was dazu führt, dass der Softwareanbieter das System spielen kann schlagen solche vertraglichen Bestimmungen.
quelle
Die Leute erkennen nicht immer den subtilen Unterschied zwischen Versionsnummern wie 2.1, 2.0.1 oder 2.10 - fragen Sie einen technischen Support, wie oft sie Probleme damit hatten. Entwickler sind detailorientiert und mit hierarchischen Strukturen vertraut, daher ist dies ein blinder Fleck für uns.
Stellen Sie Ihren Kunden nach Möglichkeit eine einfachere Versionsnummer zur Verfügung.
quelle
Bei einer Bibliothek gibt die Versionsnummer Auskunft über den Kompatibilitätsgrad zwischen zwei Releases und damit über die Schwierigkeit eines Upgrades.
Eine Bugfix-Version muss die Kompatibilität von Binärdateien, Quellen und Serialisierung gewährleisten.
Kleinere Releases bedeuten für verschiedene Projekte unterschiedliche Bedeutungen, müssen jedoch normalerweise nicht die Quellkompatibilität gewährleisten.
Hauptversionsnummern können alle drei Formen brechen.
Ich schrieb mehr über die Gründe hier .
quelle
Eine Kombination aus Major, Minor, Patch, Build, Sicherheitspatch usw.
Die ersten beiden sind Dur und Moll - der Rest hängt vom Projekt, der Firma und manchmal der Community ab. In Betriebssystemen wie FreeBSD haben Sie 1.9.0.1_number, um einen Sicherheitspatch darzustellen.
quelle
Hängt ein bisschen von der Sprache ab, Delphi und C # haben zum Beispiel unterschiedliche Bedeutungen.
Normalerweise stellen die ersten beiden Zahlen eine Haupt- und eine Nebenversion dar, dh 1.0 für die erste echte Version, 1.1 für einige wichtige Bugfixes und kleinere neue Funktionen, 2.0 für eine große neue Funktionsversion.
Die dritte Nummer kann sich auf eine "wirklich kleine" Version oder Revision beziehen. 1.0.1 ist zum Beispiel nur ein sehr kleiner Bugfix für 1.0.0. Es kann aber auch die Revisionsnummer von Ihrem Versionsverwaltungssystem oder eine ständig steigende Nummer enthalten, die mit jedem Build erhöht wird. Oder ein Datenstempel.
Ein bisschen mehr Details hier . "offiziell", in .net sind die 4 Zahlen "Major.Minor.Build.Revision", während es in Delphi "Major.Minor.Release.Build" gibt. Ich verwende "Major.Minor.ReallyMinor.SubversionRev" für meine Versionierung.
quelle
Im Allgemeinen haben die Nummern dann das Format version.major.minor.hotfix und nicht einzelne interne Komponenten. V1.9.0.1 wäre also Version 1, Hauptversion 9 (von Version 1), Nebenversion (von Version 1.1) 0, Hotfix 1 von (Version 1.9.0).
quelle
Die erste Nummer wird normalerweise als Hauptversionsnummer bezeichnet. Es wird im Wesentlichen verwendet, um signifikante Änderungen zwischen Builds anzuzeigen (dh wenn Sie viele neue Funktionen hinzufügen, erhöhen Sie die Hauptversion). Komponenten mit unterschiedlichen Hauptversionen desselben Produkts sind wahrscheinlich nicht kompatibel.
Die nächste Nummer ist die Nebenversionsnummer. Es kann einige neue Funktionen oder eine Reihe von Fehlerkorrekturen oder kleinen Architekturänderungen darstellen. Komponenten desselben Produkts, die sich durch die Nebenversionsnummer unterscheiden, funktionieren möglicherweise nicht zusammen und sollten dies wahrscheinlich auch nicht.
Die nächste wird normalerweise als Build-Nummer bezeichnet. Dies kann täglich oder mit jedem "freigegebenen" Build oder mit jedem Build überhaupt erhöht werden. Es kann nur kleine Unterschiede zwischen zwei Komponenten geben, die sich nur durch die Build-Nummer unterscheiden und normalerweise gut zusammenarbeiten können.
Die endgültige Nummer ist normalerweise die Revisionsnummer. Oft wird dies von einem automatischen Build-Prozess verwendet oder wenn Sie "einmalige" Wegwerf-Builds zum Testen erstellen.
Wenn Sie Ihre Versionsnummern erhöhen, liegt es an Ihnen, sie sollten jedoch immer erhöht werden oder gleich bleiben . Sie können alle Komponenten dieselbe Versionsnummer verwenden lassen oder die Versionsnummer nur für geänderte Komponenten erhöhen.
quelle
Die Versionsnummer einer komplexen Software repräsentiert das gesamte Paket und ist unabhängig von den Versionsnummern der Teile. Die Gizmo-Version 3.2.5 enthält möglicherweise Foo-Version 1.2.0 und Bar-Version 9.5.4.
Verwenden Sie diese beim Erstellen von Versionsnummern wie folgt:
Die erste Nummer ist die Hauptversion. Wenn Sie wesentliche Änderungen an der Benutzeroberfläche vornehmen oder vorhandene Benutzeroberflächen beschädigen müssen (damit Ihre Benutzer ihren Schnittstellencode ändern müssen), sollten Sie zur neuen Hauptversion wechseln.
Die zweite Zahl sollte anzeigen, dass neue Funktionen hinzugefügt wurden oder etwas intern anders funktioniert. (Beispielsweise könnte die Oracle-Datenbank eine andere Strategie zum Abrufen von Daten verwenden, wodurch die meisten Dinge schneller und einige langsamer werden.) Bestehende Schnittstellen sollten weiterhin funktionieren und die Benutzeroberfläche sollte erkennbar sein.
Die weitere Versionsnummerierung hängt von der Person ab, die die Software schreibt - Oracle verwendet fünf (!) Gruppen, d. H. Eine Oracle-Version ist so etwas wie 10.1.3.0.5. Ab der dritten Gruppe sollten Sie nur Bugfixes oder geringfügige Änderungen in der Funktionalität einführen.
quelle
Diejenigen, die weniger variieren, sind die ersten beiden für major.minor. Danach kann es sich um alles handeln, von Build, Revision, Release bis hin zu benutzerdefinierten Algorithmen (wie in einigen MS-Produkten).
quelle
Jede Organisation / Gruppe hat ihren eigenen Standard. Wichtig ist, dass Sie sich an die von Ihnen gewählte Notation halten, da Ihre Kunden sonst verwirrt werden. Trotzdem habe ich normalerweise 3 Zahlen verwendet:
x.yz.bbbbb. Wobei: x: die Hauptversion ist (wichtige neue Funktionen) y: die kleinere Versionsnummer ist (kleine neue Funktionen, kleine Verbesserungen ohne Änderungen an der Benutzeroberfläche) z: ist das Service Pack (im Grunde das gleiche wie xy, aber mit einigen Fehlerkorrekturen bbbb: ist die Build-Nummer und nur in der "About-Box" mit anderen Details für den Kundensupport wirklich sichtbar. bbbb ist ein freies Format und jedes Produkt kann sein eigenes verwenden.
quelle
Folgendes verwenden wir:
Dieses System dient uns gut, weil jede Nummer eine klare und wichtige Funktion hat. Ich habe andere Teams gesehen, die sich mit der Frage nach der Haupt- / Nebenzahl auseinandergesetzt haben (wie groß eine Änderung ist), und ich sehe keinen Nutzen daraus. Wenn Sie keine Datenbankrevisionen nachverfolgen müssen, gehen Sie einfach zu einer 3- oder 2-stelligen Versionsnummer und machen Sie das Leben einfacher!
quelle
Version: v1.9.0.1
wo-
. v ist die Abkürzung für version. Es variiert von Unternehmen zu Unternehmen und hängt von der in seiner Organisation verwendeten Nomenklatur ab. In einigen Organisationen wie 1.9.0.1 kann es still sein
. 1 gibt die Hauptversion an und wird bei Änderungen der Architektur in Anwendungsstapeln, Infrastruktur (Plattform) oder exponierten Netzwerkschnittstellen aktualisiert
. 9 Incates Minor, wird über Aktivitäten wie das Hinzufügen neuer Komponenten wie UI, API, Datenbank usw. aktualisiert. unter einer bestimmten Architektur
. 0 gibt die Funktion an und wird bei allen Verbesserungen an vorhandenen Komponenten (Benutzeroberfläche, API, Datenbank usw.) aktualisiert.
. 1 gibt den Build-Zähler für alle Phasen Dur, Moll und Feature an. Es enthält auch Hotfixes nach der Produktion.
quelle