Скачать презентацию CMT Introduction What is CMT Скачать презентацию CMT Introduction What is CMT

c94f426855795827cadaccccb5e414d1.ppt

  • Количество слайдов: 18

CMT • • • Introduction What is CMT, its goals Operating CMT The concepts CMT • • • Introduction What is CMT, its goals Operating CMT The concepts in CMT, the internal model Status, implementation Comparisons, references Configuration Management Tool Christian Arnault - LAL - Chep 2000 1/18

CMT What is CMT • A set of tools and conventions – structures software 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. . . ) Christian Arnault - LAL - Chep 2000 2/18

CMT The goals • Organise software development from a single person up to teams 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) Christian Arnault - LAL - Chep 2000 3/18

CMT Operating CMT. . . ¬Define software areas -> define CMTPATH – private individual 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 area 1: area 2: area 3 HKEY_LOCAL_MACHINE/Software/CMT/path/. . . Christian Arnault - LAL - Chep 2000 4/18

CMT . . . operating CMT. . . Describe and parameterise the configuration of CMT . . . operating CMT. . . Describe and parameterise the configuration of packages -> fill in the requirements text file – relationships with other packages use Expat v 1 – constituents library A *. cxx – meta-information (author, manager, . . . ) – private or public (exported) properties and tool configuration (macros and symbols) macro cppflags “-g”. . . path_append LD_LIBRARY_PATH “” Linux “. . . ” Christian Arnault - LAL - Chep 2000 5/18

. . . operating CMT. . . CMT ®Drive the various productivity tools while . . . operating CMT. . . CMT ®Drive the various productivity tools while monitoring the package state -> run [j]cmt > > > cmt cmt cmt show show path uses constituents macro xxx – CVS, make, MSDev, tar, Web, etc. . . get their configuration from the requirements file (through the cmt generic driver) Christian Arnault - LAL - Chep 2000 6/18

CMT . . . operating CMT ¯A typical (and full) sequence Create a new CMT . . . operating CMT ¯A typical (and full) sequence Create a new package and move to it > cmt config A v 1 myarea > cd myarea/A/v 1/mgr > vi requirements Create the package items and build them > vi A. cxx B. cxx C. cxx. . . > gmake >. . /${CMTCONFIG}/A. exe run Describe the package A use Atlas v 0 r 33 application A A. cxx B. cxx Christian Arnault - LAL - Chep 2000 7/18

CMT The concepts. . . Area Package search path Package The minimal entity Version CMT The concepts. . . Area Package search path Package The minimal entity Version Describes the backward compatibility Use relationships. Induces inheritance-like properties and version constraints Constituents Applications, libraries, documents Configuration parameters Macros, environment variables, include search path, etc. . . Document generators Open architecture for any non-standard configuration action Christian Arnault - LAL - Chep 2000 8/18

CMT The packages • Plain standard packages <some area>/<package>/<version tag>/<mgr> • Stand alone (unstructured) CMT The packages • Plain standard packages /// • 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++, Geant 4, Objectivity • Interface packages – generic configuration parameters to a set of correlated packages Simulation, Reconstruction, Graphics, Atlas Christian Arnault - LAL - Chep 2000 9/18

CMT The version tags • Handle backward compatibility specifications v<major id>r<minor id>p<patch id> • CMT The version tags • Handle backward compatibility specifications vrp • Alternate version strategies available Any letter is possible – 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) Christian Arnault - LAL - Chep 2000 10/18

CMT Use relationships • Set a dependency between two packageversion duets. • Public configuration CMT Use relationships • Set a dependency between two packageversion 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 Christian Arnault - LAL - Chep 2000 11/18

CMT Constituents – applications and libraries • standard behaviour for make or MSDev parameterised CMT Constituents – applications and libraries • standard behaviour for make or MSDev parameterised by conventional macros and fragments (make & MSDev) – cflags cppflags – clinkopts cpplinkopts fflags flinkopts – documents • can be fully tuned and specified for any document filter – fragments and macros overriding can occur in any client package Christian Arnault - LAL - Chep 2000 12/18

Symbols CMT • Used to specify make macros, environment variables, aliases, path-like variables macro Symbols CMT • Used to specify make macros, environment variables, aliases, path-like variables macro a “aaa” alias c “ccc” set b “bbb” path d “ddd” • alternate value can be specified for different sites, platforms, working conditions macro a “aaa” CERN “aax” LAL “aay” macro b “bbb” Linux “bbx” alpha-osf 40 “bby” macro c “ccc” debug “ccx” insure “ccy” • edition macro-append set-append path-append macro-prepend set-prepend path-prepend Christian Arnault - LAL - Chep 2000 macro-remove set-remove path-remove 13/18

CMT Implementation • The main driver – cmt line-mode driver (Unix & Windows) – 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. in 2 p 3. fr/SI/CMT. htm – documentation, distribution kits, mailing list, CVSWEB Christian Arnault - LAL - Chep 2000 14/18

jcmt Packages & versions Free action onto the package editor Package areas browser CMT jcmt Packages & versions Free action onto the package editor Package areas browser CMT Configuration monitor Requirements editor Christian Arnault - LAL - Chep 2000 15/18

CMT Clients • Production – Virgo (historically the first!) – LHCb – Auger – CMT Clients • Production – Virgo (historically the first!) – LHCb – Auger – Nemo • Experimental – Atlas – Glast – Opera –. . . Christian Arnault - LAL - Chep 2000 16/18

Comparisons CMT Automake Very complex (only for experts) no semantic for versions, areas SRT Comparisons CMT Automake Very complex (only for experts) no semantic for versions, areas SRT Based on autoconf, shell scripts (interfaced) MSDev Package organisation too limited, need something above. And. . . portability! (interfaced) CVS Only for source control. (interfaced) RPS Similar concepts, good for import/export (to be interfaced? ? ) Christian Arnault - LAL - Chep 2000 17/18

CMT Discussion. . . Christian Arnault - LAL - Chep 2000 18 CMT Discussion. . . Christian Arnault - LAL - Chep 2000 18