Wann sollte ich die Versionsnummer erhöhen?

23

Ich habe in der Schule kein Programmieren gelernt und arbeite nicht als (professioneller) Entwickler, daher sind mir viele Grundlagen nicht ganz klar. Diese Frage versucht, einen von ihnen zu klären.


Nun nehmen wir an , dass ich Probleme haben #1, #2und #3in meiner Probleme Tracker , die für Version korrigiert / verbessert werden eingestellt werden 1.0.0und dass die letzte (stable) Version ist 0.9.0.

Wann sollte ich auf die Version aufrüsten 1.0.0? Wann ist a) nur eines der oben aufgeführten Probleme geschlossen oder b) wenn alle Probleme in Bezug auf die Version 1.0geschlossen sind?

Welches ist der richtige Weg, um es zu tun? Und mit dem richtigen Weg meine ich, was derzeit in der Industrie verwendet wird.

ahmed
quelle
22
Siehe semver.org
Martijn Pieters
1
Und Sie können alle drei Probleme auch in Ihre nächste Version aufnehmen.
Martijn Pieters
Ja, ich verwende bereits SemVer und ALLE drei Probleme sind in der nächsten Version fällig :)
ahmed
Ich habe die Frage bearbeitet, um Verwirrung zu vermeiden.
Ahmed

Antworten:

14

Ich kann Ihnen sagen, wie ich es bei der Arbeit mache.

Wir haben einen kontinuierlichen Integrationsserver, der ein versioniertes Paket erstellt, testet, markiert und ausgibt. Wir fahren nur mit der nächsten Stufe fort, wenn die vorherige% 100 erfolgreich ist.

Unsere Version sieht folgendermaßen aus: <Hauptversion>. <Nebenversion>. <Build-Nummer>

  • Bei jedem erfolgreichen Build, bei dem keine Fehlerbehebung oder Funktionserweiterung durchgeführt wurde, wird die Build-Nummer erhöht.
  • Jedes erfolgreiche Build mit einer abgeschlossenen Fehlerbehebung oder Funktionserweiterung erhöht die Minor-Version. Dies wird automatisch durch das Vorhandensein einer Festschreibungsnachricht in einem bestimmten Format erkannt. Diese Commit-Nachricht wird auch automatisch in das ChangeLog des Projekts übernommen.
  • Jedes Hauptversionsinkrement wird von Hand durchgeführt, wenn nicht abwärtskompatible Änderungen, Neuschreibungen oder andere Gründe vorliegen, die von Fall zu Fall vorgenommen werden.
dietbuddha
quelle
Wenn Sie jedoch eine Reihe von Verbesserungen an einer <Minor Version>, z. B. 1.0.0, vornehmen müssen. Müssen Sie ALLE diese Verbesserungen vornehmen, um "OK! Jetzt ist die Version 1.0.0" zu sagen, oder müssen Sie auf Version 1.0.0 aufsteigen, sobald die erste Verbesserung durchgeführt wurde?
Ahmed
@ahmed Ich habe den Ansatz gesehen, dass 1.4.2"dieser Satz von Fixes und alles andere zu dieser Zeit fertig ist" ... Ich habe auch gesehen, 1.4.2wie "Dies wird an diesem Datum mit allem, was fertig ist, veröffentlicht werden". Es hängt von Ihrem Release-Zyklus ab.
5
@ahmed Wenn das Kriterium für den Wechsel von 0.xx zu 1.xx der Abschluss einer Reihe von Funktionen / Korrekturen wäre, würde ich diese erst erhöhen, wenn alle abgeschlossen sind. Bitte beachten Sie, dass wir überhaupt nicht so arbeiten. Wir haben keine Version als Ziel festgelegt und entscheiden, welche Korrekturen darin enthalten sind. Wir zielen auf die Korrekturen. Die Version, die wir erhalten, dient lediglich der Verfolgung und Identifizierung und ist kein Ziel.
Dietbuddha
Dies ist genau das, was ich wissen wollte :)
ahmed
21

Versionsnummern sind nur für Releases relevant , da sie externen Benutzern die Identifizierung eines bestimmten Builds Ihrer Software ermöglichen. Wenn Sie nur mit der Entwicklung beschäftigt sind und nicht jeden Fix einzeln veröffentlichen, müssen Sie sich keine Gedanken darüber machen, die Versionsnummer für jeden Fix zu erhöhen. Es ist nicht relevant für externe Benutzer und verschwendet Ihre eigene Zeit mit der zusätzlichen Buchhaltung von Versionen.

