Personal tools
You are here: Home Working groups CDT (organization) Working documents Propuestas Deploy library jar on extension instead of the library itself
Document Actions

Deploy library jar on extension instead of the library itself

by Jorge Sanz last modified 2012-02-20 15:00
Autor:Jorge Sanz
Fecha:06.02.2012
Estado:Aprobada
Prioridad:Normal

Note

la fecha seria la de presentación de la propuesta.

Miembros del CDT que deben votar la propuesta y su voto.

Miembro Voto
Álvaro Anguix Blanco
César Ordiñana
Joaquín del Cerro Blanco
Jorge Sanz
José Vicente Higón  
Manuel Madrid  
Nacho Brodin
Nacho Varela
Pablo Sanxiao

Voto podrá ser:

  • No
  • Blanco
  • Exento

Esta propuesta debería estar resuelta antes de 13/02/12

Motivación y objetivo

El objetivo de esta propuesta es modificar la forma en que se gestionan los jars de las librerías de gvSIG Desktop 1.x respecto a su ubicación y la relación que tienen con los plugins que las usan

Equipo de trabajo

Enumeración del equipo de trabajo que ha de intervenir en la realización de la propuesta.

  • Pablo Sanxiao
  • Fran Puga

Propuestas a las que modifica

Esta propuesta no modifica a ninguna otra anterior.

Modificaciones a esta propuesta

No hay modificaciones a esta propuesta.

Descripción de la propuesta

Note

Esta propuesta parte de este ticket https://devel.gvsig.org/redmine/issues/219

Problema

El problema surge porque es muy habitual que un desarrollador toque el código de una librería y suba el jar al repositorio de la librería pero no al de la extensión que la emplea. La teoría dice que el responsable de subir el jar a la extensión sería el mantenedor de la extensión, pero esto en la práctica no está funcionando puesto que es complicado saber cuando se ha producido realmente un cambio.

Solución propuesta

Basándose en que en la situación actual, en que el número de desarolladores es bajo y todos tienden a tocar todo, se propone que la persona que toque el código de la librería sea la responsable de subir el jar actualizado a la extensión que corresponda. Para simplificar este paso, y que haya menos probabilidades de despiste a efectos prácticos se propone que el target de Ant por defecto para las librerías sea hacer deploy sobre la extensión que corresponda.

Nótese que cuando se hace appgvSIG.buildAll las extensiones tratan de traerse los jar de las librerías a su extensión, no es necesario tocar esto puesto que este copiado se hace con un failOnError = false, por lo que lo más operativo es dejarlo estar así.

Nótese que si un desarrollador independiente quiere emplear la librería y usa el target por defecto dará un error puesto que buscará una ruta que no existe. Además de que es improbable que esto suceda en la rama 1.x es facilmente, llegaría con dejar un comentario en build.xml indicándole cual es el target que debería emplear.

Nótese que esto no significa que la librería dependa de la extensión a nivel de código, el acoplamiento se produce solamente a nivel deploy.

Nótese que en este momento si bien no hay librerías dependiendo de extensiones, si que hay librerías dependiendo de librerías (por ejemplo libJCRS se despliega directamente sobre libFMAP) así que la solución propuesta ya se está en parte aplicando.

Otras posibles soluciones

Hacer que las extensiones dependan de las librerías y no de los jar. Es la solución que asegura el mantenerse siempre actualizado y evita subir binarios al repositorio, pero tiene como contra que obliga al desarrollador a descargar un montón de proyectos adicionales.

Justificación de votos negativos

No ha sido necesaria la justificación de los votos en contra de la propuesta.

Resolución

Se aprueba la propuesta el 20/02/2012 con cinco votos a favor, dos en blanco, dos abstenciones y ningún voto en contra.


Powered by Plone CMS, the Open Source Content Management System

This site conforms to the following standards: