Chapter 1. Introduction

This chapter gives a brief introduction into project management with the Elego ComPact Project Manager prjm. It assumes a basic knowledge of the concept of structuring software into packages, which is explained in detail in the Elego ComPact Package Manager User Guide.

Project management in Elego ComPact is concerned with sets of packages and actions that are to be applied to some or all of these packages.

Important: A project is defined as a set of software packages. The specification of a project is contained in the project description file PrjDesc.



If you want to use the project management capabilities of Elego ComPact, all you have to do is write a project description file. See Chapter 2 for details on how to do this.

You should place your project description file away from the software packages you use and never within a package contained in the project. It is important that you realize that project management takes place on a meta level of package management, and that all the version control mechanisms used to manage packages must be available to the project management facilities. This does not mean that you must not put your project management files under version control, but that the kind and pragmatics of version control are entirely different from the concepts applied to software packages. A good practice is to collect all your project descriptions in directories of their own (named after the project) under a root directory for project management and use version control only to protocol the changes made to the project descriptions and other files that are concerned with the whole project, like global documentation.

Once you have written your project description, you may use prjm to perform any of the following activitites:



To identify certain versions of packages the symbolic names (tags) created by the package management tools (pkgm and pkgvm) are used. The version of a whole project is a mapping from all package names to package versions. These mappings are referred to by name. Two kinds of versions of projects are distinguished:

Important: A release of a project is a mapping of all packages of a project to release versions, such that all packages can be built together with their relative version. If there is at least one non-release version in the project state, the mapping is called a snapshot.



To learn more about the snapshots and releases, have a look at Section 3.8.

Some words on terminology: the ComPact project manager implements what is often called a component model of version control. In this model, elements (subsystems, packages) are assembled into a system description or a system model. Project description files are the system descriptions of Elego ComPact. Creating configurations is the process of specifying the version of one or more elements of the system. Depending on whether all versions of all elements are uniquely determined, the configuration is called bound or unbound. Elego ComPact's bound configurations are snapshots and releases, and a stable release is the only unbound configuration supported by default.

The creation and re-creation of snapshots and releases is the most important use of prjm. Using your package description file and pre-created snapshots, you can check out your whole project in a certain release or development state from the vesion repository by simply referring to the name of the snapshot or release. If you haven't yet created a snapshot, you can always check out the latest development version of all packages using the pseudo-configuration head.