Gabeln Sie ein Projekt, wo beginnen meine Versionsnummern?

12

Ich habe ein Projekt gegabelt und viel davon geändert. Diese Gabelung ist hier nicht nur eine kleine Funktionsänderung und dort eine vergrabene Fehlerbehebung, sondern eine ziemlich wesentliche Änderung. Nur der größte Teil des Kerncodes wird gemeinsam genutzt.

Ich habe dieses Projekt in Version 2.5.0 gegabelt. Für eine Weile habe ich angefangen, meine Gabel bei v3.0 zu versionieren. Ich bin mir jedoch nicht sicher, ob dies der richtige Weg ist, vor allem, weil die Dinge verwirrend werden, wenn dieses Projekt auf Version 3.0 kommt. Aber ich möchte nicht bei v1.0 oder v0.1 neu anfangen, da dies die Kindheit, Instabilität und Nicht-Rücksichtnahme eines Projekts impliziert. Dies ist nicht wahr, da der größte Teil des Kerncodes sehr verfeinert und stabil ist.

Ich weiß wirklich nicht, was ich tun soll, also frage ich hier: Wie gehe ich normalerweise mit solchen Situationen um? Beginnen die meisten Gabeln von vorne, erhöhen die Versionsnummern oder tun Sie etwas anderes, das mir nicht bekannt ist.

TheLQ
quelle
5
Ich sehe nicht, wie 1.0 Kindheit oder Instabilität impliziert. Alles unter 1,0 ja, aber 1,0 impliziert, dass es nicht mehr in den Kinderschuhen steckt und bereit ist zu rocken. Wenn es Sie bequemer macht, gehen Sie mit 1.1 (10% zusätzliche Reife !!!);)
Mchl
1
Was hast du aus Neugier gegabelt?
Compman

Antworten:

13

Die meisten Gabeln, die ich gesehen habe, starten wieder ab Version 1.0. Aber ich gehe davon aus, dass Sie auch den Namen Ihrer Gabel geändert haben, daher bin ich mir nicht sicher, warum es Verwirrung geben würde, wenn Sie einfach mit Version 3.0 beginnen würden.

Ich würde den Namen des Projekts ändern, Version 1.0 veröffentlichen und klarstellen, dass das Projekt ein Zweig eines anderen Projekts ist. Ich glaube nicht, dass es bei diesem Ansatz Verwirrung geben wird.

Wenn Sie sich wirklich Sorgen um das Label "1.0" machen, veröffentlichen Sie einfach Version 2.0 kurz nach 1.0 ...

Dean Harding
quelle
... oder geben Sie v2.0 direkt frei und überspringen Sie v1.0 insgesamt. Es wäre nicht das erste Mal, dass dies getan wird.
Konamiman
In meiner Firma startete sogar ein Projekt mit v2.4.
user253751
6

Haben Sie Ihre eigene Roadmap und halten Sie sich daran, beginnend mit der Nummer der Originalversion, aber versuchen Sie nicht, mit der aktuellen Version des Originalprodukts zu fahren.

dukeofgaming
quelle
1
Wenn Sie nicht versuchen, das ursprüngliche Projekt in irgendeiner Weise parallel zu schalten, besteht in Zukunft keine aussagekräftige Korrelation zwischen den Versionsnummern. Das heißt, es macht keinen Sinn, jetzt - ab 3.0 - eine solche Korrelation herzustellen, da nur eine unerfüllbare Erwartung entsteht.
Tom Anderson
Ich stehe korrigiert. Sie sollten Ihre eigene Version 1.0 starten, die Ihnen bei der Unterscheidung hilft. Versionen sollten etwas bedeuten, nicht nur einen Marketing-Stunt (v.gr. "v5.4", nur um nicht neu auszusehen).
Dukeofgaming
1
@ TomAnderson: Wenn er beispielsweise Version 2.5 gibt und die erste Version seiner Gabel entweder 2.6 oder 3.0 erstellt, kann er auf die andere App als vollständigen Verlauf seines Projekts verweisen . Welches ist eine bescheiden bedeutsame Korrelation.
DougM
3

