8. Estrategia de Branching
Esta sección define la estrategia de ramificación (branching) utilizada por el equipo de desarrollo para mantener un flujo de trabajo limpio, organizado y colaborativo sobre los repositorios de código fuente de proyectos Android.
8.1 Objetivos
- Facilitar el trabajo colaborativo entre desarrolladores
- Permitir el desarrollo simultáneo de múltiples funcionalidades
- Evitar conflictos y errores en el código compartido
- Mantener una base de código estable para releases
8.2 Convenciones de nombres de ramas
| Tipo de rama | Convención | Uso |
|---|---|---|
| Main | main | Rama principal de producción |
| Desarrollo | develop | Rama para integración de funcionalidades |
| Feature | feature/nombre-descriptivo | Nueva funcionalidad |
| Bugfix | bugfix/descripcion | Corrección de errores menores |
| Hotfix | hotfix/descripcion | Corrección urgente en producción |
| Release | release/vX.Y.Z | Preparación de versión para producción |
8.3 Ejemplos de nombres de ramas
feature/registro-de-usuario
bugfix/fix-crash-al-iniciar
hotfix/token-expirado-produccion
release/v1.3.0
8.4 Flujo estándar de trabajo
- Crear rama
feature/desdedevelop - Realizar desarrollo local y commit con convenciones
- Push al repositorio remoto
- Crear Pull Request contra
develop - Revisiones, aprobaciones y pruebas
- Merge solo si pasa CI y tiene aprobación técnica
8.5 Protección de ramas
- Las ramas
mainydevelopdeben estar protegidas:- Prohibido el push directo
- Solo merge permitido vía Pull Request
- Requiere 2 aprobaciones
- CI debe pasar exitosamente
8.6 Convenciones de commits (Conventional Commits)
Todos los commits deben seguir el estándar Conventional Commits para permitir automatización y claridad en el historial.
Formato
<tipo>[alcance opcional]: descripción corta
Ejemplos
feat(auth): agregar autenticación biométrica
fix(ui): corregir alineación del botón de guardar
chore: actualizar versión de Kotlin a 1.9.22
test(domain): agregar pruebas unitarias a casos de uso
Este formato es adoptado por empresas como Google, Microsoft, Angular, entre otros.
8.7 Recomendaciones
✅ Mantener ramas pequeñas y enfocadas
✅ Usar rebase antes de crear un PR para evitar conflictos
✅ Eliminar ramas una vez mergeadas
✅ Documentar en el PR qué cambios se hicieron y por qué
✅ Asociar cada PR a un ticket o historia de usuario
Esta estrategia de branching está basada en buenas prácticas de la industria y permite escalar equipos de desarrollo, integrando fácilmente control de calidad, automatización de pipelines y control de versiones.