28 | | Bla bla bla ... |
| 28 | The idea of a package comes from the concept of modularity and the possibility of loading and |
| 29 | distributing a whole module as a unit. A TOL package is essentially no more than a NameBlock |
| 30 | distributed in an .oza file. |
| 31 | |
| 32 | In the TOL programming frame, we identify the package with the NameBlock that contains |
| 33 | the set of classes, structurs, variables, functions and definitions. This is distributed and loaded as |
| 34 | an unit of the TOL package system. |
| 35 | |
| 36 | Looking more from a distribution-focused point of view, a package is a compressed file |
| 37 | (specifically a .zip file) that contains the nameblock serialisation (an .oza file). This is |
| 38 | accompanied by other complementary resources that can be: files containing icons or images, |
| 39 | documentation, libraries of compiled functions (written in C++ and distributed in .dll or .so files) |
| 40 | and even uncompiled TOL code ( .tol files) by way of example. |
| 41 | |
| 42 | == Names and versions == |
| 43 | |
| 44 | A TOL package is identifed by its name and version. |
| 45 | |
| 46 | The name of the package matches with the name of the nameblock that represents it. It generally |
| 47 | follows a CamelCase structure. |
| 48 | |
| 49 | The version consists of integers. The first (the high version number) shows if there has been an |
| 50 | important change in the structure and functionality; one which could break the compatability |
| 51 | with the user-code in use. The second however (the low version number) shows that changes |
| 52 | have been made to the package that maintain package-use compatibility. These changes could |
| 53 | be corrections or the inclusion of new functionalities. |
| 54 | |
| 55 | The package identifier is created by linking the name and two version numbers |
| 56 | <name>.<version.high>.<version.low> with a full-stop (.). |
| 57 | For example, the identifier {{{GuiTools.3.5}}} makes reference to version 3.5 of GuiTools, which |
| 58 | includes utilities for TOLBase graphical integration. |