====== Convenciones de Nombrado de Ramas ======
[[ada:howto:sicoferp:factory:new-migracion-sicoferp:front|←Regresar]]
Este documento establece las reglas para el nombrado de ramas en nuestro flujo de trabajo de Git, basado en GitFlow, con el fin de mantener un desarrollo organizado y estructurado.
**Ramas Principales**
master
* Contiene el código en producción.
* Solo se fusionan versiones estables y probadas.
* No se realizan desarrollos directos en esta rama.
qa
* Contiene código en pruebas de calidad.
* Permite realizar pruebas automatizadas y manuales.
* Contiene el código en desarrollo.
* Se fusionan las ramas de características (features), correcciones de errores (bugfix) y mejoras (enhancements).
* Es la base para la integración y pruebas antes de pasar a producción.
develop
* Rama de integración: Recibe los cambios de feature/, fix/ y enhancement/ antes de una versión estable.
* Siempre funcional: Debe mantenerse estable y en estado operativo, evitando código roto.
* No se usa en producción: Sirve para pruebas internas antes de pasar a release o main.
* Flujo controlado de fusión: Se integran cambios mediante pull requests con revisión.
**Ramas Auxiliares**
feature/{nombre-descriptivo}
* Se crean a partir de develop.
* Se utilizan para desarrollar nuevas características o funcionalidades.
* Se deben fusionar de vuelta en develop una vez completadas.
* Ejemplo: feature/agregar-autenticacion
bugfix/{nombre-descriptivo}
* Se crean a partir de develop.
* Se usan para corregir errores detectados en el entorno de desarrollo.
* Se fusionan en develop tras su corrección.
* Ejemplo: bugfix/corregir-error-login
release/{version}
* Se crean a partir de develop cuando se prepara una nueva versión para producción.
* Se usan para realizar pruebas finales, documentación y correcciones menores.
* Se fusionan en main y develop al finalizar.
* Ejemplo: release/1.2.0
hotfix/{nombre-descriptivo}
* Se crean a partir de main para corregir errores críticos en producción.
* Se fusionan en main y develop después de su corrección.
* Ejemplo: hotfix/solucionar-error-pago
enhancement/{nombre-descriptivo}
* Se crean a partir de develop.
* Se utilizan para mejoras en el código o optimización de funcionalidades existentes.
* Se fusionan en develop.
* Ejemplo: enhancement/mejorar-ui-dashboard
chore/{nombre-descriptivo}
* Se usan para tareas de mantenimiento del proyecto, como actualizaciones de dependencias o cambios en la configuración.
* Se crean a partir de develop y se fusionan de vuelta en develop.
* Ejemplo: chore/actualizar-librerias
**Consideraciones Generales**
* Usar nombres descriptivos y en minúsculas.
* Separar palabras con guiones -.
* Mantener las ramas actualizadas con develop antes de fusionarlas.
* Eliminar las ramas después de fusionarlas para evitar desorden.
**Formato recomendado para mensajes de commit**
* feat ✨ Nueva funcionalidad o característica
* fix 🐛 Corrección de un bug
* refactor🔧 Refactorización sin cambios en funcionalidad
* perf 🚀 Mejora de rendimiento
* test 🧪 Agregar o modificar pruebas
* docs 📖 Cambios en la documentación
* style 🎨 Cambios de formato, espacios, comas (sin afectar código)
* chore 🔧 Tareas de mantenimiento (ej: actualizar dependencias)
* ci 🤖 Configuración de integración continua (CI/CD)
* build 🏗️ Cambios en el sistema de build o dependencias
* revert ⏪ Revertir un commit anterior
//Ejemplo//
git commit -m "feat(user): agregar opción de recuperación de contraseña"
[[ada:howto:sicoferp:factory:new-migracion-sicoferp:front|←Regresar]]