Es kommt wirklich auf das Projekt an; Einige Projekte veröffentlichen nicht einmal eine Version 1.0.
Die Entwickler von MAME beabsichtigen nicht, eine Version 1.0 ihres Emulatorprogramms zu veröffentlichen. Das Argument ist, dass es niemals wirklich "fertig" sein wird, weil es immer mehr Arcade-Spiele geben wird. Auf Version 0.99 folgte einfach Version 0.100 (Nebenversion 100> 99). In ähnlicher Weise folgte auf Xfire 1.99 1.100. Nach 6 Jahren Entwicklungszeit hat eMule noch nicht einmal die Version 0.50 erreicht. Software-Versionierung bei Wikipedia
Eine beliebte Methode zur Nummerierung von Versionen (die ich bereits verwendet habe) ist die semantische Versionierung .
Nach diesem Schema vermitteln Versionsnummern und die Art und Weise, wie sie sich ändern, eine Bedeutung für den zugrunde liegenden Code und für die Änderungen, die von einer Version zur nächsten geändert wurden.
Einige Zitate, um Ihnen weitere Ideen zur Funktionsweise zu geben und / oder einige Ihrer Fragen zu beantworten:
Woher weiß ich, wann ich 1.0.0 veröffentlichen muss?
Wenn Ihre Software in der Produktion verwendet wird, sollte sie wahrscheinlich bereits 1.0.0 sein. Wenn Sie eine stabile API haben, von der Benutzer abhängig sind, sollten Sie 1.0.0 sein. Wenn Sie sich große Sorgen um die Abwärtskompatibilität machen, sollten Sie wahrscheinlich bereits 1.0.0 sein.
Entmutigt dies nicht eine schnelle Entwicklung und eine schnelle Iteration?
In der Hauptversion Null dreht sich alles um die schnelle Entwicklung. Wenn Sie die API jeden Tag ändern, sollten Sie sich entweder noch in Version 0.xx oder in einem separaten Entwicklungszweig befinden, der an der nächsten Hauptversion arbeitet.
Wenn selbst die kleinsten rückwärts inkompatiblen Änderungen an der öffentlichen API einen größeren Versionsschub erfordern, werde ich dann nicht sehr schnell bei Version 42.0.0 landen?
Dies ist eine Frage der verantwortungsvollen Entwicklung und Voraussicht. Inkompatible Änderungen sollten nicht leichtfertig in Software eingeführt werden, die viel abhängigen Code enthält. Die Kosten, die für ein Upgrade anfallen müssen, können erheblich sein. Wenn Sie größere Versionen anstoßen müssen, um inkompatible Änderungen freizugeben, müssen Sie die Auswirkungen Ihrer Änderungen durchdenken und das Kosten-Nutzen-Verhältnis bewerten.
Es gibt auch Regeln zum Festlegen von "Alpha" -, "Beta" usw.-Versionen. Überprüfen Sie die Details unter http://semver.org/ .
[Bearbeiten] Ein weiteres interessantes Versionsnummerierungsschema ist das von MongoDB verwendete :
MongoDB verwendet die ungeraden Versionen für Entwicklungsversionen.
In einer MongoDB-Version gibt es 3 Nummern: ABC
- A ist die Hauptversion. Dies wird sich selten ändern und sehr große Änderungen bedeuten
- B ist die Versionsnummer. Dies beinhaltet viele Änderungen, einschließlich Funktionen und Dinge, die möglicherweise die Abwärtskompatibilität beeinträchtigen. Gerade Bs werden stabile Zweige sein, und ungerade Bs werden sich entwickeln.
- C ist die Versionsnummer und wird für Fehler und Sicherheitsprobleme verwendet.
Beispielsweise:
- 1.0.0: erste GA-Version
- 1.0.x: Fehlerbehebungen auf 1.0.x - dringend zu aktualisieren, sehr geringes Risiko
- 1.1.x: Entwicklungsversion. Dies schließt neue Funktionen ein, die noch nicht vollständig fertiggestellt sind und in Arbeit sind. Einige Dinge können sich von 1.0 unterscheiden
- 1.2.x: zweite GA-Version. Dies wird der Höhepunkt der Version 1.1.x sein.