Versionsnummer als Teil eines Dateinamens

15

Ich sehe, dass einige Programme die Versionsnummer als Teil ihres Dateinamens haben, andere nicht. Ich bin eher an den letzteren Typ gewöhnt, und ich denke, dass dieser populärer ist, aber ich sehe den ersteren Typ manchmal in Javascript-Bibliotheken. Zum Beispiel ist die jQuery-Dateinamen wie jquery-2.1.0.jsstatt jquery.js. Jedes Mal, wenn ich diese Dateitypen aktualisiere, muss ich nach den Stellen in anderen Programmen suchen, die diese Dateien laden, den Dateinamen ändern, auf den sie verweisen, und die ältere Version dieser Bibliotheken manuell löschen. Das ist für mich unpraktisch, daher benenne ich die Datei eher um, um die Versionsnummer auszuschließen, und behalte den Dateinamen, auf den verwiesen wird, ohne die Versionsnummer.

Ich vermute, dass diese Nummern für eine Art Versionskontrolle sind, bin aber nicht klar, wann und wie sie verwendet werden.

  • Was sind die Vor- und Nachteile für die Aufnahme von Versionsnummern in den Dateinamen?
  • Gibt es de facto einen Konsens darüber, in welchen Bereichen der Software oder in welchen Sprachen die Versionsnummer im Dateinamen verwendet wird und in welchen Bereichen / Sprachen nicht? Wenn ja, gibt es dafür eine Ration?
sawa
quelle
3
Der größte Vorteil ist, dass Sie sicherstellen können, dass Änderungen nicht passieren, bevor Sie dazu bereit sind
Ratschenfreak
@ratchetfreak Sie aktualisieren nicht, wenn Sie nicht bereit sind. Machst du?
Sawa
2
@sawa Angenommen, jQuery.com/jquery.js ist die URL der neuesten Version, auf die sich Ihr Code bezieht. Was würde passieren, wenn jQuery ein radikales Update veröffentlichen würde? Natürlich würden Sie auf Ihre eigene lokale Kopie verlinken, aber ich denke, das ist, was Ratschenfreak bedeutet
11684
@ 11684 Ich verstehe, ich habe es verstanden.
Sawa
1
Ich möchte im Beispiel von jquery darauf hinweisen, dass sowohl die von Google als auch die von cdnjs.com gehostete CDN-Version die Version im Verzeichnisbaum statt im Dateinamen ablegt. (Die jquery-CDN von jquery.com und Microsoft haben beide die Version im Dateinamen.)
Brian S

Antworten:

24
  1. Es ist sinnvoll, die gewünschte Version anzugeben. Das Verhalten, auf das Sie sich verlassen können, könnte sich geändert haben, daher ist neueres Verhalten nicht immer besser. Testen Sie zunächst, ob eine neue Version einer Bibliothek für Sie funktioniert. Aktualisieren Sie dann explizit.

  2. Im Fall von Webressourcen ist es wichtig, dass die Version Teil des Dateinamens ist, wenn das Caching durchgeführt wird . Für statische Ressourcen wie z. B. jquery.jswird eine sehr lange Cache-Zeit benötigt, bevor sie erneut abgerufen werden. Während eines Updates soll der Code jedoch sofort die neue Version verwenden , anstatt dass Clients am nächsten Tag auf die neue Version umstellen. Da foo-1.2.3.jses sich um eine andere Ressource handelt foo-1.2.4.js, werden keine Caches in die Quere kommen.

amon
quelle
1
+1, obwohl ich denke, dass diese Antwort ein bisschen einschneidig ist. In der Tat gibt es Situationen, in denen "keine Versionsnummer" die bessere Wahl ist. Siehe meine Antwort unten.
Doc Brown
3

(Ausgenommen die von @amon erwähnte Situation des Web-Caching): Ich gehe davon aus, dass Sie eine lokale Kopie einer Drittanbieter-Bibliothek für die Verwendung Ihres Programms erstellen, da ansonsten die Notwendigkeit einer Versionsnummer offensichtlich wäre. Das Verwendungsszenario einer solchen Bibliothek eines Drittanbieters in dem von Ihnen entwickelten Softwaresystem kann eines der beiden folgenden sein:

  • Alle Teile Ihres Programms, die die lib verwenden, müssen immer dieselbe Version der lib (im Idealfall "die neueste") verwenden, und Sie werden die lib von Zeit zu Zeit aktualisieren. Dann kann es sehr mühsam sein, die Versionsnummer als Teil des Dateinamens beizubehalten, und ich würde empfehlen, die Nummer nach Möglichkeit von Ihrer lokalen Kopie der Datei zu entfernen. Beachten Sie, dass dies nur dann eine gute Idee ist, wenn Sie sicher sind, dass der Drittanbieter die Bibliothek größtenteils abwärtskompatibel zu früheren Versionen hält.

  • Sie erwarten, dass einige Teile Ihres Programms Version A und andere Version B benötigen. Dann benötigen Sie offensichtlich eine Versionsnummer für die Third-Party-Bibliothek. Beachten Sie, dass diese Situation auch auftreten kann, wenn Sie nach der Einführung einer neuen Version nicht alle Ihre Softwareteile auf einmal mit der lib testen können.

Und wenn Sie selbst Bibliotheksverkäufer sind, sollten Sie standardmäßig die Versionsnummer angeben, aber den Benutzer dieser Bibliothek selbst entscheiden lassen, ob er diese Nummer behält oder sie entfernt.

Doc Brown
quelle
Ja. Du hast recht. Ich habe den ersten Ihrer beiden Fälle erwähnt.
Sawa
1
@sawa: beachte, dass dein Beispiel das war jquery, für das amons Web-Caching-Argument gilt. Der Grund für meine Antwort war, verschiedene Situationen zu erklären, in denen "keine Versionsnummer" die bessere Wahl sein könnte.
Doc Brown