Personalizando en Grupo
A continuación, mostraremos como llevar adelante la personalización de un proyecto por un grupo de desarrollo de una institución. El proyecto que se recibe ya es personalizable, por lo que solo resta realizar los pasos necesarios para iniciar la personalización y comenzar a trabajar.
Se asume que cada desarrollador participante en el grupo, posee un id
de desarrollo distinto dentro del rango asignado por el SIU para la
institución y que esta diestro en el manejo de los comandos
administrativos de la plataforma Toba. Se usará como referencia el
sistema SIU-Guarani 3 en su versión 3.8.2, para brindar casos de
ejemplo con URLs concretas. Siempre que se mencionen comandos svn en
relación a la working copy
del proyecto, se tomará como path base la
carpeta del mismo.
En este esquema existe una persona que denominaremos concentrador, quien será el único que utilice los comandos de personalización y proveerá así al resto del grupo, de mayor flexibilidad en el entorno de trabajo diario. El resto del equipo trabaja de manera normal con Toba sin percatarse de que existe una personalización vigente, excepto a la hora de guardar archivos PHP.
Existen tres puntos en el tiempo:
Versión de partida
Una vez instalada para desarrollo la versión de partida que personalizará la institución, el individuo concentrador deberá ejecutar
xx@yy:~$ toba personalizacion iniciar
De esta forma, genera de manera local el entorno de trabajo para poder personalizar, cabe reiterar que solamente este individuo debe realizar este paso.
En tanto, el resto del equipo una vez instalado SIU-Toba debería realizar lo siguiente:
xx@yy:~$ svn checkout https://colab.siu.edu.ar/svn/guarani3/nodos/<sigla institucion>/gestion/trunk/3.8.2/
xx@yy:~$ toba proyecto cargar
Y comenzar a trabajar en el proyecto normalmente, haciendo uso de los comandos básicos:
xx@yy:~$ toba proyecto exportar
xx@yy:~$ svn update #desde https://colab.siu.edu.ar/svn/guarani3/nodos/<sigla institucion>/gestion/trunk/3.8.2
xx@yy:~$ toba proyecto regenerar
xx@yy:~$ svn commit #hacia https://colab.siu.edu.ar/svn/guarani3/nodos/<sigla institucion>/gestion/trunk/3.8.2
De esta manera, se realizan los pasos necesarios para trasferir los cambios al control de versiones y asi al resto del equipo.
Actualizando a la nueva versión del sistema
Aquí asumiremos que estamos pasando de la version 3.8.2 de SIU-Guarani 3 hacia la versión 3.9.0 del mismo sistema.
El primer paso de la persona que actúe como concentrador, sera asegurarse que la totalidad de los cambios fueron subidos por el resto del equipo al control de versiones. Luego de ello, se deberá ejecutar la siguiente secuencia de comandos:
xx@yy:~$ svn update #desde https://colab.siu.edu.ar/svn/guarani3/nodos/<sigla institucion>/gestion/trunk/3.8.2
xx@yy:~$ toba proyecto regenerar
xx@yy:~$ toba personalizacion exportar
xx@yy:~$ svn commit ./personalizacion #hacia https://colab.siu.edu.ar/svn/guarani3/nodos/<sigla institucion>/gestion/trunk/3.8.2
Con estos cuatro pasos, el concentrador se asegura de tener la totalidad de los cambios hechos a metadatos y exporta dichos cambios dentro de la carpeta personalizacion/metadatos.
Una vez finalizado esto, procede con la instalación de la nueva versión del sistema desde cero, dejando así disponible la instalación anterior para corrección de bugs urgentes, como así también la generación de versiones de cuarto digito 3.8.2.x para producción a partir de allí.
Mientras tanto, en la nueva instalación se debe:
#descarga la nueva version
xx@yy:~$ svn checkout https://colab.siu.edu.ar/svn/guarani3/nodos/<sigla institucion>/gestion/trunk/3.9.0/
#mezcla los cambios hechos en la version 3.8.2 hacia esta nueva version
xx@yy:~$ svn merge https://colab.siu.edu.ar/svn/guarani3/nodos/<sigla institucion>/gestion/trunk/3.8.2/personalizacion carpeta_proyecto/personalizacion
#carga el proyecto en toba
xx@yy:~$ toba proyecto cargar
#inicia la personalizacion
xx@yy:~$ toba personalizacion iniciar
#chequea si hay posibles conflictos
xx@yy:~$ toba personalizacion conflictos
#toma los archivos .xml de la carpeta personalización y los carga a metadatos en la base
xx@yy:~$ toba personalizacion importar
#exporta los metadatos como archivos .sql en la carpeta metadatos
xx@yy:~$ toba proyecto exportar
xx@yy:~$ svn commit #hacia https://colab.siu.edu.ar/svn/guarani3/nodos/<sigla institucion>/gestion/trunk/3.9.0
El resto del equipo entonces, teniendo la nueva instalación de toba completada, realiza:
xx@yy:~$ svn checkout https://colab.siu.edu.ar/svn/guarani3/nodos/<sigla institucion>/gestion/trunk/3.9.0/
xx@yy:~$ toba proyecto cargar
Y sigue trabajando normalmente en la nueva instalación.
Deployment
Usando el instalador web
El deployment para llevar a producción este esquema es bastante directo, por ejemplo, para llevar a producción la personalización de la última versión el concentrador debe asegurarse de tener el proyecto actualizado a la ultima revisión de la rama en que estan trabajando y luego de configurar adecuadamente el archivo proyecto.ini, generar el paquete de instalación correspondiente. Los pasos serian:
xx@yy:~$ svn update #desde https://colab.siu.edu.ar/svn/guarani3/nodos/<sigla institucion>/gestion/trunk/3.9.0
xx@yy:~$ toba proyecto regenerar
xx@yy:~$ toba proyecto empaquetar
Usando SVN
En este caso es la instalación normal de un sistema. En el caso mas sencillo, se reutilizaría la instalación anterior en producción, lanzando previamente una version de 4 digitos ejecutando
#Se lanza version 3.9.0.1 en base a la 3.9.0
xx@yy:~$ svn cp https://colab.siu.edu.ar/svn/guarani3/nodos/<sigla institucion>/gestion/trunk/3.9.0 https://colab.siu.edu.ar/svn/guarani3/nodos/<sigla institucion>/gestion/versiones/3.9.0.1
#Se cambia la instalacion de produccion hacia la nueva version
xx@yy:~$ svn switch https://colab.siu.edu.ar/svn/guarani3/nodos/<sigla institucion>/gestion/versiones/3.9.0.1
#Regenear la base toba
xx@yy:~$ toba instancia regenerar
#Faltaría migrar la base de datos del proyecto, si fuera necesario. Además hay que compilar los metadatos de toba para mejorar la performance