GSoC/GCI Archive
Google Summer of Code 2013 BEAM Community

Erlang Package Manager (pakx)

by Aman Mangal for BEAM Community

PAKX is a package manager for Erlang packages. An Erlang application may depend on various other Erlang packages. Each Erlang package is identified by its publisher, name and version. These packages may in turn depend on other packages and so on. This leads to generation of a direct acyclic graph (DAG) of applications and packages which depend on each other. To build the original application, all the dependent packages must be built first. In this case we traverse from bottom of the tree to the top in DAG. It has to manage all the repositories to various packages published by publishers. It will fetch the source code of all the packages whenever an application depends on them if they are already not present locally. Now the build tool can reference to these packages while building the original project. Assembler can, then, assemble the release which is ready to be used. Finally the programmer may want to publish this application as a package. The focus of this project is to write the package manager of the dependent packages for erlang applications. The compatibility of this tool with the existing tools like Erlang builder, dependency manager etc. is very crucial to the project.