Was als erste Version verwenden? [geschlossen]


122

Normalerweise starte ich meine Projekte mit einer Version 1.0.0. Sobald ich ein paar Sachen zusammen habe, veröffentliche ich sie als 1.0.0 und fahre mit 1.1.0 fort.

Dies führt jedoch zu einer brauchbaren, aber nicht genau vollständigen Version 1.0.0 der meisten Dinge, die ich schreibe. Ich füge dann Funktionen hinzu und komme irgendwo um 1.6.0 zu einer anständigen Version. Viele Projekte beginnen mit Version 0.1.0, die genauso brauchbar ist wie meine Version 1.0.0.

Was würden Sie vorschlagen? Beginnen Sie mit 1.0.0 oder 0.1.0?

Die letzte Nummer ist übrigens nur für Bugfix-Releases. Sie können sich meine 1.0.0 als 1.0 und 0.1.0 als 0.1 vorstellen, das ist einfacher für Sie.


1
Ich habe gerade von "semantischer Versionierung" ( semver.org ) erfahren , das ist ziemlich genau das, was ich tun möchte. Ich erstelle jedoch keine APIs und es geht um APIs, daher gilt der Rat 1.0.0 nicht wirklich.
Noarth


Antworten:


-23

Meine Versionierung wird vom Setup gesteuert. Ich möchte, dass es ältere Versionen ersetzt, also erhöhe ich es in Sprüngen, die für mich sinnvoll sind.

Manchmal wird die Versionierung jedoch vom Kunden gesteuert, insbesondere wenn Sie Code für die Öffentlichkeit freigeben.

Wenn es Ihr Anruf ist, tun Sie, was für Sie am besten funktioniert. Ich hatte einige Probleme mit Versionen vor 1.0, also beginne ich damit.


Sie erklären nichts wirklich in Ihrer Antwort. Sie erwähnen nicht, welche Art von Problemen Sie hatten, damit wir darüber diskutieren können. Sie erklären nicht, wann und warum die Versionen vom Kunden gesteuert werden, was bei OP sowieso nicht der Fall ist. Und Sie erklären nicht, wie und warum die Versionierung vom Setup gesteuert wird. Was meinst du damit überhaupt, auf eine Weise, die für die Antwort wichtig ist? Eine genau definierte Antwort sollte Vor- und Nachteile jeder Entscheidung enthalten, Sie haben nur vage Gründe angegeben :).
Eksapsy

223

Der Standard Semantic Versioning 2.0.0 lautet:

Am einfachsten ist es, die erste Entwicklungsversion mit 0.1.0 zu starten und dann die Nebenversion für jede nachfolgende Version zu erhöhen.

Es ist in Ordnung, von 0.3.0 direkt auf 1.0.0 zu wechseln. Es ist auch vollkommen in Ordnung, bei 0,23,0 zu sein. Ab 0.4.0 ist etwas nicht ratsam, da dies darauf hindeutet, dass bereits frühere Versionen veröffentlicht wurden.

Beachten Sie außerdem, dass dies 0.y.zfür eine schnelle Iteration beiseite gelegt wird, damit die anfängliche Entwicklung (und damit viele wichtige Änderungen) Sie nicht bei etwas Dummem wie 142.6.0 zurücklässt. Anstatt die Hauptversion zu stoßen, stoßen Sie die Nebenversion bei jeder Änderung, bis Sie 1.0.0 veröffentlichen:

Die Hauptversion Null (0.yz) ist für die Erstentwicklung vorgesehen. Alles kann sich jederzeit ändern. Die öffentliche API sollte nicht als stabil angesehen werden.


Dies muss die akzeptierte Antwort sein. Ich habe noch nie eine Antwort mit 16 Abstimmungen als Antwort gesehen
Nader Ghanbari

Es gibt eine Gefahr, wenn Sie npm verwenden. Wenn Sie mit 0 beginnen, verhält sich das Caret-Zeichen "^" in package.json anders. docs.npmjs.com/misc/semver#caret-ranges-123-025-004 Sie können 0.x anstelle von ^ 0 verwenden. im Paket json für dieses Szenario. Daher ist 1.x etwas einfacher zu starten und zu verwenden.
Sam

7

