Número de versión como parte del nombre de un archivo

15

Veo que algunos programas tienen el número de versión incluido como parte de su nombre de archivo, mientras que otros no. Estoy más acostumbrado al último tipo, y creo que es más popular, pero a veces veo el tipo anterior en las bibliotecas de JavaScript. Por ejemplo, el nombre de archivo de jQuery es como en jquery-2.1.0.jslugar de jquery.js. Cada vez que actualizo este tipo de archivos, tengo que buscar los lugares en otros programas que cargan estos archivos, y cambiar el nombre del archivo al que hacen referencia, y eliminar manualmente la versión anterior de estas bibliotecas. Eso es un inconveniente para mí, por lo que prefiero cambiar el nombre del archivo para excluir el número de versión y mantener el nombre del archivo mencionado para no incluir el número de versión.

Sospecho que estos números son para algún tipo de control de versiones, pero no tengo claro cuándo y cómo se usan.

  • ¿Cuáles son las ventajas y desventajas de incluir números de versión en el nombre del archivo?
  • ¿Existe un consenso de facto sobre qué áreas de software o idiomas usan el número de versión en el nombre del archivo y qué áreas / idiomas no lo hacen? Si es así, ¿hay alguna razón para eso?
sawa
fuente
3
La mayor ventaja es que puedes asegurarte de que los cambios importantes no sucedan antes de que estés listo para ellos
Ratchet Freak
@ratchetfreak No actualiza cuando no está listo. ¿Vos si?
sawa
2
@sawa Suponga que jQuery.com/jquery.js es la URL de la última versión y a eso se refiere su código. ¿Qué pasaría si jQuery publicara una actualización radical? Por supuesto, se vincularía a su propia copia local, pero creo que esto es lo que significa el loco de trinquete
11684
@ 11684 Ya veo, lo tengo.
sawa
1
Señalaría, en el ejemplo de jquery, que las versiones alojadas en Google y cdnjs.com CDN ponen la versión en el árbol de directorios, en lugar del nombre del archivo. (El CDN de jquery de jquery.com y Microsoft tienen la versión en el nombre del archivo).
Brian S

Respuestas:

24
  1. Tiene sentido especificar la versión que necesita. El comportamiento en el que puede confiar podría haber cambiado, por lo que lo nuevo no siempre es mejor. Primero, pruebe si una nueva versión de una biblioteca funciona para usted. Luego, actualice explícitamente.

  2. En el caso de los recursos web, es importante que la versión sea parte del nombre del archivo en el contexto del almacenamiento en caché . Para recursos estáticos como jquery.jsusted querrá un tiempo de caché muy largo antes de volver a buscarlo. Sin embargo, durante una actualización, desea que su código use la nueva versión inmediatamente , en lugar de que los clientes cambien a la nueva versión durante el día siguiente. Como foo-1.2.3.jses un recurso diferente foo-1.2.4.js, no habrá cachés en el camino.

amon
fuente
1
+1, aunque creo que esta respuesta es un poco de un solo filo. De hecho, hay situaciones en las que "sin número de versión" puede ser la mejor opción. Vea mi respuesta a continuación.
Doc Brown
3

(Excluyendo la situación de almacenamiento en caché web mencionado por @amon): supongo que hace una copia local de una biblioteca de terceros para el uso de su programa, de lo contrario, la necesidad de un número de versión sería obvio. El escenario de uso de dicha biblioteca de terceros dentro del sistema de software que está desarrollando puede ser uno de estos dos:

  • todas las partes de su programa que usan la biblioteca siempre compartirán la misma versión de la biblioteca (idealmente "la más nueva"), y usted actualizará la biblioteca de vez en cuando. Luego, mantener el número de versión como parte del nombre del archivo puede ser realmente tedioso, y en realidad recomendaría eliminar el número de su copia local del archivo si es posible. Tenga en cuenta que esta es solo una buena idea si tiene confianza en que el proveedor externo mantiene la biblioteca en su mayoría compatible con versiones anteriores.

  • espera tener algunas partes de su programa que necesitan la versión A y otras que necesitan la versión B. Obviamente, necesitará un número de versión para la biblioteca de terceros. Tenga en cuenta que esta situación también puede ocurrir cuando no puede probar fácilmente todas sus partes de software utilizando la lib de una vez después de introducir una nueva versión.

Y si usted es un vendedor de bibliotecas, debe incluir el número de versión de forma predeterminada, pero dejar que el usuario de esa biblioteca decida por sí mismo si conserva ese número o lo quita.

Doc Brown
fuente
Si. Tienes razón. Mencioné el primero de tus dos casos.
sawa
1
@sawa: tenga en cuenta que su ejemplo fue jquery, para lo cual se mantiene el argumento de almacenamiento en caché web de amon. El razonamiento detrás de mi respuesta fue explicar diferentes situaciones en las que "sin número de versión" podría ser la mejor opción.
Doc Brown