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.
- Timestamp:
-
Oct 18, 2010, 5:50:07 PM (14 years ago)
- Author:
-
Víctor de Buen Remiro
- Comment:
-
--
Legend:
- Unmodified
- Added
- Removed
- Modified
-
v25
|
v26
|
|
3 | 3 | = !TolPackage: Un sistema de desarrollo modular en red = |
4 | 4 | |
5 | | == Objetivos == |
| 5 | == Introducción == |
6 | 6 | |
7 | 7 | El objetivo principal de este sistema es que los usuarios finales que no |
8 | 8 | colaboran en el desarrollo de las librerías de uso más o menos genérico, |
9 | 9 | no tengan que preocuparse de dónde se encuentra el código fuente de las |
10 | | mismas ni tenga que tener instalados programas para compartir código como |
| 10 | mismas, ni tenga tampoco que tener instalados programas para compartir código como |
11 | 11 | CSV o SVN. El usuario sólo necesita saber una URL remota o un camino local |
12 | 12 | donde se encuentran los paquetes y el nombre de los que necesita. El |
… |
… |
|
16 | 16 | El otro gran objetivo es fomentar la creación de utilidades concretas que |
17 | 17 | se puedan cargar atómicamente sin necesidad de compilar cantidades ingentes |
18 | | de código del cual luego se usa sólo una pequeña parte la mayor parte de |
| 18 | de código, del cual luego se usa sólo una pequeña parte la mayoría de |
19 | 19 | las veces. El usuario no necesita saber qué paquetes dependen de cuáles |
20 | 20 | sino que son ellos mismos quienes se autogestionan. |
… |
… |
|
33 | 33 | de los problemas que pueden resolver. |
34 | 34 | |
| 35 | === El gestor de paquetes === |
| 36 | |
| 37 | El gestor de paquetes TOL es el {{{NameBlock TolPakage}}} disponible en |
| 38 | la {{{StdLib}}} |
| 39 | |
| 40 | Los paquetes disponibles en repositorios remotos o locales se instalan, |
| 41 | actualizan y manejarlos mediante las utilidades de |
| 42 | {{{TolPackage::Client}}} |
| 43 | |
| 44 | Las utilidades para la creación de repositorios se encuentran en |
| 45 | {{{TolPackage::Server}}} |
| 46 | |
35 | 47 | == Uso básico de paquetes == |
36 | 48 | |
… |
… |
|
39 | 51 | #Require nombre_de_paquete; |
40 | 52 | }}} |
41 | | y que se lee directamente de un archivo OIS almacenado previamente en un |
42 | | directorio local predeterminado por el sistema al que llamaremos almacén |
43 | | del cliente y que es común para todas las instalaciones de TOL que haya |
44 | | en una misma máquina y ubicado en {{{Text TolPackage::Client::_.localRoot}}}. |
| 53 | que se lee directamente de un archivo OIS almacenado previamente en un |
| 54 | directorio local predeterminado por el sistema. Llamaremos almacén |
| 55 | del cliente a ese directorio común para todas las instalaciones de TOL |
| 56 | que haya en una misma máquina, que estará ubicado en |
| 57 | {{{ |
| 58 | #!cpp |
| 59 | Text TolPackage::Client::_.localRoot |
| 60 | }}} |
45 | 61 | |
46 | 62 | La orden de requerimiento {{{#Require}}} es muy diferente a las órdenes |
… |
… |
|
49 | 65 | |
50 | 66 | * No hay que dar el camino del archivo TOL sino el nombre del paquete |
51 | | * No hay que poner el nombre entre comillas |
52 | | * El NameBlock cargado es siempre global se llame desde donde se llame |
| 67 | * No hay que poner el nombre entre comillas. |
| 68 | * El NameBlock cargado es siempre global, se llame desde donde se llame. |
53 | 69 | * No es posible deshacer un requerimiento: el paquete permanecerá |
54 | | disponible durante toda la sesión |
55 | | |
56 | | Un repositorio es un sitio web o un directorio local al que llamaremos |
57 | | también almacén servidor, donde se encuentra disponible una colección de |
58 | | paquetes ya preparados para que los usuarios puedan descargarlos a su |
59 | | almacén de cliente. Los paquetes se encuentran comprimidos en el |
60 | | repositorio remoto mientras que en el almacén del cliente se encuentran |
61 | | los directorios descomprimidos para no perder tiempo en descomprimirlos |
| 70 | disponible durante toda la sesión. |
| 71 | * Un paquete consta exclusivamente de código declarativo, para poder |
| 72 | residir en un .oza. La primera vez que se carga en una sesión se |
| 73 | ejecutarán las sentencias no declarativas programadas en el método |
| 74 | especial {{{StartActions}}} |
| 75 | |
| 76 | Un repositorio es un sitio web al que llamaremos también almacén del |
| 77 | servidor, donde se encuentra disponible una colección de paquetes ya |
| 78 | preparados para que los usuarios puedan descargarlos a su almacén de |
| 79 | cliente. Los paquetes se encuentran comprimidos en el repositorio |
| 80 | remoto mientras que en el almacén del cliente se encuentran los |
| 81 | directorios descomprimidos para no perder tiempo en descomprimirlos |
62 | 82 | cada vez. |
63 | 83 | |
64 | | === El gestor de paquetes === |
65 | | |
66 | | El gestor de paquetes TOL es el {{{NameBlock TolPakage}}} |
67 | | |
68 | | Los paquetes disponibles en repositorios remotos o locales se instalan, |
69 | | actualizan y manejarlos mediante las utilidades de |
70 | | {{{StdLib::TolPackage::Client}}} |
71 | | |
72 | | Las utilidades para la creación de repositorios se encuentran en |
73 | | {{{StdLib::TolPackage::Server}}} |
74 | 84 | |
75 | 85 | === Uso on-line de paquetes === |
… |
… |
|
83 | 93 | }}} |
84 | 94 | |
85 | | Por defecto, esta lista sólo contiene el [wiki:OfficialTolArchiveNetwork |
86 | | repositorio oficial de bayes] pero es posible añadir otros mediante |
| 95 | Por defecto, esta lista sólo contiene el |
| 96 | [wiki:OfficialTolArchiveNetwork repositorio oficial de bayes] pero es |
| 97 | posible añadir otros mediante |
87 | 98 | {{{ |
88 | 99 | Real TolPackage::Client::AddRepository(Text url) |
… |
… |
|
133 | 144 | Set _.autodoc.dependencies = [["paquete1","paquete2", ...]]; |
134 | 145 | }}} |
| 146 | * Si el el paquete se está desarrollando en un entorno de edición compartida |
| 147 | tipo CVS ó SVN es muy conveniente incluir la información acerca del estado |
| 148 | actual en el miembro opcional {{{Text _.autodoc.versionControl}}}. |
| 149 | Para el caso de SVN quedaría así |
| 150 | {{{ |
| 151 | #!cpp |
| 152 | Text _.autodoc.versionControl = AvoidErr.NonDecAct(OSSvnInfo(".")); |
| 153 | }}} |
| 154 | Falta hacer la función {{{OSSvnInfo}}} equivalente para el sistema CVS. |
| 155 | Se trata de un campo opcional pero altamente recomendado. |
135 | 156 | * Cuando un paquete requiera para su ejecución de recursos ajenos a TOL será |
136 | 157 | necesario añadir un nuevo miembro que será un conjunto de textos con los |