Die Versionsnummer liegt ganz bei Ihnen. Tun Sie, was für Sie Sinn macht, und seien Sie konsequent. Niemand sagt, dass Sie bei 0, 0,0, 1,0 oder 1,1 beginnen müssen.

Große Programmierer haben das Versionsnummerierungssystem tatsächlich als lokale Witze verwendet. Beispiele (Wikipedia):

Seit Version 3 verwendet TeX ein eigenwilliges Versionsnummerierungssystem, bei dem Aktualisierungen durch Hinzufügen einer zusätzlichen Ziffer am Ende der Dezimalstelle angezeigt wurden, sodass sich die Versionsnummer asymptotisch π nähert. Dies spiegelt die Tatsache wider, dass TeX jetzt sehr stabil ist und nur geringfügige Aktualisierungen erwartet werden. Die aktuelle Version von TeX ist 3.1415926; Es wurde zuletzt im März 2008 aktualisiert

Für METAFONT:

Metafont verfügt über ein Versionierungssystem ähnlich dem von TeX, bei dem sich die Zahl bei jeder Überarbeitung asymptotisch e nähert.

Nicht ganz eine Versionsnummer, aber ebenso interessant ist, dass der Börsengang von Google bei der SEC eingereicht wurde, um 2.718.281.828 US-Dollar aufzubringen (beachten Sie, dass e ~ 2.718 281 828).

Mein Punkt ist: Fühle nicht, dass du der Menge folgen musst. Seien Sie kreativ und konsequent.


6

Ich denke, hier spielen verschiedene Faktoren eine Rolle. Die psychologischen / Marketing-Auswirkungen der Versionsnummer (Versionsnummer häufig erhöht => mehr $$$, Leute möchten keine Beta-Version von 0,99 kaufen usw.) müssen berücksichtigt werden. "Logic" -Versionsnummern können bei der Arbeit in einem großen Team hilfreich sein.

Und ich mag die Linux-Methode, ungerade Zahlen für die instabilen Versionen und gerade Zahlen für die stabile Version zu haben.


1

Wenn ich meine erste verwendbare Version fertigstelle, aber keine vollständige Version habe, versuche ich normalerweise zu beurteilen, wie weit sie in Richtung einer vollständigen Version der Funktion reicht. Wenn meine erste verwendbare Version beispielsweise zu 33% vollständig ist, mache ich die Versionsnummer 0.3.0 oder ähnlich. Wenn ich mich dann dem Feature nähere, erhalten die entsprechenden Versionen auf ähnliche Weise die angegebenen Nummern.

Sobald Sie jedoch mit früheren Funktionen fortfahren, muss sich die vollständige Versionierung ändern


3
Das impliziert irgendwie, dass Sie nur bis 0.9.0 gehen können, aber ich kenne viele Projekte, die wie 0.25.0 weitergehen.
Noarth

Ich neige dazu, den letzten Satz von Ziffern für kleinere inkrementelle Änderungen sowie Fehlerbehebungen zu verwenden und den mittleren Satz von Ziffern für ziemlich große Änderungen beizubehalten, so dass ich nie wirklich die Notwendigkeit habe, für die mittleren Zahlen zweistellig zu werden
Tristan

1

Beachten Sie bei der Auswahl der Versionsnummern für ein npmPaket, dass Abhängigkeiten, die in package.json Semver-Bereichen aufgeführt sind, unter Version 1.0 nicht funktionieren. Das ist,

"dependencies": {
    "my-package": "^0.5"
}

ist äquivalent zu

"dependencies": {
    "my-package": "0.5"
}

Wenn Sie Semver-Bereiche verwenden möchten oder andere Personen diese verwenden möchten, möchten Sie möglicherweise mit 1.0.0 beginnen


Interessant. Haben Sie weitere Informationen darüber, warum (oder wo) Semver-Bereiche unter 1.0.0 nicht funktionieren? Da gibt es 0.0.xin der npm-Registrierung einige Pakete, die verwendet werden .
Remi

Ich weiß nicht, warum die npm-Leute diese Entscheidung getroffen haben oder wo im npm-System sie getroffen wurde / was geändert werden müsste, um Semver-Bereiche für Versionen unter 1 zu unterstützen. Das würde mich auch interessieren!
Henry

3
Sie haben diese Entscheidung getroffen, weil ^dies "kompatibel mit der Version" bedeutet . Weitere Details hier . In semver, 0.y.zist für die anfängliche Entwicklung und jede Änderung in yoder zkann rückwärts inkompatibel sein. In Ihrem Beispiel handelt ^0.5 := 0.5 := 0.5.xes sich also um einen Bereich. Wenn der Caret-Bereich in diesem 0.y.zBereich für Sie nicht funktioniert , können Sie zusätzlich zu den Caret-Bereichen Komparator-, Hypen-, x- und Tilde-Bereiche verwenden.
Dosentmatter

0

Normalerweise hat die Versionierung für den Programmierer eine gewisse Bedeutung. Das Erhöhen der Hauptanzahl kann auf große Änderungen hinweisen, die die Abwärtskompatibilität verhindern. Andere Nummern in der Versionsnummer weisen möglicherweise auf kleinere Funktionserweiterungen oder Fehlerkorrekturen hin.

Wenn Sie befürchten, dass Version 0.6.5 einen unvollständigen Klang hat, möchten Sie ihn möglicherweise unter Version 1.0 vermarkten. Ihre Marketing-Versionsnummer muss nicht mit Ihrer internen Versionsnummer übereinstimmen. Die Versionsnummer von Windows 7 lautet beispielsweise 6.1.

Meine persönliche Präferenz ist es, ab 0.1.0 zu beginnen und von dort fortzufahren.


0

Kommt auf das Projekt an. Bei einfachen Befehlszeilentools beginne ich normalerweise um 0,9 [.0], da ich erst dann in Betracht ziehe, sie freizugeben oder zu packen, wenn sie kurz vor dem Abschluss stehen (oder ohnehin für Betatests bereit sind). Kompliziertere Projekte beginnen um 0,1 [.0] und Einige sehen nicht einmal 1.0. Ich betrachte 1.0 als Release-Version (oder zumindest als lokal getestete Beta oder Release-Kandidat) und plane entsprechend.

Bei Teamprojekten kann sich jeder entscheiden, der das erste Versions-Tag setzt :).


0

0.1.0 ist das, womit ich beginne und von dort nach oben gehe. Dies ist, was ich für Xploration By Adrian angepasst habe, obwohl ich in meinen frühen Jahren sehr sporadisch war und 1.0.0, 0.0.1 und einige andere verwendet habe. Aber ich empfehle, ab 0.1.0 zu beginnen und von dort fortzufahren.

Reservieren Sie pro Semver a und c in abc für A. Sie erste offizielle Version und C. Fehlerbehebungen und Patches. Dies liegt daran, dass eine Hauptversion im Allgemeinen älteren Code beschädigt. Und Patches beheben einfach Fehler. Dies ist alles persönliche Präferenz, 0.99.0 bedeutet nicht, dass Sie zu 1.0.0 usw. gehen müssen. Ich habe einige gesehen, die bis zu 0.218.42 gehen.


-1

Die Versionsnummern sollten für Sie von Bedeutung sein, da Arrieta zuvor richtig kommentiert hat.

Vielleicht folgt Folgendes: Erste # ist die Bürgermeister-Version, zweite # ist dieselbe Bürgermeister-Version mit einigen hinzugefügten Funktionen und dritte # ist dieselbe Bürgermeister-Version mit denselben Funktionen, aber mit behobenen Fehlern oder kleinen (aber ausreichend signifikanten) Änderungen.

1.3.2 => 1. Version, mit mehr Funktionen und einigen behobenen Fehlern.

Für Endbenutzer sind einige jedoch an große Zahlen für Endversionen gewöhnt.

Zum Beispiel: Corel 8 für 8.0.0, 8.0.1, 8.2.2 usw. Corel 9 für 9.0.0 ... usw.

Und meistens geht es mehr um Marketingstrategien wie: Corel X5 anstelle von Corel 15.0.2.

Ich würde sagen, dass es davon abhängt, ob die Versionsnummer für Sie oder für den Kunden ist.


-4

Beginnen Sie mit 0.0.0 und fahren Sie von dort fort.


4
Bedeutet das, dass Sie tatsächlich eine Version 0.0.0 machen würden? Ich beginne mit der ersten Nummer, die ich veröffentlichen werde.
Noarth

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.