Frage

Meine Frage ist, welches Versionsbenennungsschema für welche Art von Projekt verwendet werden sollte.

Sehr häufig ist „major.minor.fix“, aber selbst dies kann zu 4 Nummern führen (d. h.Firefox 2.0.0.16).Einige haben ein Modell, bei dem ungerade Zahlen Entwicklerversionen und gerade Zahlen stabile Versionen anzeigen.Und alle möglichen Ergänzungen können in den Mix einfließen, wie -dev3, -rc1, SP2 usw.

Es gibt Gründe, ein Schema einem anderen vorzuziehen, und es sollten andere Arten von Projekten (z. B.Open Source vs.Closed Source) haben unterschiedliche Versionsbenennungsschemata?

War es hilfreich?

Lösung

Es gibt zwei gute Antworten für diesen (plus eine Menge persönlicher Vorlieben, Gizmos Kommentar über Religionskriege sehen)

Öffentlichkeit Anwendungen arbeitet der Standard Major.Minor.Revision.Build besten IMO - öffentliche Benutzer leicht, welche Version des Programms kann sagen, sie haben, und bis zu einem gewissen Grad, wie weit veraltet ihre Version ist.

im Haus Anwendungen, bei denen die Benutzer nie für die Anwendung gefragt, wird der Einsatz von IT behandelt, und Benutzer werden die Help-Desk anrufen, fand ich die Year.Month.Day.Build besser in vielen Situationen zu arbeiten. Diese Versionsnummer kann somit bieten weitere nützliche Informationen an den Helpdesk decodiert werden dann die öffentliche Versionsnummernschema.

Doch am Ende des Tages würde ich eine Empfehlung vor allem machen - ein System verwenden Sie konsistent halten . Wenn es ein System, das Sie Ihre Compiler-Setup / script können automatisch jedes Mal verwenden, verwenden, die .

Das Schlimmste, was passieren kann, ist man Binärdateien mit der gleichen Versionsnummer wie die vorherige Freigabe - Ich habe vor kurzem mit automatisierten Netzwerk-Fehlerberichte (jemand andere Anwendung) beschäftigt, und kam zu dem Schluss, dass die Year.Month .Day.Build Versionsnummern im Kern gezeigt Deponien, wo nicht einmal entfernt auf dem neuesten Stand mit der Anwendung selbst (die Anwendung selbst einen Begrüßungsbildschirm mit den reellen Zahlen verwendet - was natürlich nicht, wo aus dem binären gezogen, wie man annehmen könnte). Das Ergebnis ist, ich habe keine Möglichkeit zu wissen, ob Crash-Dumps kommt aus einem 2 Jahren alten binären (was die Versionsnummer angibt) oder ein 2 Monate alten binären und somit keine Weise der richtigen Quellcode bekommen (keine Quelle Kontrolle entweder! )

Andere Tipps

Hier ist, was wir in unserer Firma benutzen.... Wichtige Minor Patch Version Build-Nummer

Die Wichtige Änderung beinhaltet einen vollständigen Release-Zyklus, einschließlich Marketing-Beteiligung usw. Diese Zahl wird durch Kräfte gesteuert außerhalb von R & D (zum Beispiel in einen der Orte, die ich arbeitete, Marketing beschlossen, dass unsere nächste Version würde ‚11‘ sein -. Einen Konkurrenten passen Wir waren in der Version 2 zur Zeit :)).

Minor geändert wird, wenn eine neue Funktion oder eine große Verhaltensänderung zu dem Produkt hinzugefügt wird.

Patch Version durch einen nach oben geht jedes Mal, wenn ein Patch offiziell die Version hinzugefügt wird, in der Regel Fehlerbehebung, einschließlich nur.

Build-Version werden verwendet, wenn eine spezielle Version für einen Kunden freigegeben wird, in der Regel mit einem Fehler beheben ihn spezifisch. Normalerweise wird die fix aufgerollt wird für den nächsten Patch oder Minor-Version (und Produktmanagement markiert in der Regel der Fehler wie in unserem Tracking-System „wird für die Patch-3 freigegeben werden“).

Ich bin ein großer Fan von Semantische Versionierung

Wie viele andere haben gesagt, dies nutzt das X.Y.Z Format und gibt gute Gründe, warum.

Unsere F & E-Abteilung verwendet 1.0.0.0.0.000: MAJOR.minor.patch.audience.critical_situation.build

Bitte, bitte , tun Sie das nicht.

Diese Art von Frage ist, mehr über die Religion Krieg als objektive Aspekte. Es gibt immer Tonnen von Vor-und Nachteilen gegen ein Nummerierungsschema oder ein anderes. Alles was Menschen könnte (oder sollte) geben Sie das Schema sie verwendet und warum sie es wählen.

Auf meiner Seite, verwende ich ein X.Y.Z Schema alle Zahlen gilt:

  • X , um eine Änderung in der öffentlichen API angeben, die rückwärts Inkompatibilität einführen
  • Y ein Zusatz einiger Funktionen anzuzeigen,
  • Z zeigen einen Fix (entweder einen Fehler behebt, entweder Ändern interne Struktur ohne functionnality aufprall)

