cmt christian arnault - lal - chep 2000 1/18 introduction what is cmt, its goals operating cmt the...

18
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

Upload: anis-cox

Post on 02-Jan-2016

226 views

Category:

Documents


6 download

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

18

CMT

Christian Arnault - LAL - Chep 2000

Discussion...