====== Fabrica: Versionamiento de Software - Rama de Liberación a Producción Transitoria ====== Es una rama temporal que se define para pasos a producción criticos que aún no han sido validados al 100% por calidad o tienen tickets relacionados que no han sido probados y tienen impacto leve o moderado en los clientes que requieren la liberación. ===== Tipos de Impacto ===== A continuación se listan los tipos de impacto que deben ser considerados en las liberaciones de la rama transitoria. ^Impacto^Descripción^ |Leve|No afecta la operación de procesos del cliente| |Moderado|Afecta la operación del cliente pero no de procesos reelevantes| |Crítico|Afecta la operación de procesos reelevantes del cliente| ==== Observación ==== Los tipos de impacto deben ser utilizados para evaluar el tipo de afectación en los clientes. ===== Tipos de Complejidad ===== A continuación se listan los tipos de complejidad que deben ser considerados en las liberaciones de la rama transitoria. ==== Complejidad: Baja ==== Cambios sencillos o simples en el código como: * Ajustes a columnas de (datawindows, entidades): Siempre y cuando la columna no modifique el agrupamiento de la consulta que genera el datawindow o entidad y la tabla exista previamente. * Ajustes visuales en ventanas o formularios: Esto cubre ajustes de formato, agregar un campo oculto, ampliar tamaños. * Ajustes a funcionalidades de [[#Tipos de Impacto|impacto leve]]. ==== Complejidad: Media ==== Cambios intemedios en el código como: * Adición de fragmentos de código: Esto incluye validaciones, Reportes. * Ajustes a funcionalidades de [[#Tipos de Impacto|impacto moderado]]. ==== Complejidad: Alta ==== Cambios grandes en el código como: * Inclusión de nuevas funcionalidades. * Ajustes a funcionalidades de [[#Tipos de Impacto|impacto crítico]]. ==== Observación ==== Los tipos de complejidad deben ser evaluados antes de enviar a QA. ===== Condiciones ===== A continuación se listan las condiciones previas que se deben cumplir para optar por la utilización de la rama transitoria. * La solución a liberar y/o soluciones vinculadas((Tickets asociados)) aun no han sido validada(s) por calidad en su totalidad y se requiere liberación urgente en el cliente porque se está parando la operación critica((Procesos que generan valor agregado como Facturación y/o Recaudo, Nómina, etc)). * Las soluciones vinculadas((Tickets asociados)) tienen impacto [[#Tipos de Impacto|Leve o Moderado]] en los clientes que se realizará la liberación. Para estó se deben contar con la revisión del lider técnico del módulo. * Autorización del Lider del Producto((La autorización debe estar registrada en el ticket antes de la actualización de la rama)). * Autorización del Jefe de Fábrica((La autorización debe estar registrada en el ticket antes de la actualización de la rama)). * Autorización del cliente: Se le debe indicar el impacto que puede generar esa actualización (retraso de otras liberaciones, errores en opciones, etc). ===== Proceso de Generación Rama Transitoria ===== A continuación se describe el proceso de generación de la rama transitoria: - **Solución a liberar**: Cumplir las [[#Condiciones|Condiciones]] de generación. - **Lider Configuración**: Generar el corte de versión de la rama **tags** (revert/update) y copiar la rama en el directorio **transitoria**((Este directorio siempre estará en la raíz del módulo donde están las ramas branches, trunk y tags)) - **Calidad (QA)**: Bloquea la rama trunk completamente para evitar actualizaciones no controladas. - **Calidad (QA)**: Copiar los artefactos de la solución a la rama **transitoria** y hacer el commit((Es el mismo proceso que se realiza cuando se hace el paso a producción copiando los artefactos a la rama tags)). - **Calidad (QA)**: Pasar el ticket y notifica a implantación sobre la situación de la liberación indicando los clientes que afecta la liberación. Además crea un ticket interno y lo asocia al ticket original. - **Implantación**: Hace la liberación a los clientes relacionados y pasa el ticket al flujo normal de gestión. - - **Calidad (QA)**: Una vez es validada la solución en el ambiente de validación pasar el artefacto a tags((Continua el proceso estandar de liberación a producción)). - **Lider Configuración**: Una vez el cambio pasa a la rama **tags** el release de la rama **transitoria** será inactiva. ===== Notas ===== * Toda liberacion transitoria (debe incluir/listar los objetos modificados). * Solo aceptan liberaciones transitorias si el componente hace parte de la ruta crítica (Matriz de impacto). * Solo se permite una rama transitoria por módulo. * Las liberaciones transitorias no son acumulativas es decir solo se puede realizar una por liberación (ticket), a menos que sea actualización del mismo artefacto. * Las liberaciones transitorias bloquean commits en la rama tags y trunk por lo tanto toda liberación transitoria debe ser validada antes de pasar cualquier otra solución a tags. * El proceso de liberación transitoria se debe generar desde el flujo de calidad cuando un cliente o varios requieren liberación de una solución urgente que aún no ha sido completamente validada o tienen tickets de soluciones relacionadas pendientes. * No se debe utilizar este mecanismo de liberación para cualquier liberación ya que el objetivo es permitir a los clientes la operación de sus procesos críticos o de valor. [[ada:howto:sicoferp:factory:softwareversioning|←Volver atras]]