Mejores prácticas: control de versiones de software [cerrado]
¿Existe alguna guía o mejor práctica estándar sobre cómo versionar un software que usted desarrolla en su tiempo libre por diversión, pero que, sin embargo, será utilizado por algunas personas? Creo que es necesario crear una versión de dicho software para que usted sepa de qué versión se habla (por ejemplo, para corrección de errores, soporte, etc.).
¿Pero por dónde empiezo el versionado? 0.0.0? o 0,0? ¿Y luego cómo incremento los números? Lanzamiento importante. ¿Cambio menor? ¿Y cualquier compromiso con un sistema de control de versiones no debería ser otra versión? ¿O es solo para versiones que se utilizan de manera productiva?
Debe comenzar con la versión 1, a menos que sepa que la primera versión que "libera" está incompleta de alguna manera.
En cuanto a cómo incrementar las versiones, eso depende de usted, pero use la numeración de compilación mayor y menor como guía.
No es necesario tener cada versión que comprometas con el control de código fuente como otra versión; pronto tendrás un número de versión muy grande. Sólo necesita incrementar el número de versión (de alguna manera) cuando lanza una nueva versión al mundo exterior.
Entonces, si realiza un cambio importante, pase de la versión 1.0.0.0 a la versión 2.0.0.0 (cambió de WinForms a WPF, por ejemplo). Si realiza un cambio menor, pase 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 (arregló algunos errores).
Si realmente desea obtener detalles, utilice el número final como número de compilación que se incrementará con cada registro/compromiso (pero creo que eso va demasiado lejos).
Yo usaría x.y.z
algún tipo de versionado.
x
- versión principal
y
- versión menor
z
- número de compilación
Básicamente sigo este patrón:
empezar desde 0.1.0
cuando está listo, bifurco el código en el repositorio fuente, etiqueto 0.1.0 y creo la rama 0.1.0, el encabezado/tronco se convierte en 0.2.0-snapshot o algo similar.
Agrego nuevas funciones solo al tronco, pero el backport se corrige en la rama y con el tiempo lanzo 0.1.1, 0.1.2, ...
Declaro la versión 1.0.0 cuando el producto se considera completo y no tiene deficiencias importantes.
a partir de ese momento, todos pueden decidir cuándo incrementar la versión principal...
Utilizo esta regla para mis aplicaciones:
xyz
Dónde:
- x = número de versión principal, 1-~.
- y = número de característica, 0-9. Aumente este número si el cambio contiene nuevas funciones con o sin correcciones de errores.
- z = número de revisión, 0-~. Aumente este número si el cambio solo contiene correcciones de errores.
Ejemplo:
- Para una nueva aplicación, el número de versión comienza con 1.0.0.
- Si la nueva versión contiene solo 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 correcciones de errores, aumente el número de función y restablezca el número de revisión a cero para que el número de versión sea 1.1.0. Si el número de función llega a 9, aumente el número de versión principal y restablezca el número de función y revisión a cero (2.0.0, etc.)