Bump-Version vor dem Start der Neuentwicklung oder beim Markieren einer Veröffentlichung, was ist besser?

9

Einige Projekte stoßen die Version an, bevor eine neue Entwicklung gestartet wird, während andere Projekte die Version anstoßen, wenn sie eine Version markieren.

Welcher Ansatz ist besser?

Wenn die Versionsnummer zu Beginn der neuen Phase nicht geändert wird, vergessen die Entwickler möglicherweise, sie zu ändern, und geben das Programm einfach frei.

Wenn sich die Versionsnummer vor dem Tagging-Release geändert hat, stimmen 2 die Versionsnummern (Tag und Makefile / AssemblyInfo.cs) nicht überein.

git describe Möglicherweise erhalten Sie v1.2.3.4-15-g1234567, wenn die aktuelle Version nach v1.2.3.4 liegt, Sie die Dateien jedoch bereits in v1.2.3.5 geändert haben

linquize
quelle

Antworten:

2

Der Hauptgrund für die Versionsnummer liegt darin, dass Sie, wenn ein Fehler entdeckt wird, das Debuggen mit der tatsächlichen Version des Quellcodes durchführen können, in dem der Fehler tatsächlich aufgetreten ist (und somit den wahren Grund für den Fehler ermitteln).

Es spielt keine Rolle, welches Versionsschema Sie verwenden, solange der Benutzer Ihres Produkts dem Entwickler genügend Informationen mitteilen kann, damit der Entwickler dieses Ziel erreichen kann.

Andere Gründe für die Versionierung sind Marketing- und Hilfsteams (manchmal legal).
Diese Teams haben ihre eigenen Prioritäten für die Versionierung.

  • Hilfe
    Wünscht eine einfache Möglichkeit, Kompatibilität, Funktionen und potenzielle Stabilität zu bestimmen (siehe Linux-Schema für ungerade / gerade Zahlen).
  • Marketing
    Will jedes Mal eine größere Anzahl (vorzugsweise über 2)
  • Legal
    Möchte sicherstellen, dass alle Funktionen festgelegt sind, bevor die Anzahl erhöht wird.

In allen Fällen ist das verwendete Schema unwichtig. Solange Sie konsistent sind (oder eine leicht verfügbare, sehr detaillierte Dokumentation zu Bedeutungsänderungen haben).

Martin York
quelle
1

Bei Verwendung von Versionsnummern mit vier Segmenten wie bei .NET-Assemblys bevorzuge ich die Verwendung eines Versionskontroll-Tags, um die ersten drei Segmente festzulegen. Das vierte Segment ist die Anzahl der Commits seit diesem Tag.

Beispielsweise wird eine Version mit "v1.2.3" gekennzeichnet. Wenn git-describe"v1.2.3-4-g1a2b3c4" zurückgegeben wird, wird diese Assembly beim Erstellen als 1.2.3.4 versioniert.

Wenn später ein Tag auf diese Version angewendet wird, git-describewird stattdessen "v1.2.4" zurückgegeben, was Version 1.2.4.0 darstellt. Das nächste Commit wäre dann 1.2.4.1.

Die Vorteile, die ich von diesem System finde, sind:

  • Bei jedem Commit wird die Versionsnummer automatisch erhöht.
  • Eine Version kann durch einfaches Markieren zu einer ".0" -Version gemacht werden.
  • Obwohl dieses System nicht perfekt ist, funktioniert es mit DVCS, da es die Anzahl der Commits seit dem letzten Tag zählt.
Stephen Jennings
quelle