software significado semantic practices number how examples best versioning

significado - versioning naming convention



Mejores Prácticas: Versiones de Software (12)

Básicamente sigo este patrón:

  • comenzar desde 0.1.0

  • cuando esté listo, bifurco el código en el repositorio de origen, etiqueta 0.1.0 y creo la rama 0.1.0, la cabeza / troncal se convierte en 0.2.0-snapshot o algo similar

  • Agrego nuevas funciones solo al troncal, pero el backport se corrige a la rama y con el tiempo libero 0.1.1, 0.1.2, ...

  • Declaro la versión 1.0.0 cuando el producto se considera una característica completa y no tiene defectos importantes

  • a partir de entonces, todos pueden decidir cuándo aumentar la versión principal ...

¿Existe alguna guía o práctica recomendada estándar sobre cómo crear una versión de un software que desarrolle en su tiempo libre para divertirse, pero sin embargo, será utilizado por algunas personas? Creo que es necesario crear una versión de este tipo de software para que conozca la versión uno (por ejemplo, para la corrección de errores, el soporte, etc.).

¿Pero dónde empiezo el versionado? 0.0.0? o 0.0? ¿Y entonces cómo aumentar los números? mayor lanzamiento. menor cambio? ¿Y no debería cualquier compromiso con un sistema de control de versiones ser otra versión? ¿O esto es solo para versiones que se usan de manera productiva?


Comienzo a la versión en el segmento más bajo (sin revisión). No limito este segmento a 10. A menos que esté realizando un seguimiento de las compilaciones, solo debe decidir cuándo desea aplicar un incremento. Si tiene una fase de control de calidad, entonces puede ser que aplique un incremento al segmento más bajo y luego el siguiente segmento hacia arriba cuando pase el control de calidad y se libere. Deje el segmento superior para los cambios de comportamiento / UI principales.

Si eres como yo, lo convertirás en un híbrido de los métodos para que coincida con el ritmo de la progresión de tu software.

Creo que el patrón más aceptado abc o abcd, especialmente si tiene QA / Compliance en la mezcla. He tenido muchas citas por ser parte regular de las versiones que renuncié a la corriente principal.

No hago un seguimiento de las compilaciones, así que me gusta usar el patrón abc a menos que se trate de un hotfix. Cuando tengo que aplicar una revisión, aplico el parámetro d como una fecha con hora. Adopté el parámetro de tiempo como d porque siempre hay el potencial de varios en un día en que las cosas realmente explotan. Solo aplico el segmento d (YYYYMMDDHHNN) cuando estoy divergiendo para un arreglo de producción.

Personalmente, no me opondría a un esquema de software de va.b revc donde c es YYYYMMDDHHMM o YYYYMMDD.

Todo lo dicho. Si solo puede enganchar una herramienta para configurarla y ejecutarla, evitará el dolor de cabeza al tener que organizar la faceta de opinión del control de versiones y simplemente puede decir "usar la herramienta" ... porque todos en el proceso de desarrollo suelen ser tan compatibles. .


Como dice Mahesh: yo usaría el tipo de versionamiento xyz

x - lanzamiento principal y - lanzamiento menor z - número de compilación

es posible que desee agregar un datetime, tal vez en lugar de z.

Incrementas el lanzamiento menor cuando tienes otro lanzamiento. La versión principal probablemente se mantendrá en 0 o 1, cambiará cuando realmente realice cambios importantes (a menudo cuando su software se encuentra en un punto en el que no es compatible con versiones anteriores o si cambió su marco completo)


Debe comenzar con la versión 1, a menos que sepa que la primera versión que "lanza" está incompleta de alguna manera.

En cuanto a cómo se incrementan las versiones, depende de usted, pero use la numeración de compilación principal, secundaria, como guía.

No es necesario que cada versión que se comprometa con el control de código fuente sea otra versión; pronto tendrá un número de versión muy grande. Solo necesita incrementar el número de versión (de alguna manera) cuando lance una nueva versión al mundo exterior.

Entonces, si realiza un cambio importante, cambie de la versión 1.0.0.0 a la versión 2.0.0.0 (por ejemplo, cambió de WinForms a WPF). Si realiza un cambio más pequeño, cambie de 1.0.0.0 a 1.1.0.0 (agregó soporte para archivos png). Si realiza un cambio menor, pase de 1.0.0.0 a 1.0.1.0 (corrigió algunos errores).

Si realmente desea obtener detalles, use el número final como el número de compilación que se incrementaría para cada registro / confirmación (pero creo que va demasiado lejos).


La respuesta básica es "depende".

¿Cuál es tu objetivo en el versionado? Muchas personas usan version.revision.build y solo anuncian version.revision al mundo ya que es una versión de lanzamiento en lugar de una versión dev. Si usa la ''versión'' de check-in, entonces encontrará rápidamente que sus números de versión aumentan de tamaño.

Si está planeando su proyecto, incrementaría la revisión de las versiones con cambios menores y la versión de las versiones con cambios importantes, correcciones de errores o funcionalidad / características. Si está ofreciendo versiones beta o de tipo de compilación nocturna, extienda el control de versiones para incluir la compilación y el incremento que se produce con cada versión.

Aún así, al final del día, depende de usted y tiene que tener sentido para usted.


Otro ejemplo más para el enfoque ABC es el Eclipse Bundle Versiones . Los paquetes de Eclipse tienen un cuarto segmento:

En Eclipse, los números de versión se componen de cuatro (4) segmentos: 3 enteros y una cadena llamada respectivamente major.minor.service.qualifier . Cada segmento captura una intención diferente:

  • el segmento principal indica rotura en la API
  • el segmento menor indica cambios "visibles externamente"
  • El segmento de servicio indica correcciones de errores y el cambio de la secuencia de desarrollo.
  • El segmento calificador indica una construcción particular

Sabes que siempre puedes verificar lo que hacen los demás. El software de código abierto tiende a permitir el acceso a sus repositorios. Por ejemplo, puede apuntar su navegador SVN a http://svn.doctrine-project.org y echar un vistazo al sistema de control de versiones usado por un proyecto real.

Números de versión, etiquetas, todo está ahí.


Seguimos el enfoque abc como:

increament ''a'' si hay algunos cambios importantes ocurridos en la aplicación. Como actualizamos la aplicación .NET 1.1 a .NET 3.5

increament ''b'' si hay algunos cambios menores como cualquier nuevo CR o Mejora se implementa.

increament ''c'' si hay algunos defectos arreglados en el código.


También existe el esquema de versiones de la fecha , por ejemplo: YYYY.MM , YY.MM , YYYYMMDD

Es bastante informativo porque una primera mirada da una impresión sobre la fecha de lanzamiento. Pero prefiero el esquema xyz, porque siempre quiero saber el punto exacto de un producto en su ciclo de vida (Major.minor.release)


Usamos abcd donde

  • a - major (incrementado en la entrega al cliente)
  • b - menor (incrementado en la entrega al cliente)
  • c - revisión (incrementada en lanzamientos internos)
  • d - construir (incrementado por el control de crucero)

Yo uso esta regla para mis aplicaciones:

xyz

Dónde:

  • x = número de versión principal, 1- ~.
  • y = número de función, 0-9. Aumente este número si el cambio contiene nuevas funciones con o sin correcciones de errores.
  • z = número de hotfix, 0- ~. Aumente este número si el cambio solo contiene correcciones de errores.

Ejemplo:

  • Para la nueva aplicación, el número de versión comienza con 1.0.0.
  • Si la nueva versión solo contiene correcciones de errores, aumente el número de revisión para que el número de versión sea 1.0.1.
  • Si la nueva versión contiene nuevas funciones con o sin corrección de errores, aumente el número de la función y restablezca el número de la revisión a cero para que el número de la versión sea 1.1.0. Si el número de la función llega a 9, aumente el número de la versión principal y restablezca la función y el número de la revisión a cero (2.0.0, etc.)

Yo usaría xyz tipo de versionamiento

x - lanzamiento principal
y - lanzamiento menor
z - número de compilación