GIT y Redmine¶
Prefacio¶
GIT como versionador de software es la herramienta básica para controlar el flujo de desarrollo del equipo, sin embargo no existe un orden ni un mecanismo
para realizar los pasos a QA ni a producción, es por ello que ante la necesidad de ordenar el trabajo se adscriben los siguientes items.
Peticiones de Redmine¶
Las peticiones en Redmine reflejan los proyectos, necesidades y urgencias del departamento y será el líder de proyecto el encargado de delegar las tareas
al desarrollador.
Si no se genera la petición por el líder de desarrollo no se debe realizar la solicitud.
Ramas de GIT¶
Van a existir 3 Ramas básicas de GIT común a todos los proyectos
- produccion
- release
- qa
y 2 ramas de trabajo en cada proyecto
- proyecto
- proyecto-test
Donde proyecto es el nombre del sistema o proyecto en el que se está trabajando (Por ejemplo, si estoy trabajando en core, la rama de pruebas
de desarrollo sera core-test y la rama estable core)
Además existirán una rama por cada petición realizada en Redmine por el líder de desarrollo. dicha rama tendrá el nombre de "tarea/numero de petición"
(Por ejemplo, si la petición de desarrollo en Redmine es la 401, la rama se llamara "tarea/401").
Cuando se cree el proyecto nuevo, éste deberá nacer de producción.
Sobre librerías nuevas y/o métodos nuevos de Helper/Clases, etc.¶
Si se necesita alguna librería extra para realizar la tarea, así como alguna agregación o mejora de funcionalidad de helpers y/o clases estas deben
crearse asociadas a core, previa solicitud de tarea para realizar esto y sincronizarlas a tu proyecto.
Flujo completo de una iteración hasta produccion¶
Responsabilidades de cada rama¶
- Rama tarea: El encargado de crear, realizar merges y eliminar las ramas de tarea de desarrollo es responsabilidad del desarrollador.
- Rama proyecto-test: Crear la rama, líder de desarrollo. Los merges de tarea de desarrollo es responsabilidad del desarrollador.
- Rama proyecto: Crear la rama, líder de desarrollo. Los merges de tarea de desarrollo es responsabilidad del desarrollador previo visto bueno del lider
de desarollo. - Rama qa: El encargado de realizar los merges a esta rama es responsabilidad del desarrollador.
- Rama release: El encargado de realizar los merges a esta rama es responsabilidad del líder de desarrollo o jefe del proyecto
- Rama produccion (productiva): El encargado de realizar el merge a esta rama desde y solo desde la rama tarea es responsabilidad del jefe de proyecto o
jefe de división.
El paso a producción sigue el mecanismo que llevan en infraestructura (Se genera un correo de solicitud expresa y son ellos quienes realizan el paso a producción)
La explicación general de git se encuentra en : git presentacion.pdf (adjunto abajo)
El detalle de los merge git de un desarrollo se encuentran en: GIT_ramas_de_proyecto.pdf (adjunto abajo)