1 / 18

Introduction

Introduction. What is CMT, its goals Operating CMT The concepts in CMT, the internal model Status, implementation Comparisons, references. C onfiguration M anagement T ool. What is CMT. A set of tools and conventions structures software development or production

sakura
Download Presentation

Introduction

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Introduction • What is CMT, its goals • Operating CMT • The concepts in CMT, the internal model • Status, implementation • Comparisons, references Configuration Management Tool 1/18

  2. 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...) 2/18

  3. 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) 3/18

  4. Operating CMT... • Define software areas ->defineCMTPATH • 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/... 4/18

  5. ...operating CMT... • Describe and parameterise the configuration of packages ->fill in the requirementstext 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 “...” 5/18

  6. ...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 6/18

  7. ...operating CMT • A 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 Create a new package and move to it Create the package items and build them run Describe the package package A use Atlas v0r33 application A A.cxx B.cxx C.cxx 7/18

  8. 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 The concepts... 8/18

  9. 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 packages Simulation, Reconstruction, Graphics, Atlas 9/18

  10. 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 letter is possible 10/18

  11. 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 11/18

  12. 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 12/18

  13. 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” alias c “ccc” set b “bbb” 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-remove set-append set-prepend set-remove path-append path-prepend path-remove 13/18

  14. 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 14/18

  15. jcmt Package areas browser Packages & versions Free action onto the package editor Requirements editor Configuration monitor monitor 15/18

  16. Clients • Production • Virgo (historically the first!) • LHCb • Auger • Nemo • Experimental • Atlas • Glast • Opera • ... 16/18

  17. 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??) Comparisons 17/18

  18. Discussion... 18

More Related