Each package managed by ComPact is under version control. This means that every state of the whole package that has been committed to ComPact as the product of a development step or as a release may be reconstructed at any time. Packages are always committed or checked out from a version repository as a whole, enlarging the simple and easy-to-use model of checkin-checkout by pragmatically defined change sets.
ComPact uses a simple model for naming and ordering of package versions, which is based on major and minor numbers and patch levels. Development versions are treated differently than released versions, for which branches are created automatically, so that local bug fixes may be applied.
A typical version history of a package may look like the one in Figure 5-2:
This model of version control treats each software package as its own project.