Numéro de version dans le cadre d'un nom de fichier


15

Je vois que certains logiciels ont le numéro de version inclus dans le nom de leur fichier, tandis que d'autres n'en ont pas. Je suis plus habitué à ce dernier type, et je pense que c'est plus populaire, mais je vois parfois l'ancien type dans les bibliothèques javascript. Par exemple, le nom de fichier de jQuery est comme jquery-2.1.0.jsau lieu de jquery.js. Chaque fois que je mets à jour ces types de fichiers, je dois rechercher les emplacements dans d'autres programmes qui chargent ces fichiers, changer le nom de fichier auquel ils se réfèrent et supprimer manuellement l'ancienne version de ces bibliothèques. Cela ne me convient pas, je préfère donc renommer le fichier pour exclure le numéro de version et conserver le nom de fichier mentionné pour ne pas inclure le numéro de version.

Je soupçonne que ces chiffres sont pour une sorte de contrôle de version, mais je ne sais pas quand et comment ils sont utilisés.

  • Quels sont les avantages et les inconvénients d'inclure des numéros de version dans le nom de fichier?
  • Existe-t-il un consensus de facto sur les domaines du logiciel ou des langues qui utilisent le numéro de version dans le nom du fichier et ceux qui ne le font pas? Si oui, y a-t-il un rationnel pour cela?

3
le plus grand avantage est que vous pouvez vous assurer que les changements de rupture ne se produisent pas avant d'être prêts pour eux
ratchet freak

@ratchetfreak Vous ne mettez pas à jour lorsque vous n'êtes pas prêt. Le faites vous?
sawa

2
@sawa Supposons que jQuery.com/jquery.js soit l'URL de la dernière version et c'est à cela que votre code fait référence. Que se passerait-il si jQuery publiait une mise à jour radicale? Bien sûr, vous lieriez à votre propre copie locale, mais je pense que c'est ce que signifie ratchet freak
11684

@ 11684 Je vois, je l'ai.
sawa

1
Je voudrais souligner, dans l'exemple de jquery, que les versions hébergées de Google et cdnjs.com CDN mettent la version dans l'arborescence de répertoires, plutôt que le nom de fichier. (Le jquery CDN de jquery.com et Microsoft ont tous deux la version dans le nom du fichier.)
Brian S

Réponses:


24
  1. Il est logique de spécifier la version dont vous avez besoin. Le comportement sur lequel vous pouvez compter pourrait avoir changé, donc plus récent n'est pas toujours meilleur. Tout d'abord, testez si une nouvelle version d'une bibliothèque fonctionne pour vous. Ensuite, mettez à jour explicitement.

  2. Dans le cas des ressources Web, il est important que la version fasse partie du nom de fichier dans le contexte de la mise en cache . Pour les ressources statiques comme jquery.jsvous voudrez un temps de cache très long avant qu'il ne soit récupéré. Cependant, lors d'une mise à jour, vous souhaitez que votre code utilise immédiatement la nouvelle version , plutôt que de faire basculer les clients vers la nouvelle version le jour suivant. Comme foo-1.2.3.jsc'est une ressource différente foo-1.2.4.js, aucun cache ne gênera.


1
+1, même si je pense que cette réponse est un peu tranchante. Il existe en effet des situations où "aucun numéro de version" peut être le meilleur choix. Voir ma réponse ci-dessous.
Doc Brown

3

(À l'exception de la situation de mise en cache Web mentionnée par @amon): Je suppose que vous faites une copie locale d'une bibliothèque tierce pour l'utilisation de votre programme, sinon la nécessité d'un numéro de version serait évidente. Le scénario d'utilisation d'une telle bibliothèque tierce dans le système logiciel que vous développez peut être l'un des deux:

  • toutes les parties de votre programme qui utilisent la lib doivent toujours partager la même version de la lib (idéalement "la plus récente"), et vous allez mettre à jour la lib de temps en temps. Ensuite, conserver le numéro de version dans le nom du fichier peut être très fastidieux, et je recommanderais en fait de supprimer le numéro de votre copie locale du fichier si possible. Notez que ce n'est une bonne idée que si vous avez la certitude que le fournisseur tiers conserve la bibliothèque principalement compatible avec les versions antérieures.

  • vous vous attendez à avoir certaines parties de votre programme qui ont besoin de la version A, et d'autres qui ont besoin de la version B. Ensuite, vous aurez évidemment besoin d'un numéro de version pour la bibliothèque tierce. Notez que cette situation peut également se produire lorsque vous ne pouvez pas tester facilement toutes vos parties logicielles à l'aide de la bibliothèque à la fois après avoir introduit une nouvelle version.

Et si vous êtes vous-même un vendeur de bibliothèque, vous devez inclure le numéro de version par défaut, mais laissez l'utilisateur de cette bibliothèque décider par lui-même s'il garde ce numéro ou le supprime.


Oui. Tu as raison. Je parlais du premier de vos deux cas.
sawa

1
@sawa: notez que votre exemple était jquery, pour lequel l'argument de mise en cache Web d'Amon est valable. Le raisonnement derrière ma réponse était d'expliquer différentes situations où "aucun numéro de version" pourrait être le meilleur choix.
Doc Brown
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.