Schließlich verwende ich „Beta N“ Suffix, wenn ich ein Feedback von den Nutzern möchten, bevor ein offizielles Release erfolgt. Nein „RC“ Suffix wie niemand ist perfekt und wird es immer sein Fehler; -)

Ich persönlich bevor MAJOR.MINOR.BUGFIX-SUFFIX wo SUFFIX dev für Versionen Entwicklung ist (Versionskontrolle Kassen), rc1 / rc2 für Release-Kandidaten und ohne Suffix für Release-Versionen.

Wenn Sie Suffixe für die Entwicklung Kassen haben, vielleicht sogar mit der Revisionsnummer, gibt es keine Notwendigkeit, sie zu machen gerade / ungerade sie auseinander zu halten.

Wir bevorzugen major.minor.milestone.revision-build Schema, wobei:

  • major:Erhöhungen bei bedeutenden Architekturänderungen oder wichtigen Weiterentwicklungen der Funktionen.
  • minor:Kleine Änderungen und neue Funktionen, die keine architektonischen Änderungen erfordern.
  • milestone:Zeigt Stabilität und Reife des Codes an:
    • 0 für Entwicklung/Pre-Alpha
    • 1 für Alpha
    • 2 für Beta
    • 3 für Release Candidate (RC)
    • 4 für die endgültige/Produktionsfreigabe
  • revision:Gibt die Release-, Patch- oder Bugfix-Nummer an.
  • build:Eindeutige Verweise auf bestimmte Builds oder Versionen einer Anwendung.Die Build-Nummer ist eine fortlaufende Ganzzahl, die normalerweise bei jedem Build erhöht wird.

Beispiele:

  • 1.4.2.0-798:Erste Beta-Version der Version 1.4, erstellt nach Build-Nummer 798.
  • 1.8.3.4-970: 1.8-RC4, erstellt nach Build-Nummer 970.
  • 1.9.4.0-986:Erste Produktionsversion der Version 1.9, erstellt nach Build-Nummer 986.
  • 1.9.4.2-990:Zweite Bugfix-Veröffentlichung der Version 1.9, erstellt nach Build-Nummer 990.

Da es Produktionsveröffentlichungen immer gab 4 In der dritten Ziffer der Versionszeichenfolge kann die Ziffer für Produktionsversionen entfernt werden.

Im Falle einer Bibliothek, die Versionsnummer informiert Sie über die Maß an Kompatibilität zwischen zwei Versionen und damit, wie schwierig ein Upgrade sein wird.

Eine Bugfix-Release muss binär, Quelle und Serialisierung Kompatibilität erhalten.

Minor Releases bedeuten verschiedene Dinge für verschiedene Projekte, aber in der Regel die sie nicht brauchen Quelle Kompatibilität zu erhalten.

Wichtige Versionsnummern können alle drei Formen brechen.

Ich schrieb mehr über die Gründe hier .

Mit Agile Software-Entwicklung Praktiken und SaaS-Anwendungen, die Idee eines Hauptes gegen einen Minor Release weggegangen - Veröffentlichungen kommen extrem häufig in regelmäßigen Abständen - so ein Release-Schemas Nummerierung, die auf dieser Unterscheidung beruht nicht mehr sinnvoll zu mir.

Meine Firma nutzt ein Nummerierungsschema, das die letzten zwei Ziffern des Jahres begann in diesem Jahr von der Release-Nummer folgt die Freigabe erfolgt.

So begann die vierte Veröffentlichung im Jahr 2012 12.4 wäre.

Sie können eine „Bug-Fix“ Versionsnummer nach, dass bei Bedarf enthalten, idealerweise aber häufig genug, um Sie veröffentlichen, dass diese nicht oft notwendig -. So „12.4.2“

Dies ist ein sehr einfaches Schema und hat uns alle Probleme anderer Release Nummerierungsschemata nicht gegeben, die ich vorher verwendet haben.

Der Unterschied zwischen einer engen und Open-Source-Versionsnummer Politik kann auch kommen aus einem kommerziellen Aspekte , wenn die Hauptversion das Jahr der Freigabe zum Beispiel reflektieren kann.

Was wir früher hier zu tun ist major.minor.platform.fix .

große : Wir erhöhen diese Zahl, wenn die Datei aus diesem Build gespeichert sind nicht mehr kompatibel mit vorheriger Build
. Exemple . Dateien in Version 3.0.0.0 gespeichert wird, nicht mit Version 2.5.0.0 kompatibel sein

minor : Wir erhöhen diese Zahl, wenn eine neue Funktion hinzugefügt wurde. Diese Funktion sollte durch den Benutzer sichtbar. Nicht ein verstecktes Feature für developper. Diese Zahl wird auf 0 zurückgesetzt, wenn größere erhöht wird.

Plattform : Das ist die Plattform, die wir für developpement verwenden
. Exemple . 1 für .NET Framework Version 3.5

fix : Wir erhöhen diese Zahl, wenn nur Fehlerbehebung mit dieser neuen Version enthalten sind. Diese Zahl wird auf 0 zurückgesetzt, wenn Haupt- oder Neben erhöht wird.

Einfach

Major.Minor.Revision.Build
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top