/

terminology

This page describes the common terminology for the documentation of MBPacketManager and should read be read in order to understand the other parts of the documentation.

1 Packet


A packet is the most fundamental part of MBPacketManager, but it's definition may be a bit overloaded, and it's semantics cannot fully be described here in succinct enough way. A more indepth descriptions of packets can be found here.

A packet is any valid directory structure with a valid MBPM_PacketInfo file in it's root directory. This directory structure can either exist on a local filesystem, or be retrieved from a remote server.

While this describes what a packet is in the most general so is there a separate definition for this application, that serves to describe how different kind of packets are identified and the semantics for the operations on them.

A packet is a tuple of 3 things, a name that is assumed to be unique, a location URI and a location type. The location URI should uniquely identify location of a packet, and the location type describes what type of location this is.

2 Dependancy list


Every packet has a list of dependancies, this list is called the packet's dependancy list.

3 Dependancy


Every packet has a list of dependancies, which is the names of other packets it depends on. But a packet being a dependancy for another packet is defined recursivly.

Packet A is a dependancy of packet B if it is in packet B's dependancy list, or if it is a dependancy for any of the packet's in packet B's dependancy list.

4 Dependant


Packet A is a dependant of packet B if B is a dependancy for A.

5 Dependancy Depth


The dependancy depth for packet A to packet A is 0.

The dependancy depth for packet A to packet B is 1 + the shortest dependancy depth for packet A to the packets in B's dependancy list.

6 Packet depth


The packet depth of a packet is the 1 + the highest dependancy depth to any of it's dependancies.

7 Dependancy order


A list of packet is in dependancy order of if for any 2 indexes A and B, the packet depth of the packet at index A is lower than the packet depth for the packet at index B.

Note: The main purpose of dependancy order is to describe the order packets need to be compiled in order to ensure that all packets are compiled with the newest versions of their dependancies. This is however the reversed order that is needed for a traditional unix linker. A unix linker needs the packet that is a dependancy for previous packet to be put last.

8 Absolute packet path


The philosophy behind mbpm states that packets should be as self contained as possible, and not depend on modifying the filesystem outside it's packet directory, and should only do so by a common interface that is interprated by another program. Programs isn't installed to /usr/bin by the packet, instead the programs available for installation is listed, allowing the user to decide what installation means.

This also means the files included in a packet directory is in some sense static, and should provide all information needed to understand the packet. This also gives a natural way to adress files in a packet.

An absolute packet path is syntactically equivalent to a regular POSIX fileystem absolute path, except that the directory ".." doesn't exist for any directory. The root is the packet directory.

9 Singular filename


A singular filename is a string that can specify the name of a file, without including any directories. This mean that in practice that a singular filename is follows the same rules for a packet path, except that it can't contain '/' or consist only of "." or "..".

10 Packet list


The packet list is the list of packets a vectorized command is operating on. They are always created through a packet specification.