.net - traducir - estilo de control de versiones major.minor.build.revision vs year.month.day.whatever estilo de control de versiones
status traductor google (7)
¿Hay alguna razón para usar un estilo de versión sobre el otro para los ensamblados de .NET?
Me gustaría saber si hay ventajas / desventajas en el uso del estilo además del gusto.
¿Por qué elegir? Puede usar un formato como Major.Minor.YYMMDD.Revision y obtener lo mejor de ambos mundos.
Editar Como se señala en los comentarios, a veces el rango de cada campo está restringido. En ese caso, puede usar Major.Minor.YMMDD.Revision.
¡Con suerte, cambiarías la versión menor al menos cada 10 años!
La ventaja del tiempo es que obtienes un número de versión creciente y codificas la marca de tiempo.
La ventaja de utilizar números más tradicionales es que es más fácil de entender para las personas. Todos sabemos más o menos lo que significa "v2.1", por ejemplo.
En general, sugiero usar el tiempo porque la información agregada es útil. La ventaja de los otros números es solo para marketing, y para eso puedes hacerlo de todos modos.
Por ejemplo, ¿por qué no tener ambos, a la "v2.1.20090214". Ahora tiene marketing en la sección major.minor y utilidad en la sección "build".
Simplemente dejo AssemblyVersion en "1.0. *" Y elimino cualquier AssemblyFileVersion.
Luego puedo incrementar los números de versión mayor y menor según me parezca apropiado y dejar que la compilación y la revisión base de DateTime se establezcan automáticamente.
A menos que tenga herramientas de compilación alternativas que controlen el número de compilación y revisión de acuerdo con algún otro esquema, no veo ninguna ventaja real al configurarlas manualmente.
Una desventaja de la numeración de versiones basada en fechas es la percepción negativa del software antiguo.
Aunque, lo uso de todos modos porque encaja muy bien en mis proyectos.
Uso algunos scripts de compilación que actualizan mi revisión en base a la revisión de SVN. Eso hace que sea trivial rastrear un dll de vuelta al código fuente que lo creó.
El tiempo es más complicado; debe comenzar a buscar en el panel de historial, dónde, ya que la mayoría de las herramientas de control de origen tienen una función de "obtener revisión".
Usar tiempo / fecha tiene una desventaja más (aparte de las ya mencionadas en otras respuestas aquí):
Si su equipo de desarrollo está distribuido en diferentes zonas horarias, nunca estará seguro de cuál de las dos versiones creadas con una hora de diferencia es la más nueva. A menos que también la versión de la zona horaria o forzar la fecha / hora en, por ejemplo, GMT.
La ventaja de utilizar el esquema major.minor.revision es la semántica. Hay un método para actualizar cada uno de estos números:
El cambio de número importante significa que la nueva versión es incompatible con la anterior y cualquier dependiente de la versión anterior requerirá cambios de código para actualizar al nuevo paquete.
El cambio de número menor significa que la nueva versión es retrocompatible con la versión anterior, pero tiene mejoras significativas con respecto a la versión anterior.
El número de revisión se actualiza cada vez que se aplica una corrección de errores a la compilación de modo que no produzca un cambio de compatibilidad ni se introduzcan características más nuevas.
Al especificar las dependencias, puede decir que depende de foo-1.0.0 - foo-1.99.999, y puede estar seguro de que no terminará con una actualización del paquete que rompe su aplicación.
Si comenzó con una versión secundaria más alta de una dependencia, por ejemplo, foo-1.4.22, debe especificar la dependencia como foo-1.4.22 - foo-1.99.999, para que no termine instalando una versión anterior que 1.4.x, que podría tener alguna funcionalidad / mejora falta de él.