Greg Hewgill
quelle
Gilt dies auch für die Webentwicklung, bei der ein Release ein einfacher Hotfix für einen kleinen Fehler sein kann?
Ahmed
4
Führen Sie eine Qualitätssicherung durch, bevor Sie den Hotfix ausstellen? Es ist eine Veröffentlichung. Wenn nicht vom vollständigen Produkt, dann vom Hotfix.
Peter K.
@ahmed In einem solchen Szenario sind die Versionsnummern für den Benutzer häufig unsichtbar und daher bedeutungslos (Versionsnummern existieren hauptsächlich für Marketing und technischen Support, die für viele Webanwendungen nicht zutreffen). Die Verwendung der Festschreibungs-ID kann ausreichend sein. Wenn Sie darauf bestehen, Versionsnummern zu verwenden, würde ich wahrscheinlich das Patchlevel erhöhen.
Amon
Ich lerne hier eine Menge Dinge: p Um es zusammenzufassen: Ich benötige KEINE Versionsnummern, da Festschreibungs-IDs ausreichen, da ALLE Benutzer sowieso die letzte Version verwenden.
Ahmed
2
Obwohl alle Benutzer dieselbe Version haben, ist die Version zum Zeitpunkt der Prüfung des Fehlerberichts weitergelaufen. Sie benötigen noch eine Möglichkeit, den Bericht an einen bestimmten Build der Software zu binden (Datum / Uhrzeit sind möglicherweise ausreichend).
Mattnz
2

Für kontinuierlich implementierte Webanwendungen neigen wir dazu, Build-Nummern mit Symver im Voraus und einem Build-Nummern-Tailing zu konstruieren, dh: 2.5.3.4328, wobei 4328 aus dem System für kontinuierliche Integration stammt. Es wird allgemein erwartet, dass sich die Nummern in absichtlichen Schritten ändern, die Build-Nummer jedoch die wahre eindeutige ID ist.

Anscheinend wird hier der Tag der Bereitstellung und die zugehörige SVN-Build-Nummer erfasst:

        <div id="svnrev">
            rev 2013.10.21.1078
        </div>

Für was es wert ist.

Wyatt Barnett
quelle
0

Die anderen Antworten sind bereits großartig, deshalb werde ich sie nur noch hinzufügen. Wenn Ihre Software nicht freigegeben ist und Sie keine öffentliche Versionierung benötigen (die nicht öffentliche Versionierung ist Ihr VCS), hängen Sie das Schlüsselwort " SNAPSHOT " am Ende Ihrer Version an. Einige Systeme, insbesondere im Abhängigkeitsmanagement, behandeln Snapshots anders als freigegebene Versionen, indem sie das Änderungsdatum der Snapshots anstelle der Versionsnummer vergleichen. Wenn Sie also ein v. 1.0.0-SNAPSHOT von 8 Uhr morgens in einem Paketrepo hatten und ein lokaler Abhängigkeits-Downloader dieselbe Version von 7 Uhr morgens hat, sollte er die aktualisierte Version aus dem Repo herunterladen.

Wie oben erwähnt, wird Ihre private Versionierung von Ihrem Versionskontrollsystem (git, svn usw.) bereitgestellt.

Hubert Grzeskowiak
quelle
0

Es ist genug über die Theorie der Versionierung gesagt, hier ist ein anderer Gesichtspunkt.

Wann sollte ich auf Version 1.0.0 aufrüsten?

Ich werde meine Antwort auf die Änderung der Hauptversionsnummer konzentrieren.

Meine Antwort lautet: Grundsätzlich, wenn Sie dazu bereit sind. Es ist eine große Sache, von 0,9 auf 1,0 zu wechseln, da die öffentliche Wahrnehmung sein wird, dass Sie von einem Beta-Produkt zu einer offiziellen Veröffentlichung übergehen.

(Ich gehe davon aus, dass es sich hier um ein kommerzielles Produkt einer Firma handelt.)

Ein paar Fragen, bevor es von 0.9 auf 1.0 geht.

Hat Ihre Organisation die Zeit, alle Ihre aktuellen Kunden zu informieren? Eine Party schmeißen. Erhalten Sie viele Supportanfragen. Ein Kundenbetreuer, der Ihr Produkt verkauft? Etc. etc.

Ja, ich sehe die Versionierung als Marketing-Tool und wenn Sie sich umschauen, sehen Sie, dass dies im Grunde der Industriestandard ist.

Unsere Firma ist von Version 2.x auf 3.0 übergegangen und hatte eine großartige Party, hat viel Aufsehen erregt und dadurch einige neue Kunden gewonnen. Abgesehen von einigen Schnittstellenaktualisierungen waren die Unterschiede zwischen den Versionen recht gering.

Pieter B
quelle