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.
Reglas de construcción y comentarios acerca de paquetes y repositorios
- Un paquete es un tipo de NameBlock especial que se carga con la orden
#Require nombre_de_paquete y que se lee directamente de un archivo .oza
almacenado previamente en un directorio local predeterminado por el sistema.
- Los paquetes están disponibles en repositorios remotos o locales desde los
cuales es posible instalarlos y manejarlos mediante las utilidades de
StdLib::TolPackage::Client
- Las correspondientes funciones de creación y mantenirmiento de los
respositorios están disponibles en StdLib::TolPackage::Server
- Los nombres de los paquetes deben seguir el estilo CamelCase
- Un paquete se crea como un NameBlock en un fichero principal del mismo
nombre con extensión .tol y dentro de un directorio raíz llamado igual. El
fichero principal puede cargar con #Embed los archivos auxiliares que
necesite con nombre libre pero ubicación paralela o en subdirectorios del
raíz.
- Cuando un paquete requiere de otros se debe incluir las correspondientes
sentencias #Require antes de la declaración del primer miembro.
- Los miembros obligatorios del NameBlock de un paquete son:
- El nombre del archivo de una versión concreta de un paquete se obtiene
como la concatenación del nombre del paquete seguido de un punto, el número
_.autodoc.version.high, otro punto y el número _.autodoc.version.low
- Si no se especifica números de versión el #Require cargará la versión más
actual que corresponderá siempre al archivo con el nombre del paquete nada
más. En este caso los paquetes que requiera directa o indirectamente serán
también las últimas versiones y no hace falta hacer nada previamente.
- Si se especifica una versión concreta entonces se debe cargar previamente
cada uno de los paquetes requeridos directa o indirectamente mediante el método
StdLib::TolPackage::Client::ForceExactRequirements, antes de que se llame al
#Require de ninguno de ellos.
- La definición del paquete siempre debe usar #Require sin especificar una
versión concreta.
- Obsérvese que los paquetes requeridos se deben especificar por duplicado:
primero en los #Require sin comillas y luego en Set _.autodoc.dependencies
entre comillas pues esta información la necesita el gestor de repositorios.
- No puede haber paquetes con el mismo nombre de NameBlock ni en el mismo ni
en distinto repositorio.
- No está permitido el requerimiento cíclico directo ni indirecto entre
paquetes, es decir, si A requiere a B directa o indirectamente B no puede
requerir a A ni directa ni indirectamente. El sistema gestor de repositorios
caería en un ciclo infinito y no hay forma de detectarlo luego es
responsabilidad de los desarrollodares del repositorio el evitarlo.
- Cada paquete debe estar dotado de documentación autocontenida de manera
que cualquier usuario pueda aprender a usarlo por sí mismo. Queda por ver si
esa documentación ha de ser WIKI, HTML, PDF, ASCII, o si puede ser opcional
el formato. La documentación estará ubicada en cualquier caso dentro de
un directorio doc colgando directamente de la raíz del paquete.
- También debe tener una batería de tests estándar en un directorio test
colgando directamente de la raíz del paquete.
- El repositorio es un directorio plano con unos archivos obligatorios:
- index.tol: Contiene características generales del repositorio como el
nombre, el tipo ("Private" ó "Public") y la descripción de los objetivos.
- index.csv: Listado de los paquetes y su información asociada: fecha,
versión, dependencias, etc.
- Debe haber un comité o alguien responsable de probar todos los paquetes de
un repositorio antes de publicar las actualizaciones de los paquetes para
asegurar la compatibilidad conjunta de todos ellos.
Download in other formats: