{{{
#!comment
}}}
{{{
#!div style="width:15%; float:left; clear:none; margin-right:1em; background:#ffb; border:1px solid #b00; padding-left:1em; padding-right:1em"
[wiki:WikiStart Home] [[BR]] [[BR]]
'''TOL''' [[BR]] [wiki:Software Software] [[BR]] [wiki:Download Download] [[BR]] [wiki:Installation Installation] [[BR]] [wiki:Packages Packages] [[BR]] [wiki:OTAN OTAN] [[BR]] [[BR]]
'''TOL Project''' [[BR]] [wiki:About About TOL] [[BR]] [wiki:Manuals Manuals] [[BR]] [wiki:Development Development] [[BR]] [wiki:Rprojects R-Projects] [[BR]] [[BR]]
'''Other Links''' [[BR]] [wiki:TracGuide Trac Guide] [[BR]] [wiki:WikiTree Wiki Tree] [[BR]] [https://mms.tol-project.org MMS]
}}}
{{{
#!div style="margin-left:20%; margin-right:20%; padding-left:2em; padding-right:2em"
{{{
#!comment
}}}
= Packages =
{{{
#!div style="background:#fcc; border: 1px solid red; color:red; padding-left:1em; margin-right:1em"
To do. See [wiki:TolPackageRulesAndComments].
}}}
== Introduction ==
The idea of a package comes from the concept of modularity and the possibility of loading and
distributing a whole module as a unit. A TOL package is essentially no more than a NameBlock
distributed in an .oza file.
In the TOL programming frame, we identify the package with the NameBlock that contains
the set of classes, structurs, variables, functions and definitions. This is distributed and loaded as
an unit of the TOL package system.
Looking more from a distribution-focused point of view, a package is a compressed file
(specifically a .zip file) that contains the nameblock serialisation (an .oza file). This is
accompanied by other complementary resources that can be: files containing icons or images,
documentation, libraries of compiled functions (written in C++ and distributed in .dll or .so files)
and even uncompiled TOL code ( .tol files) by way of example.
== Names and versions ==
A TOL package is identifed by its name and version.
The name of the package matches with the name of the nameblock that represents it. It generally
follows a CamelCase structure.
The version consists of integers. The first (the high version number) shows if there has been an
important change in the structure and functionality; one which could break the compatability
with the user-code in use. The second however (the low version number) shows that changes
have been made to the package that maintain package-use compatibility. These changes could
be corrections or the inclusion of new functionalities.
The package identifier is created by linking the name and two version numbers
.. with a full-stop (.).
For example, the identifier {{{GuiTools.3.5}}} makes reference to version 3.5 of GuiTools, which
includes utilities for TOLBase graphical integration.
== TolPackage ==
The TOL kernel provides a module to manage packages: TolPackage.
This module allow TOL users to download, update or upgrade packages. It provides also utilities for creating and uploading packages. For more details, see [wiki:TolPackage].
== Requiring a package ==
TOL provides a preevaluation directive: {{{#Require}}} to indicate the package requeriments.
{{{
#!cpp
#Require ;
}}}
When you ''compile'' a package requirement, TolPackage try to load the package, searching into the repositories, downloading it and intalling it if necessary.
== Official TOL Archive Network ==
The official repository of TOL packages is called '''OTAN''' ('''O'''fficial '''T'''OL '''A'''rchive '''N'''etwork). In this link: [wiki:OTAN] you can browse the full list of public packages.
== Package manager in TOLBase ==
From version 3 onwards, TOLBase includes a graphic interface especially designed to make the management of packages easier.
It can be accessed from the "Tools" menu, in the "Manage Packages..." option.
'''Screenshot''': Package manager in TOLBase.
[[Image(Screenshots:tolbase_tolpkg_01.png, width=500px)]]
The interface offers a list of all available packages from all of the of the repositories to which they have access for installation, updates or upgrades.
Different package states are displayed in the form of various different icons:
* [[Image(source:tolp/trunk/tolbase/lib/toltk/images/p_no.gif)]]: New, not installed.
* [[Image(source:tolp/trunk/tolbase/lib/toltk/images/p_upd.gif)]]: Update required; a more recent package of an identical version is available.
* [[Image(source:tolp/trunk/tolbase/lib/toltk/images/p_upg.gif)]]: Upgrade required, a package with a superior version is available.
* [[Image(source:tolp/trunk/tolbase/lib/toltk/images/p_unu.gif)]]: Upgrade and update required, both of these are required periodically.
* [[Image(source:tolp/trunk/tolbase/lib/toltk/images/p_ok.gif)]]: Package okay, currently installed without requirement for update or upgrade.
Various actions can be carried out on packages. These are offered in the contextual menu.