3.2. Consistency Control

The section on version control in the previous chapter has already exemplified the occurrence of consistency control. More specifically, there must have been a successful execution of pkgm -build before the current state of a package may be committed to the version control repository. Other major examples of consistency control are as follows:

  1. Whenever a package A imports a library libb from a package B and, at the same time, both of them import a library libc from a package C, then both of these imports must refer to the same version of libc. This rule is generalized in the expected way to transitive imports.

  2. Each package installation shipped to some pool is versioned. Moreover, ComPact ensures a one-to-one correspondence between installations on a project-wide or global scale and the release versions in the version control repository.

Indeed, ComPact performs a multitude of consistency checks. Some of them are explained in the course of the chapters to come, others do not become apparent until an appropriate error condition is raised at runtime. ComPact's high degree of integration obviously helps consistency control greatly, since it allows the system to check across the borders of different areas of management functionality. -- For example, Rule No. 1 above states a dependency of version management upon build management.

Consistency control is, therefore, one of the main advantages over more conventional multi-tool approaches that you can gain by using ComPact. Its crucial basis is version-controlled build management.