Modules - Packaging

 Module Packaging

Modules can be packaged by creating a ZIP archive of all files. In addition, a manifest file has to be placed inside the ZIP file.

When installing a module through the WebGUI, the ZIP file will be extracted into a subfolder under /yarra/modules_user. The installation folder is named according to the filename of the manifest file that is contained in the ZIP archive. Thus, it is possible to append a version number to the ZIP file (e.g., setdcmtags_012b.zip) without affecting the installation location.

During the installation process, the Yarra WebGUI checks if the ZIP archive contains a manifest file (.yml). If the ZIP file does not contain a manifest file, the installation will be aborted. As next step, the Yarra WebGUI checks if a module with the name of the manifest file already exists in the /yarra/modules_user folder. If not, a subfolder will be created and the ZIP file will be extracted. If it already exists, the WebGUI will compare the version number of the installed module with the version number in the manifest file of the ZIP archive. If the version number in the ZIP archive is higher, the installed module will be removed (i.e. the subfolder will be deleted) and the ZIP file will be extracted; otherwise the installation will be aborted.

It should be noted that the WebGUI just extracts the files contained in the ZIP file (including subfolders). However, it does not install any Linux dependencies. If the module requires any dependencies that have to be installed via apt-get, this should be listed in the documentation of the module.

 

 Manifest File

The manifest file is a text file in the “ini format” with extension .yml. It is used to display information about the module in the WebGUI (Configuration page) and for the version management (only newer versions will be installed if the module does already exist). Note that the name of the manifest file determines the name of installation folder.

[YarraModule]
Name=
Version=
Author=
Description=
Homepage=
DownloadURL=
RequiresMatlab=

Example:

[YarraModule]
Name=GRASP (Matlab)
Description=GRASP reconstruction implemented in Matlab
Version=0.1
Author=Li Feng
RequiresMatlab=true