View on GitHub

Bienvenido al sitio de GitHub de documentación de GLA.

Portal principal para acceder a las guias de diseño, estándares, y prácticas de desarrollo en GLA.

Versionado de artefactos de software en GLA

Semantic Versioning

En GLA se usará la política de versionado definida en SemVer para versionar los artefactos de software incluyendo aplicaciones, APIs y librerías. De esa especificación subrrayamos los siguientes puntos: Un número de versión debe tomar la forma X.Y.Z, donde X, Y y Z son números enteros positivos sin ceros a la izquierda. X es la versión mayor, Y la versión menor y Z el hot-fix (o patch). Cada elemento se debe incrementar numéricamente; es decir, 1.9.0 pasa a 1.10.0 que pasa a 1.10.1. Una vez que un artefacto versionado se libera, el contenido de dicho paquete NO SE PUEDE modificar. Cada modificación DEBE liberarse como una versión nueva. Se pueden expresar versiones pre-release agregando un guion y una serie de identificadores separados por puntos inmediatamente después del número de hot-fix (Z). Por ejemplo, 2.1.0-alpha1.

Cuándo cambiar el número de versión.

El componente X o mayor del número de versión debe incrementarse cuando los cambios incluyen incompatibilidades con versiones anteriores en la interfaz pública del artefacto. El componente Y y el Z se incrementan cuando los cambios mantienen la compatibilidad para atrás.
El cambio del número de versión está íntimamente relacionado con las ramas de desarrollo de GitFlow. El componente X e Y siempre hacen referencia a cambios que parten de la rama develop y el componente Z (hot-fix) aquellos cambios que se inician en la rama hot-fix y se aplican directo en producción. Es decir, un hot-fix debe si o si incrementar el componente Z del número de versión. Siempre que el componente Y se incrementa el Z vuelve a cero, de la misma forma cada vez que se incrementa el componente X el que vuelve a cero ese el Y y por ende el Z.

¿Qué artefactos específicamente se incluyen?

Los artefactos a los que obligatoriamente hace referencia esta especificación son los siguientes:

En general todo artefacto que se vea afectado por un flujo de desarrollo como GitFlow es plausible de versionarse según esta especificación.