Skip to main content

13. Estrategia de Versionamiento

El versionamiento adecuado es clave para el control de entregas, regresión de errores, identificación de releases y trazabilidad en el ciclo de vida del software. Esta sección detalla el esquema de versionado que se utiliza en los proyectos móviles de Alpura.


13.1 Objetivos

  • Identificar claramente cada build y release
  • Trazar errores y reportes a una versión específica
  • Facilitar procesos de despliegue y rollback
  • Sincronizar control de versiones entre código, CI/CD y releases móviles

13.2 Convenciones de versionamiento

Se utiliza el esquema SemVer (Semantic Versioning):

vMAJOR.MINOR.PATCH
  • MAJOR: Cambios incompatibles (reestructura, rediseño)
  • MINOR: Nuevas funcionalidades compatibles
  • PATCH: Correcciones menores y bugs

Ejemplos:

  • v1.2.0 = nueva sección de perfil
  • v1.2.1 = fix de errores en pantalla de login

13.3 Configuración en Gradle

En build.gradle.kts del módulo app:

versionCode = 21
versionName = "1.3.0"

El versionCode debe ser un número incremental único y global.

Nota: Android no permite instalar una versión con un versionCode menor al que ya fue instalado.


13.4 Convención por entorno

EntornoSufijo en nombreEjemplo
Desarrollo-dev1.3.0-dev
QA-qa1.3.0-qa
Producción(sin sufijo)1.3.0

13.5 Versionado en Git

  • Cada release debe tener una etiqueta (tag) en Git:
git tag v1.3.0
git push origin v1.3.0
  • Las tags deben coincidir con la versión configurada en versionName

13.6 Relación con CI/CD

  • Cada pipeline construye usando versionName + versionCode
  • El pipeline agrega automáticamente metadatos como fecha, commit SHA, build ID
  • Artefactos deben llevar nombre de versión:
    alpura-app-qa-v1.3.0.aab

13.7 Integración con Fastlane

Archivo fastlane/metadata/android/version.txt:

1.3.0

Automáticamente se sincroniza en el despliegue a Google Play Console.


13.8 Estándar de commits y changelog

Se recomienda usar Conventional Commits para que el changelog se genere automáticamente:

Ejemplos de commits válidos:

feat(auth): agregar inicio de sesión con biometría
fix(ui): corregir bug visual en botón de registro
chore: actualizar dependencias del proyecto

Este estándar es usado por grandes empresas como Google, Microsoft, y el equipo Angular.


Una estrategia de versionamiento clara y automatizada asegura trazabilidad, facilita la comunicación entre equipos y mejora la gestión del ciclo de vida de la app.