Was bedeuten die Zahlen in einer Version normalerweise (dh v1.9.0.1)?


135

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.


Zahlen können alles bedeuten, was Sie wollen, obwohl sie sich normalerweise nicht auf einzelne Komponenten beziehen, sondern auf größere oder kleinere Änderungen im Vergleich zur Wartung in Ihrer Version. Schauen Sie sich diese Ressourcen: netbeans.org/community/guidelines/process.html en.wikipedia.org/wiki/Release_engineering freebsd.org/releases/6.0R/schedule.html Prost
Alvaro Rodriguez

Antworten:


198

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.


3
Ich benutze genau das, aber speziell die Build-Nummer ist die Subversion Database Repository Version
Xetius

Ich benutze das gleiche, aber ohne die dritte Ziffer, wie in major.minor.build. Der Grund dafür ist, dass die Build-Nummer ohnehin zunimmt, sodass an sich festgestellt werden kann, dass kleinere Bugfixes usw. stattgefunden haben.
Mark Embling

9
major.minor.revision (Fehlerbehebungen) .build ist für mich am sinnvollsten. Leider ist der .NET-Versionstyp als major.minor.build.revision definiert (möglicherweise, weil Microsoft früher nur 3 Versionsorte verwendet hat?).
Kevin Kibler

2
Ich versuche dieses System zu verstehen. Hier ist eine Frage: Was sollte ich erhöhen, wenn eine neue Version eine Funktion und eine Fehlerbehebung enthält?
iTurki

6
@iturki Normalerweise hat die "größere" Versionsnummer Vorrang. Wenn Sie also Ihre App von Version 1.4.23 aktualisieren, aktualisieren Sie einfach auf 1.5.0 und fertig. In Ihren Versionshinweisen können Sie angeben, welche Fehler behoben wurden. Ebenso können Sie von 1.4.23 auf 2.0.0 aktualisieren.
Dillie-O

33

Es gibt die Semantic Versioning-Spezifikation

Dies ist die Zusammenfassung von Version 2.0.0:

Inkrementieren Sie mit einer Versionsnummer MAJOR.MINOR.PATCH Folgendes:

  1. MAJOR-Version, wenn Sie inkompatible API-Änderungen vornehmen,
  2. MINOR-Version, wenn Sie Funktionen abwärtskompatibel hinzufügen, und
  3. PATCH-Version, wenn Sie abwärtskompatible Fehlerbehebungen vornehmen.

Zusätzliche Beschriftungen für Pre-Release- und Build-Metadaten sind als Erweiterungen des MAJOR.MINOR.PATCH-Formats verfügbar.


15

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.



8

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.


8

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.


4

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/


3

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.



2

Es kommt darauf an, aber die typische Darstellung ist die von major.minor.release.build .

Wo:

  • major ist die Hauptversion Ihrer Software, denken Sie an .NET 3.x.
  • minor ist die Minor-Release-Version Ihrer Software, denken Sie an .NET x.5
  • Release ist das Release dieser Version. In der Regel erhöhen Bugfixes dies
  • Build ist eine Zahl, die die Anzahl der von Ihnen durchgeführten Builds angibt.

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 .


2

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.


2

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.


2

In der Datei C # AssemblyInfo.cs sehen Sie Folgendes:

// Version information for an assembly consists of the following four values:
//
//      Major Version
//      Minor Version 
//      Build Number
//      Revision
//
/ You can specify all the values or you can default the Build and Revision Numbers 
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]

2

release.major.minor.revision wäre meine Vermutung.
Es kann jedoch zwischen den Produkten stark variieren.


1

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.


Was ist eine Build-ID?
Darshan L

1

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.


1

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.


1

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.


1

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 .


0

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.


0

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.


0

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).


0

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.


0

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:

  1. 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.

  2. 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.

  3. 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.


0

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).


0

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.


0

Folgendes verwenden wir:

  1. Erste Zahl = Gesamtsystemära. Änderungen alle paar Jahre und in der Regel eine grundlegende Änderung der Technologie oder der Kundenfunktionen oder beides.
  2. Zweite Nummer = Revision des Datenbankschemas. Ein Inkrementieren dieser Anzahl erfordert eine Datenbankmigration und damit eine wesentliche Änderung (oder das Replizieren von Systemen und das Ändern der Datenbankstruktur erfordert einen sorgfältigen Aktualisierungsprozess). Wird auf 0 zurückgesetzt, wenn sich die erste Zahl ändert.
  3. Dritte Nummer = nur Software ändern. Dies kann normalerweise von Client zu Client implementiert werden, da das Datenbankschema unverändert bleibt. Wird auf Null zurückgesetzt, wenn sich die zweite Zahl ändert.
  4. Versionsnummer der Subversion. Wir füllen dies automatisch beim Erstellen mit dem TortoiseSVN-Tool. Diese Nummer wird nie zurückgesetzt, sondern kontinuierlich erhöht. Damit können wir jederzeit jede Version neu erstellen.

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!


0

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.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.