Semantic Version Strategy es clave para caracterizar correctamente tus releases, artifacts, librerías,…

Hace tiempo escribí acerca de la estrategia de branching y hasta de los tipos de merge al crear la Pull Request, hoy toca hablar de lo que implica la Semantic Version y cómo se debe utilizar correctamente en nuestros pipelines de Azure DevOps. Esto es un básico en el desarrollo de software y ayuda a que todo el mundo esté alineado.

En esta entrada vamos a utilizar el patrón de Semantic Versioning 2.0.0 donde observamos la siguiente estructura, Major.Minor.Patch. Al final de la entrada encontrarás el link hasta dicha web.

Siguiente con el patrón de nomenclatura de le versión vemos:

  • Major, es el primer dígito por la izquierda y viene a significar que se han realizado cambios en la API que la hacen incompatible.
  • Minor, corresponde al segundo dígito por la izquierda y significa que se han realizado modificaciones compatibles
  • Patch, corresponde con el último dígito por la izquierda y significa que se han realizado correcciones frente a bugs

Así por ejemplo, si actualmente estamos trabajando sobre la release xxxx 2.0.0 y se hiciera una corrección de varios bugs, la versión resultante tras el despliegue se renombraría como xxxx 2.0.1. Si por otro lado, el cambio fuera por el despliegue de una nueva release, el resultado sería el de xxxx 3.0.0 y si a esta última release, se la realizara una modificación que no conllevara el despliegue de una nueva release, tendríamos como resultado xxxx 3.1.0

Por último, comentar que tenía pensado escribir en breve una nueva entrada configurando el componente de GitTools en Azure DevOps para controlar el proceso de versionado de nuestros paquetes, pero he visto este vídeo de Youtube donde Cornel Human presenta un excelente ejemplo, con lo que os dejo el enlace aquí. La parte de implementación de GitVersion ocurre en el 45:45. Espero que os guste y ayude a entender el beneficio que aporta su uso.

Os dejo la imagen del componente de Azure DevOps en el Marketplace

CONCLUSIÓN
El versionado es una pieza clave en el desarrollo de soluciones y como vemos, aplica tanto al código, como a los merge en las PR, en las librerías que me ayudan en mis aplicaciones, en la gestión de los modelos de predicción, y también en el control de los datasets de entrenamiento,… Es decir, para que los desarrollos funcionen como es debido, todo el mundo debe estar alineado y para ello, hay que tener claro cual es la versión correcta de cada pieza del proyecto, sino no habrá forma de gobernar la entrega.

Links de interés:
Página Oficial de Semantic Versioning, aquí
Azure DevOps, Visual Studio, GitFlow y otras técnicas del montón, aquí
Azure DevOps y sus tipos de merge, aquí

Foto de portada gracias a RealToughCandy.com: https://www.pexels.com/es-es/foto/hombre-amor-gente-mujer-11035539/

Publicado por alb3rtoalonso

Soy un enamorado del poder de los datos. Entusiasta de la mejora y formación continua.

Deja una respuesta

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Salir /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Salir /  Cambiar )

Conectando a %s

A %d blogueros les gusta esto: