Personal tools
Vamos a describir los pasos que se siguen actualmente para generar una distribución de
binarios de la aplicación gvSIG. Estos paquetes se generan como versiones para que los
testers puedan comprobar su estabilidad. Posteriormente, el cliente ya se encarga
de decidir si esa distribución (en adelante build) se publica de forma oficial en
la web, recibiendo un numero de versión final.

En el proceso de generación intervienen dos medios de comunicación: 

- La página del wiki: Donde se encuentran disponibles para descargar los build y  se informa de los cambios y novedades entre las versiones.

- Las lista de correo internas: Se utilizan para informar a los desarrolladores y a los usuarios del inicio y fin del proceso.

Los desarrolladores trabajan en dos lineas paralelas *(ramas)* sobre el sistema de gestión de fuentes *(actualmente SVN)*: 

- **El TRUNK**: donde se van desarrollando las funcionalidades y proyectos nuevos. Se considera no estable.

- **Rama(Branch) de versión**: es la bifurcación donde los fuentes se empiezan a preparar para una publicación de versión estable.

Según las necesidades, se genera la distribución sobre el Trunk o sobre otra rama.


A la hora de generar una nueva distribución se deberán realizar los siguientes pasos:

Notificar a la lista de usuarios *(lista de desarrollo interna)* que se va a proceder a la generación de una nueva distribución de la aplicación. Consecuentemente los desarrolladores deberán sincronizarse con el Repositorio SVN para subir los cambios que han ido realizando sobre el proyecto. Tras la notificación habrá que esperar cierto tiempo para que los desarrolladores hayan tenido tiempo para subir todos sus cambios.

Posteriormente se deberá sincronizar el Workspace para tener actualizado todos los cambios que acaban de ser subidos al repositorio *(en el wiki están indicados los proyectos necesarios)*.
Es aconsejable que a la hora de sincronizarse con el repositorio y bajar los nuevos cambios, se eche una ojeada al wiki para comprobar que a nadie se le ha olvidado publicar algún cambio.

En el servidor SVN, hay que crear una carpeta con nombre tmp_build (borrarla antes si ya existiera) dentro de la carpeta "tags". En el comentario se deberá anotar "pre_v1_X_Build_X". En esta carpeta se copiará todo lo que se encuentra en la carpeta "branches/v10" (la ruta destino sería https://gvsig.org/svn/gvSIG/tags/tmp_build).

Una vez hecho esto, se deberá hacer un switch de nuestro proyecto(Team->Switch) de branches/v10 a tags/tmp_build. Según el plugin SVN que estemos usando en Eclipse, esto se deberá aplicar a proyecto(extensión) por proyceto, o a conjuntos de proyectos que se encuentran en el mismo directorio (extensions, libraries...).

Lo siguiente es limpiar el workspace para evitar interferencias entre el workspace y cualquier fichero que se hubiera generado en la versión anterior (en el build.xml del proyecto appgvSIG hay un target **clean-all** que limpia todos los .class y .jar y otro target **clean_andami_gvSIG** que limpia las extensiones que se encuentran dentro del proyecto Andami).

Una vez tenemos el workspace limpio ya podemos compilar el proyecto (en el build.xml del proyecto appgvSIG hay un target **build-all**), ejecutar la aplicación y realizar pruebas mínimas para comprobar que todo funciona correctamente.

Si todo funciona adecuadamente, de nuevo se vuelve a limpiar el workspace, y se vuelve a compilar, pero esta vez usando el target **Generate-binaries-distribution**. Este target realiza la misma función que el build-all pero en este caso se incrementa el *buildnumber*. De nuevo se vuelve a probar la aplicación comprobando en esta ocasión que el *buildnumber* se haya incrementado correctamente.

El siguiente paso es lanzar el **build.xml** o el **distribucion_1.5.sh** de la carpeta install del workspace, que es el encargado de la generacion de paquetes. La siguiente imagen muestra un resumen de los pasos que realiza dicho build o script:

.. figure:: images/linux_distribucion_proceso.png
   :height: 750
   :width: 950
   :align: center

(1) Preparamos la carpeta de instalación copiando las librerias y extensiones del proyecto.

(2) Usando el IzPack obtenemos el gvSIG.jar (siguiendo el fichero instalar.xml).

(3) Con el jar y el launcher preparamos el directorio temporal.

(4) Se comprime el directorio temporal (usando tar o 7z) para obtener el fichero tmp. Y finalmente,

(5) el fichero tmp se concatena con el script autoextraíble (sfx o sh) para definitivamente obtener el paquete de instalación bin o exe.


Para comprobar el funcionamiento de los binarios se lanza la instalación, y si todo funciona correctamente, se hace un commit de los *buildnumbers* de cada proyecto, con el comentario **Vx_x_Build_xxx**, y se renombra en el SVN la carpeta tags/tmp_build por **tags/v1_X_Build_X**.

De nuevo se vuelve a hacer un switch del proyecto, de manera análoga a la anterior, pero esta vez al **branches/v10**, y se hace un Merge (Team->Merge->Advanced) del proyecto. El source 1 será el Trunk y el source 2 será tags/v1_X_Build_X. De nuevo esto dependiendo del programa SVN que se use en Eclipse, se hará para cada proyecto o por conjuntos.

Finalmente se hace commit para los cambios oportunos en el trunk, se suben los paquetes generados al **wiki/trac** modificados con la nueva información de la nueva versión, y por último, se notifica a la lista sobre la nueva distribución, para que los testers ya puedan empezar a verificar el funcionamiento de la nueva distribución.

View source document


Powered by Plone CMS, the Open Source Content Management System

This site conforms to the following standards: