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 perfilv1.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
versionCodemenor al que ya fue instalado.
13.4 Convención por entorno
| Entorno | Sufijo en nombre | Ejemplo |
|---|---|---|
| Desarrollo | -dev | 1.3.0-dev |
| QA | -qa | 1.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.