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.

Changes between Version 5 and Version 6 of TolPackageRulesAndComments


Ignore:
Timestamp:
Jun 17, 2010, 6:23:58 PM (15 years ago)
Author:
Víctor de Buen Remiro
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • TolPackageRulesAndComments

    v5 v6  
     1[[PageOutline]]
     2
    13= !TolPackage: Un sistema de desarrollo modular en red  =
    24
     
    1820sino que son ellos mismos quienes se autogestionan.
    1921
    20 Por último, hay que permitir que cada paquete evolucione sin excesivas
    21 ataduras de compatibilidad hacia atrás para que pueda progresar pero sin
    22 dejar tirados a los usuarios que por motivos de seguridad no pueden
    23 arriesgarse a actualizarse cada poco tiempo.
     22También resulta de vital importancia permitir que cada paquete evolucione
     23sin excesivas ataduras de compatibilidad hacia atrás para que pueda
     24progresar pero sin dejar tirados a los usuarios que por motivos de seguridad
     25no pueden arriesgarse a actualizarse cada poco tiempo.
     26
     27Por último, debe ser muy fácil de usar. Una vez cargado, el paquete es
     28siempre global aunque se haya llamado desde un ámbito local puesto que
     29tratándose de herramientas de uso general no tiene sentido tener tantos
     30miramientos. Como contrapartida, un paquete no se puede descargar de
     31la memoria una vez que ha sido cargado, pero eso tampoco es problema
     32puesto que no ocupan un espacio significativo en comparación con los datos
     33de los problemas que pueden resolver.
    2434
    2535== Arquitectura ==
     
    4858== Creación de paquetes ==
    4959 
    50  * Un paquete se crea como un NameBlock en un fichero principal del mismo
    51    nombre con extensión .tol y dentro de un directorio raíz llamado igual. El
    52    fichero principal puede cargar con #Embed los archivos auxiliares que
    53    necesite con nombre libre pero ubicación paralela o en subdirectorios del
    54    raíz.
    55  * En [source:/tolp/OfficialTolArchiveNetwork] pueden verse ejemplos de
    56    paquetes. Cada subdirectorio es un paquete.
    57  * Los nombres de los paquetes deben seguir el estilo CamelCase
    58  * Cuando un paquete requiere de otros se debe incluir las correspondientes
    59    sentencias #Require antes de la declaración del primer miembro.
     60Un paquete se crea como un NameBlock pero con una serie de restricciones de
     61obligado cumplimiento
     62
     63=== Estructura ===
     64
     65 * Debe crearse en un fichero principal del mismo nombre con extensión .tol
     66   y dentro de un directorio raíz llamado igual. El fichero principal puede cargar
     67   con #Embed los archivos auxiliares que necesite con nombre libre pero ubicación
     68   paralela o en subdirectorios del raíz.
    6069 * Los miembros obligatorios del NameBlock de un paquete son:
    6170  * Text _.autodoc.brief = "Descripción cortísima en una línea".
     
    6877  * Real _.autodoc.version.low = 1;
    6978  * Set _.autodoc.dependencies = [["paquete1","paquete2", ...]];
     79
     80=== Nomenclatura ===
     81
     82 * Los nombres de los paquetes deben seguir el estilo CamelCase
     83 * El nombre del archivo de una versión concreta de un paquete se obtiene
     84   como la concatenación del nombre del paquete seguido de un punto, el número
     85   _.autodoc.version.high, otro punto y el número _.autodoc.version.low
     86 * El nombre del NameBlock sin embargo es el mismo siempre por lo que se invocará
     87   sin usar los número de versión.
     88 * No es posible por tanto cargar dos versiones distintas de un mismo paquete en
     89   la misma sesión TOL.
     90 * Sí es posible cargar diferentes versiones de un mismo NameBlock en una misma
     91   máquina en sesiones de TOL distintas, coincidentes o no en el tiempo.
     92
     93=== Código declarativo ===
     94
    7095 * Puesto que un paquete se almacena como un módulo OZA, está terminantemente
    7196   prohibido que un NameBlock ejecute acciones de ningún tipo durante su creación.
     
    79104   tener un método [[BR]] {{{ Real StartActions(Real void) { ... }; }}} [[BR]] el
    80105   cual será llamado justo después de ser cargado por el #Require por vez primera.
    81  * El nombre del archivo de una versión concreta de un paquete se obtiene
    82    como la concatenación del nombre del paquete seguido de un punto, el número
    83    _.autodoc.version.high, otro punto y el número _.autodoc.version.low
     106
     107=== Dependencias ===
     108
     109 * Cuando un paquete requiere de otros se debe incluir las correspondientes
     110   sentencias #Require antes de la declaración del primer miembro.
    84111 * Si no se especifica números de versión el #Require cargará la versión más
    85112   actual que corresponderá siempre al archivo con el nombre del paquete nada
     
    102129   caería en un ciclo infinito y no hay forma de detectarlo luego es
    103130   responsabilidad de los desarrollodares del repositorio el evitarlo.
     131
     132=== Documentación y chequeo de calidad ===
     133
    104134 * Cada paquete debe estar dotado de documentación autocontenida de manera
    105135   que cualquier usuario pueda aprender a usarlo por sí mismo. Queda por ver si
     
    110140   colgando directamente de la raíz del paquete.
    111141
     142En [source:/tolp/OfficialTolArchiveNetwork] pueden verse ejemplos de paquetes.
     143Cada subdirectorio es un paquete.
     144
    112145== Creación de repositorios ==
     146
     147En el archivo [source:/tolp/OfficialTolArchiveNetwork/_upload.tol]
     148   puede verse como ejemplo el programa de creación y subida de
     149[http://packages.tol-project.org/OfficialTolArchiveNetwork/
     150OfficialTolArchiveNetwork], el repositorio oficial de paquetes del equipo de
     151desarrollo de TOL.
    113152
    114153 * El repositorio es un directorio plano con unos archivos obligatorios:
     
    117156  * index.csv: Listado de los paquetes y su información asociada: fecha,
    118157    versión, dependencias, etc.
    119  * En el archivo [source:/tolp/OfficialTolArchiveNetwork/_upload.tol]
    120    puede verse como ejemplo el programa de creación y subida de [http://packages.tol-project.org/OfficialTolArchiveNetwork/ OfficialTolArchiveNetwork], el repositorio
    121    oficial de paquetes del equipo de desarrollo de TOL.
    122158 * Debe haber un comité o alguien responsable de probar todos los paquetes de
    123159   un repositorio antes de publicar las actualizaciones de los paquetes para