Usted menciona que está buscando usar el control de versiones semántico, así que echemos un vistazo a las especificaciones de control de versiones semántico en http://semver.org/ :
Dado un número de versión MAJOR.MINOR.PATCH, incremente el:
- Versión PRINCIPAL cuando realiza cambios de API incompatibles,
- Versión MENOR cuando agrega funcionalidad de una manera compatible con versiones anteriores, y
- Versión PATCH cuando realiza correcciones de errores compatibles con versiones anteriores.
Las etiquetas adicionales para metadatos previos al lanzamiento y de compilación están disponibles como extensiones para el formato MAJOR.MINOR.PATCH.
y un poco más abajo:
Una versión previa al lanzamiento PUEDE denotarse agregando un guión y una serie de identificadores separados por puntos inmediatamente después de la versión del parche. Los identificadores DEBEN comprender solo caracteres alfanuméricos y guiones ASCII [0-9A-Za-z-]. Los identificadores NO DEBEN estar vacíos. Los identificadores numéricos NO DEBEN incluir ceros a la izquierda. Las versiones preliminares tienen una precedencia menor que la versión normal asociada. Una versión previa al lanzamiento indica que la versión es inestable y podría no satisfacer los requisitos de compatibilidad previstos, como se indica en su versión normal asociada. Ejemplos: 1.0.0-alpha, 1.0.0-alpha.1, 1.0.0-0.3.7, 1.0.0-x.7.z.92.
Entonces, si está lanzando una versión beta verdadera de su versión 1.0, debe etiquetarla 1.0.0-beta
(o similar de acuerdo con las especificaciones). Si usted va a tener varias versiones beta a medida que corregir errores, a continuación 1.0.0-beta.1
, 1.0.0-beta.2
, etc.
Cuando agrega funciones que son compatibles con versiones anteriores, debe incrementar el número MENOR. Si realiza muchos cambios internos que causarían cambios importantes en otra parte de su aplicación, entonces ese es un cambio MAYOR. Si está haciendo cambios menos dramáticos (por ejemplo, solo agrega código y no cambia el comportamiento del código existente), entonces esto sería un cambio MENOR. Si tiene una aplicación pesada de UI y cambia completamente esa UI, también diría que es un cambio MAYOR también (la UI puede considerarse la API para los usuarios finales).
En cuanto a cómo agregar indicadores a su repositorio de git, le sugiero que primero cree una 1.x
rama. Esto le permitirá seguir fácilmente todo en la versión 1 mientras permite el desarrollo continuo de la versión 2 en master. Luego etiqueta la versión beta con una etiqueta 1.0.0-beta
(o -beta.1
si habrá varias versiones beta). Una vez que corrija todos los errores que necesita corregir, etiquete la 1.0.0
versión real . Luego etiquete cada lanzamiento según sea necesario.
Puede echar un vistazo a algunos flujos de trabajo probados y verdaderos para git como git flow y github flow para obtener ideas sobre cómo desea configurar su flujo de trabajo continuo.
Además, si desea un poco más de contexto sobre las versiones semánticas para programas sin una API, esta respuesta se profundiza.