This configuration management environment, based on some management conventions and comprising several shell-based utilities, is an attempt to formalize software production and especially configuration management around a package-oriented principle.The notion of packages represents hereafter a set of software components (that may be applications, libraries, tools etc...) that are to be used for producing a system or a framework. In such an environment, several persons are assumed to participate in the development and the components themselves are either independent or related to each other.
The environment provides conventions (for naming packages, files, directories and for addressing them) and tools for automating as much as possible the implementation of these conventions. It permits to describe the configuration requirements and automatically deduce from the description the effective set of configuration parameters needed to operate the packages (typically for building them or using them).
CMT is an academic project aimed at providing support to the software developments in the context of large physics experiments. It is supported by the LAL (Laboratoire de l'Accélérateur Linéaire - CNRS), where a support team has been setup:
Christian Arnault
Bruno Mansoux
Antoine PérusThis project is managed in an OpenSource-like style, with available sources, and is opened to any contribution from anybody. Although it is currently used by Physics experiments, it is strongly required to stay experiment neutral, and this requirements is fully endorsed in its internal design (eg by ensuring that all possible customizations can always be performed without modifications to the kernel).
This kind of requirements also implies that portability or modularity issues (including environment independance) are assigned a quite high priority.
document (html) ps ppt CMT manual x x CMT FAQ x x Doxygen manual CMT slides x CMT slides presented at CHEP2000 x Slides on the development model x x A CMT tutorial x x Another CMT tutorial x x
A mailing list is setup for managing an open discussion on CMT, receiving requests, comments suggestions, bug reports, etc...You're welcome to subscribe to this list here or by sending a message with topic "subscribe CMT-L <your name>" to LISTSERV@IN2P3.FR.
The CVS repository for CMT is now accessible through CVSWeb here !!
The current stable main version of CMT is v1r10. However patched versions can be also produced (fixing bugs or providing backward compatible improvements). Users are welcome to try these new versions when they appear (and report from their experience), although they must be considered as less stable than the main current version.
Please notice that (at least from v1r6) the odd version numbers must be considered as development or patched versions (and as such are somewhat unstable), and they may be updated from time to time. Whenever such a development version comes to the point it can be stabilized, it will be renamed to the next even number. As soon as a new frozen version is installed, the intermediate patches are removed, and new development versions may be proposed (eg. under the name v1r<n+1>p<date>).
For each of the following tags, you'll find a distribution kit for the sources and (for the latest ones) some prepared binary files.
- v1r10p20011126 (patched version of v1r10)
- v1r10p20011113 (patched version of v1r10)
- v1r10
- v1r8p20010710 (bug fixed with respect to v1r8 should be fetched instead of v1r8!!)
- v1r8
- v1r6
- v1r5
- v1r4
In order to download the distribution kit, select a root directory where CMT will be installed. Create there a directory named CMT and un-tar all the kits you have selected below from this directory:
> cd <some root> > uncompress CMTv1r10.tar.Z > tar xvf CMTv1r10.tarIf you wish to build CMT on other plateforms, you just need a C++ compiler (supporting templates - STL is not needed) and a bash-like shell.
Once the distribution kit is downloaded, and untarred, resulting in a directory structure like:
you have to perform the installation by running:<some root>/CMT/v1r10/...Then CMT is installed, and anybody may use CMT simply by doing:unix> cd <some root>/CMT/v1r10/mgr unix> ./INSTALL unix> source setup.[c]sh unix> [g]make or dos> cd <some root>\CMT\v1r10\mgr dos> call INSTALL.bat dos> call setup.bat dos> nmake /f nmakeunix-csh> source <some root>/CMT/v1r10/mgr/setup.csh or unix-sh> . <some root>/CMT/v1r10/mgr/setup.sh or dos> call <some root>\CMT\v1r10\mgr\setup.bat
Some of the global configuration parameters for CMT may optionally be installed as Windows registry entries (although the environment variables style of definitions is fully supported). This can be done using the install.exe facility available from the download page or using the standard RegEdit facility :
- HKEY_LOCAL_MACHINE/Software/CMT/root will contain the root directory where CMT is installed (eg. "e:").
- HKEY_LOCAL_MACHINE/Software/CMT/version will contain the current version tag of CMT ("v1r10" for this version).
- HKEY_LOCAL_MACHINE/Software/CMT/path/ may optionally contain a set of text values corresponding to the different package global access paths (similar to the CMTPATH environment variable.
- HKEY_CURRENT_USER/Software/CMT/path/ may contain a set of text values corresponding to the different package private access paths (complementary to the latter).