close Warning: Can't synchronize with repository "(default)" (/var/svn/tolp does not appear to be a Subversion repository.). Look in the Trac log for more information.

Opened 14 years ago

Last modified 14 years ago

#1126 closed defect

Compatibilidad de los paquetes locales con la versión de TOL — at Version 1

Reported by: Víctor de Buen Remiro Owned by: Víctor de Buen Remiro
Priority: highest Milestone: TOL Packages
Component: Various Version: head
Severity: blocker Keywords:
Cc:

Description (last modified by Víctor de Buen Remiro)

Queda por resolver el chequeo de compatibilidad de los paquetes locales, que puede ser especialmente problemático cuando conviven en una misma máquina versiones de TOL incompatibles entre sí.

Ahora mismo si el paquete existe localmente se presupone que es compatible con la versión de TOL, pero eso no tiene porqué ser así.

El paquete descargado contiene dicha información pero sólo dentro del OIS por lo que sólo se puede acceder a ella una vez cargado, lo cual es absurdo pues queremos saberlo antes precisamente para saber cuál cargar.

Habría que añadir al ZIP del paquete un nuevo fichero con la información de compatibilidad y ya puestos con toda la información de la estructura TolPackage::@VersionSynchro

Una posibilidad sería crear un archivo TOL para que pudiera ser cargado localmente y que contuviera los campos directamente, sin estructura, para evitar problemas de compatibilidad en el futuro

  Text te_url = "...";                  //URL of repository
  Text co_name = "...";                 //Generic name of package
  Text co_name_version = "...";         //Name of versioned package 
  Text te_extra_info = "...";           //Extra information
  Text te_min_tol_version = "...";      //Minimum compatible TOL version
  Text te_max_tol_version = "...";      //maximum compatible TOL version
  Text te_dependencies = "...";         //Required packages
  Date dh_release_date_remote = y...;   //Publication date in remote repository
  Date dh_release_date_local = y...;    //Local installing date
  Real nu_bytes = ...;                  //Size of remote compressed archive

Change History (1)

comment:1 Changed 14 years ago by Víctor de Buen Remiro

Description: modified (diff)
Status: newaccepted

Otro problema relacionado con éste es que las versiones de TOL antiguas pasarán por alto esta información e intentarán cargar la última versión existente localmente, lo cual puede ser un problema si hay varias versiones instaladas en una misma máquina. Por ejemplo, si tienes instaladas en una máquina la 59 y la 60 comparten el mismo directorio de paquetes locales. Cuando uses la 60 instalará sus paquetes y como sus números de versión son más modernos la 59 intentará cargarlos, es decir, al usar la 60 se anula la posibilidad de usar la 59 y anteriores en la misma máquina. Para volver atrás tendrías que borrar los paquetes nuevos.

Una posibilidad es que la versión 60 guarde sus paquetes en otro directorio distinto al de la 59 de forma que no interfieran en absoluto la una con la otra.

Las siguientes versiones, como ya tendrán acceso a la información de compatibilidad podrán compartir el directorio sin problemas, por lo que no es necesario crear uno para cada versión con el coste de recursos que supondría después de haberse actualizado unas docenas de veces la versión de TOL.

Lo que sí puede ser conveniente es que el directorio local de paquetes dependa de la versión del sistema de paquetes TolPackage::_.version para que futuras versiones de TOL puedan coexistir pese a tener gestores de paquetes incompatibles entre sí.

El directorio local pasaría de ser

TolAppDataPath+"TolPackage/Client/"

a ser

TolAppDataPath+"TolPackage/"+TolPackage::_.version+"/Client/"
Note: See TracTickets for help on using tickets.