Herramientas de usuario

Herramientas del sitio


plugins:metodologiacolaboradores

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anterior Revisión previa
Próxima revisión
Revisión previa
plugins:metodologiacolaboradores [2014/05/22 14:51]
fcristina [Finalizando el desarrollo]
plugins:metodologiacolaboradores [2021/11/10 15:48] (actual)
fcristina [Introducción]
Línea 6: Línea 6:
  
 El presente documento tiene por objeto orientar a los desarrolladores de la comunidad Libertya respecto de la metodología de trabajo implementada en las tareas de ampliación/modificación de la aplicación.   El presente documento tiene por objeto orientar a los desarrolladores de la comunidad Libertya respecto de la metodología de trabajo implementada en las tareas de ampliación/modificación de la aplicación.  
 +
 +Nota: Considerar de manera opcional a esta metodología el desarrollo de un [[plugins:microcomponents|microcomponente]].
  
 ===== Requisitos ===== ===== Requisitos =====
Línea 22: Línea 24:
 El conjunto de archivos Libertya a descargar para una versión dada se encuentra alojado en el proyecto Libertya de Source Forge (https://sourceforge.net/projects/libertya/), incluyendo instaladores, binarios, bases de datos, y documentación (tanto de Libertya como de los componentes). El conjunto de archivos Libertya a descargar para una versión dada se encuentra alojado en el proyecto Libertya de Source Forge (https://sourceforge.net/projects/libertya/), incluyendo instaladores, binarios, bases de datos, y documentación (tanto de Libertya como de los componentes).
  
-Tal como se detalla en la documentación para el desarrollo de componentes (http://libertya.org/wiki_dev/doku.php), todo componente debe implementarse a partir de una versión estable de Libertya.  Sin embargo en ciertos casos es necesario poder realizar ampliaciones que se apoyen sobre versiones intermedias.+Tal como se detalla en la documentación para el desarrollo de componentes, todo componente debe implementarse a partir de una versión estable de Libertya.  Sin embargo en ciertos casos es necesario poder realizar ampliaciones que se apoyen sobre versiones intermedias.
  
-Es por esto que se cuenta ahora con el repositorio público SVN del proyecto Libertya en Google Code (http://code.google.com/p/libertya/) correspondiente a los fuentes LY.  Los fuentes del Core de Libertya se encuentran alojados en https://libertya.googlecode.com/svn/trunk/.  +Es por esto que se cuenta con el repositorio público SVN del proyecto Libertya en SourceForge (https://sourceforge.net/p/libertya/) correspondiente a los fuentes LY.  Los fuentes del Core de Libertya se encuentran alojados en https://sourceforge.net/p/libertya/src/trunk/.  
  
-Esta división de descargas de archivos por un lado y repositorio SVN por otro se fundamenta en que ambos servicios presentan cada uno una serie de ventajas y desventajas, por lo que se buscó lograr el escenario más favorable en cada caso. 
  
 Adicionalmente, una base de datos actualizada de Libertya CORE se genera y pone a disposición para su descarga en SourceForge (http://sourceforge.net/projects/libertya/files/libertya/dev/dumps/).  De esta manera, es posible contar en todo momento con la versión de desarrollo más actualizada. Adicionalmente, una base de datos actualizada de Libertya CORE se genera y pone a disposición para su descarga en SourceForge (http://sourceforge.net/projects/libertya/files/libertya/dev/dumps/).  De esta manera, es posible contar en todo momento con la versión de desarrollo más actualizada.
Línea 55: Línea 56:
 ==== Iniciando el desarrollo ==== ==== Iniciando el desarrollo ====
  
-Previamente a iniciar cualquier tipo de modificación/ampliación al core, es necesario acordar el objetivo y alcance de la funcionalidad a implementar a fin de poder coordinar las actividades entre todos los colaboradores.  Dicha información será volcada en la wiki de Google Code (http://code.google.com/p/libertya/wiki/Branches).+Previamente a iniciar cualquier tipo de modificación/ampliación al core, es necesario acordar el objetivo y alcance de la funcionalidad a implementar a fin de poder coordinar las actividades entre todos los colaboradores.   
 + 
 +Toda colaboración será centralizada a través de un //issue// o //ticket// de SourceForge (https://sourceforge.net/p/libertya/tickets/), ya sea tareas relacionadas con mejoras o correcciones.  
 + 
 +Para cada issue a resolver, se creará un branch con la siguiente convención: **Prefijo GC _ Nro de issue**.  Por ejemplo el branch **GC_27** se encontrará relacionado con las modificaciones correspondientes al ticket 27.
  
 En los casos en que se esté desarrollando funcionalidad que luego deberá ser incorporada al Core Libertya, se deberá crear y trabajar bajo un Componente Temporal de Desarrollo ([[plugins:copiadechangelog|Funcionalidad de copia de Changelog en instalación]]), el cual es descartado cuando la funcionalidad (fuentes + cambios en bbdd) son incorporados al core. En los casos en que se esté desarrollando funcionalidad que luego deberá ser incorporada al Core Libertya, se deberá crear y trabajar bajo un Componente Temporal de Desarrollo ([[plugins:copiadechangelog|Funcionalidad de copia de Changelog en instalación]]), el cual es descartado cuando la funcionalidad (fuentes + cambios en bbdd) son incorporados al core.
Línea 67: Línea 72:
   * En caso de ser necesario, incorporar la eventuales modificaciones realizadas en el core sobre la base de datos de desarrollo del componente temporal, tal como se detalló previamente.   * En caso de ser necesario, incorporar la eventuales modificaciones realizadas en el core sobre la base de datos de desarrollo del componente temporal, tal como se detalló previamente.
  
 +La ubicación en donde deberán almacenarse los archivos **preinstall.sql**, **install.xml** y **postinstall.xml** (o eventualmente librerías o cualquier tipo de archivo adicional) será en el directorio **/data/core/issues/** de cada branch.  Por ejemplo, para el issue 27 será:
 +
 +  /branches/GC_27/data/core/issues/
 +  
 +El número y distribución de los archivos dentro de dicho directorio dependerá de cada requerimiento.  Sin embargo, __en todos los casos dichos archivos deben ser incorporados en formato comprimido__ (zip, gzip, jar, etc.) a fin de reducir el tamaño de los mismos lo más posible.
 ==== Finalizando el desarrollo ==== ==== Finalizando el desarrollo ====
  
Línea 76: Línea 86:
     * Omitir el archivo preinstall.sql generado y “pisar” su contenido con el log de sentencias SQL que se fue llevando de manera manual.     * Omitir el archivo preinstall.sql generado y “pisar” su contenido con el log de sentencias SQL que se fue llevando de manera manual.
     * Generar el instalador definivo en un archivo .jar.  De aquí se extraerá el changelog y se impactará en la base de datos de Core, replicándose además la bitácora de cambios.     * Generar el instalador definivo en un archivo .jar.  De aquí se extraerá el changelog y se impactará en la base de datos de Core, replicándose además la bitácora de cambios.
 +    * Realizar una prueba de instalación del componente desarrollado, a fin de validar que no se presenten errores.  Obviamente, esta actividad deberá ser realizada sobre una base de datos distinta a la del desarrollo.
   * Dar aviso de la finalización del subproyecto.  De esta manera será posible:   * Dar aviso de la finalización del subproyecto.  De esta manera será posible:
     * Validar las modificaciones.     * Validar las modificaciones.
Línea 81: Línea 92:
     * Incorporar los cambios a nivel base de datos al core mediante el .jar de instalación.     * Incorporar los cambios a nivel base de datos al core mediante el .jar de instalación.
     * Actualizar la wiki con el status actual del subproyecto     * Actualizar la wiki con el status actual del subproyecto
- 
plugins/metodologiacolaboradores.1400770274.txt.gz · Última modificación: 2021/04/30 19:21 (editor externo)