Adding Perl module dependencies

To deal with Perl module dependencies in a safe way the METAMOD project has developed its own dependencies handler that at all times keeps track of a dependency graph. The dependency graph contains information on which modules depend on each other and what version is needed. The dependency handler was mainly created to solve the following problems:

If installing Perl modules from an OS repository (like the Ubuntu repo) you are dependent on the version used by the OS version.

This modules can often be out-dated.

You are not guaranteed that the version X and version Y of the OS use compatible versions of the same module.

The module might not be available.

If installing Perl modules via a CPAN client you will always get the lastest version of a module. The module version will therefore depend on the time of installation and different machines will get different configurations. This often leads to bugs that are hard to track down and are a complete waste of time.

The dependency handler used in METAMOD is one possible approach to this problem. The rest of the document describes how a new module can be added to graph.

Checking out dependency handler with graphs

More to come....