Vielleicht möchten Sie überlegen, ob (und wie viel) Ihr Projekt mit dem ursprünglichen Projekt in Beziehung steht. Wenn Sie vorhaben, neue Funktionen aus dem Originalprojekt in Ihr Projekt zu portieren, sollten Sie in Betracht ziehen, Ihre Versionsnummern mit den Versionen des Originals übereinzustimmen.

Schauen Sie sich als Beispiel MariaDB an, eine Abzweigung von MySQL. Sie möchten, dass es ein "Drop-In" -Ersatz für MySQL bleibt, sodass MariaDB 5.2 beispielsweise alle Funktionen von MySQL 5.2 bietet.

Siehe: http://kb.askmonty.org/v/mariadb-versus-mysql

Hinweis: Seit diese Antwort veröffentlicht wurde, weicht MariaDB erheblich von MySQL ab und folgt nun einem eigenen Versionsschema.

Mchl
quelle
1

0,1 kann auf eine Kindheit hinweisen, aber Version 1.0+ bedeutet stabil. Eine Zunahme der Hauptversionsnummern, z. B. 2.0, 3.0, deutete im Allgemeinen auf eine große Funktionsänderung hin.

Z.B

  • Version 1.0 meiner Anwendung war ein Tool zum Ausführen von Testskripten mit Setup.
  • In Version 2.0 wurde die Unterscheidung zwischen Testskripten und Umgebungs-Setup-Skripten aufgehoben.
  • In Version 3.0 wurde eine GUI zum Schreiben von Skripten als Flussdiagramme hinzugefügt. Es handelt sich um erkennbar unterschiedliche Produkte, aber selbst Version 1 war ein funktionierendes Produkt, vollständig stabil usw. Die Versionen 2 und 3 sind entstanden, weil entschieden wurde, dass diese großen Änderungen gut sein würden. Wenn wir diese großen Änderungen nicht gewollt hätten und einfach weiter Fehlerbehebungen usw. durchgeführt hätten. Kleinere Versionsnummern hätten sich nur erhöht, 1.10,1.20 usw., und das wäre in Ordnung gewesen.

Was ich damit sagen will , ist, dass Hauptversionsnummern nicht die Reife anzeigen, sondern wichtige Funktionssätze. Das war eine Art Tangente an die Versionsnummer Ihres Produkts.

Was ich zuvor gesehen habe, was mir sehr gut gefallen hat, war, die Versionierung ab 1.0 erneut zu starten (oder ab 3.0, wenn Sie es wirklich bevorzugen) und dann in Klammern anzugeben, aus welcher Version des Originals zuletzt Funktionen gezogen wurden.

  • Anfangs: " MyFork v1.1 (basierend auf OrigProg v3.0)
  • Einige Verbesserungen an MyFork: MyFork v1.3 (basierend auf OrigProg v3.0)
  • OrigProg veröffentlichte eine Hauptversion und MyFork zog und fusionierte: MyFork v2.1 (basierend auf OrigProg v4.0)
  • Einige wichtige Änderungen an MyFork vorgenommen (wahrscheinlich wird es nie wieder einfach sein, mit OrigProg zusammenzuführen): MyFork v3.0 (basierend auf OrigProg v4.0)
Lyndon White
quelle
0

Wenn möglich, führen Sie Ihre Gabel wieder zum ursprünglichen Projekt zusammen. Ich kann das nicht genug betonen.

Wenn Sie Ihre Versionsnummern erneut eingeben, verwenden Sie die von Ihnen gegabelte sowie ein Datumssuffix.


quelle
2
Beim Wechsel von "Python 1.1" zu "Userthon 1.1. {DATE}" wird das erwartete Format der Versionsnummern verletzt.
DougM