cmt christian arnault - lal - chep 2000 1/18 introduction what is cmt, its goals operating cmt the...
TRANSCRIPT
![Page 1: CMT Christian Arnault - LAL - Chep 2000 1/18 Introduction What is CMT, its goals Operating CMT The concepts in CMT, the internal model Status, implementation](https://reader036.vdocuments.net/reader036/viewer/2022082517/56649ee45503460f94bf2aa3/html5/thumbnails/1.jpg)
Christian Arnault - LAL - Chep 2000 1/18
CMT
Introduction• What is CMT, its goals
• Operating CMT
• The concepts in CMT, the internal model
• Status, implementation
• Comparisons, references
Configuration Management Tool
![Page 2: CMT Christian Arnault - LAL - Chep 2000 1/18 Introduction What is CMT, its goals Operating CMT The concepts in CMT, the internal model Status, implementation](https://reader036.vdocuments.net/reader036/viewer/2022082517/56649ee45503460f94bf2aa3/html5/thumbnails/2.jpg)
Christian Arnault - LAL - Chep 2000 2/18
CMT
What is CMT• A set of tools and conventions
– structures software development or production• concepts of areas, packages, versions, constituents
– organises software into packages– describes package properties– describes package constituents– operates the software production (management,
build, import/export, etc...)• by transparently configuring and driving the various
conventional tools (CVS, make, MSDev, Web, tar, compilers, linkers, archivers, etc...)
![Page 3: CMT Christian Arnault - LAL - Chep 2000 1/18 Introduction What is CMT, its goals Operating CMT The concepts in CMT, the internal model Status, implementation](https://reader036.vdocuments.net/reader036/viewer/2022082517/56649ee45503460f94bf2aa3/html5/thumbnails/3.jpg)
Christian Arnault - LAL - Chep 2000 3/18
CMT
The goals• Organise software development from a single
person up to teams in large projects (scalability)• Organise relationships between entire software
bases or between simple packages (scalability)• Manage site, platform or product specific properties• Automate complex production tools for non
software experts (simplicity)• Factor out know-how from project to project, from
package to package or from team to team (process improvement)
![Page 4: CMT Christian Arnault - LAL - Chep 2000 1/18 Introduction What is CMT, its goals Operating CMT The concepts in CMT, the internal model Status, implementation](https://reader036.vdocuments.net/reader036/viewer/2022082517/56649ee45503460f94bf2aa3/html5/thumbnails/4.jpg)
Christian Arnault - LAL - Chep 2000 4/18
CMT
Operating CMT...Define software areas define CMTPATH
– private individual work areas• primary development
– shared team-wide development areas• integration phases
– public production areas– export areas– import areas for external software
> setenv CMTPATH area1:area2:area3
HKEY_LOCAL_MACHINE/Software/CMT/path/...
![Page 5: CMT Christian Arnault - LAL - Chep 2000 1/18 Introduction What is CMT, its goals Operating CMT The concepts in CMT, the internal model Status, implementation](https://reader036.vdocuments.net/reader036/viewer/2022082517/56649ee45503460f94bf2aa3/html5/thumbnails/5.jpg)
Christian Arnault - LAL - Chep 2000 5/18
CMT
...operating CMT...Describe and parameterise the configuration
of packages fill in the requirements text file
– relationships with other packages– constituents– meta-information (author, manager, ...)– private or public (exported) properties and tool
configuration (macros and symbols)
use Expat v1
library A *.cxx
macro cppflags “-g” ...path_append LD_LIBRARY_PATH “” Linux “...”
![Page 6: CMT Christian Arnault - LAL - Chep 2000 1/18 Introduction What is CMT, its goals Operating CMT The concepts in CMT, the internal model Status, implementation](https://reader036.vdocuments.net/reader036/viewer/2022082517/56649ee45503460f94bf2aa3/html5/thumbnails/6.jpg)
Christian Arnault - LAL - Chep 2000 6/18
CMT
...operating CMT...Drive the various productivity tools while
monitoring the package state run [j]cmt
– CVS, make, MSDev, tar, Web, etc... get their configuration from the requirements file (through the cmt generic driver)
> cmt show path> cmt show uses> cmt show constituents> cmt show macros> cmt show macro xxx
![Page 7: CMT Christian Arnault - LAL - Chep 2000 1/18 Introduction What is CMT, its goals Operating CMT The concepts in CMT, the internal model Status, implementation](https://reader036.vdocuments.net/reader036/viewer/2022082517/56649ee45503460f94bf2aa3/html5/thumbnails/7.jpg)
Christian Arnault - LAL - Chep 2000 7/18
CMT
...operating CMTA typical (and full) sequence
> cmt config A v1 myarea> cd myarea/A/v1/mgr> vi requirements
> vi A.cxx B.cxx C.cxx...> gmake> ../${CMTCONFIG}/A.exe
package Ause Atlas v0r33application A A.cxx B.cxx C.cxx
Create a new packageand move to it
Describe the package
Create the package items and build them
run
![Page 8: CMT Christian Arnault - LAL - Chep 2000 1/18 Introduction What is CMT, its goals Operating CMT The concepts in CMT, the internal model Status, implementation](https://reader036.vdocuments.net/reader036/viewer/2022082517/56649ee45503460f94bf2aa3/html5/thumbnails/8.jpg)
Christian Arnault - LAL - Chep 2000 8/18
CMT
The concepts...Package search path
The minimal entity
Describes the backward compatibility
Induces inheritance-like properties and
version constraints
Applications, libraries, documents
Macros, environment variables, include
search path, etc...
Open architecture for any non-standard
configuration action
Area
Package
Version
Use relationships
.
Constituents
Configuration
parameters
Document
generators
![Page 9: CMT Christian Arnault - LAL - Chep 2000 1/18 Introduction What is CMT, its goals Operating CMT The concepts in CMT, the internal model Status, implementation](https://reader036.vdocuments.net/reader036/viewer/2022082517/56649ee45503460f94bf2aa3/html5/thumbnails/9.jpg)
Christian Arnault - LAL - Chep 2000 9/18
CMT
The packages• Plain standard packages
<some area>/<package>/<version tag>/<mgr>
• Stand alone (unstructured) packages– simple test applications. Can use any standard area but
cannot be used by other packages.
• Glue packages– install external software into the CMT conventions
LHC++, Geant4, Objectivity
• Interface packages– generic configuration parameters to a set of correlated
packagesSimulation, Reconstruction, Graphics, Atlas
![Page 10: CMT Christian Arnault - LAL - Chep 2000 1/18 Introduction What is CMT, its goals Operating CMT The concepts in CMT, the internal model Status, implementation](https://reader036.vdocuments.net/reader036/viewer/2022082517/56649ee45503460f94bf2aa3/html5/thumbnails/10.jpg)
Christian Arnault - LAL - Chep 2000 10/18
CMT
The version tags• Handle backward compatibility specifications
v<major id>r<minor id>p<patch id>
• Alternate version strategies available– best-fit (the default), first-choice, last-choice, keep-all
• For the default strategy, the best possible set of versions available from the search path is computed.– Overrides are acknowledged– Unresolved conflicts are fatal (two different major ids
simultaneously referenced). Requires user’s action (package synchronisation)
Any letteris possible
![Page 11: CMT Christian Arnault - LAL - Chep 2000 1/18 Introduction What is CMT, its goals Operating CMT The concepts in CMT, the internal model Status, implementation](https://reader036.vdocuments.net/reader036/viewer/2022082517/56649ee45503460f94bf2aa3/html5/thumbnails/11.jpg)
Christian Arnault - LAL - Chep 2000 11/18
CMT
Use relationships• Set a dependency between two package-
version duets.
• Public configuration parameters are inherited through the use.
• The use specification defines a graph of links (possible redundancy)
• cmt provides the reduction algorithm of the tree (search path is taken into account)> cmt show uses
![Page 12: CMT Christian Arnault - LAL - Chep 2000 1/18 Introduction What is CMT, its goals Operating CMT The concepts in CMT, the internal model Status, implementation](https://reader036.vdocuments.net/reader036/viewer/2022082517/56649ee45503460f94bf2aa3/html5/thumbnails/12.jpg)
Christian Arnault - LAL - Chep 2000 12/18
CMT
Constituents– applications and libraries
• standard behaviour for make or MSDev parameterised by conventional macros and fragments (make & MSDev)
– cflags cppflags fflags– clinkopts cpplinkopts flinkopts
– documents• can be fully tuned and specified for any document
filter
– fragments and macros overriding can occur in any client package
![Page 13: CMT Christian Arnault - LAL - Chep 2000 1/18 Introduction What is CMT, its goals Operating CMT The concepts in CMT, the internal model Status, implementation](https://reader036.vdocuments.net/reader036/viewer/2022082517/56649ee45503460f94bf2aa3/html5/thumbnails/13.jpg)
Christian Arnault - LAL - Chep 2000 13/18
CMT
Symbols• Used to specify make macros, environment
variables, aliases, path-like variables
• alternate value can be specified for different sites, platforms, working conditions
• edition
macro a “aaa” set b “bbb”alias c “ccc” path d “ddd”
macro a “aaa” CERN “aax” LAL “aay”macro b “bbb” Linux “bbx” alpha-osf40 “bby”macro c “ccc” debug “ccx” insure “ccy”
macro-append macro-prepend macro-removeset-append set-prepend set-removepath-append path-prepend path-remove
![Page 14: CMT Christian Arnault - LAL - Chep 2000 1/18 Introduction What is CMT, its goals Operating CMT The concepts in CMT, the internal model Status, implementation](https://reader036.vdocuments.net/reader036/viewer/2022082517/56649ee45503460f94bf2aa3/html5/thumbnails/14.jpg)
Christian Arnault - LAL - Chep 2000 14/18
CMT
Implementation• The main driver
– cmt line-mode driver (Unix & Windows)– jcmt interactive java driver
• ported to all Unix platforms and native port to Windows 95/98 and NT (only plain C++)
• interfaced to MSDev through calls to cmt from the customisation menus
• http://www.lal.in2p3.fr/SI/CMT/CMT.htm– documentation, distribution kits, mailing list,
CVSWEB
![Page 15: CMT Christian Arnault - LAL - Chep 2000 1/18 Introduction What is CMT, its goals Operating CMT The concepts in CMT, the internal model Status, implementation](https://reader036.vdocuments.net/reader036/viewer/2022082517/56649ee45503460f94bf2aa3/html5/thumbnails/15.jpg)
Christian Arnault - LAL - Chep 2000 15/18
CMT
jcmt
browser
editor
monitor
Package areas
Packages & versions
Free action onto the package
Requirements editor
Configuration monitor
![Page 16: CMT Christian Arnault - LAL - Chep 2000 1/18 Introduction What is CMT, its goals Operating CMT The concepts in CMT, the internal model Status, implementation](https://reader036.vdocuments.net/reader036/viewer/2022082517/56649ee45503460f94bf2aa3/html5/thumbnails/16.jpg)
Christian Arnault - LAL - Chep 2000 16/18
CMT
Clients• Production
– Virgo (historically the first!)– LHCb– Auger– Nemo
• Experimental– Atlas– Glast– Opera– ...
![Page 17: CMT Christian Arnault - LAL - Chep 2000 1/18 Introduction What is CMT, its goals Operating CMT The concepts in CMT, the internal model Status, implementation](https://reader036.vdocuments.net/reader036/viewer/2022082517/56649ee45503460f94bf2aa3/html5/thumbnails/17.jpg)
Christian Arnault - LAL - Chep 2000 17/18
CMT
Comparisons
Automake
SRT
MSDev
CVS
RPS
Very complex (only for experts) no semantic for
versions, areas
Based on autoconf, shell scripts (interfaced)
Package organisation too limited, need something
above. And ... portability! (interfaced)
Only for source control. (interfaced)
Similar concepts, good for import/export (to be
interfaced??)
![Page 18: CMT Christian Arnault - LAL - Chep 2000 1/18 Introduction What is CMT, its goals Operating CMT The concepts in CMT, the internal model Status, implementation](https://reader036.vdocuments.net/reader036/viewer/2022082517/56649ee45503460f94bf2aa3/html5/thumbnails/18.jpg)
18
CMT
Christian Arnault - LAL - Chep 2000
Discussion...