CMT Christian Arnault – CMT tutorial – dec. 2001 1 CMT Tutorial How to use CMT in Atlas Christian Arnault

Slides:



Advertisements
Similar presentations
OpRelease 1.0 J.E Campagne CERN 14/2/02. The different areas Official Area OpRoot OpRec … User Devel. Area OpRoot/TgtScin OpRec/Tracking … use CVS cmt.
Advertisements

Guide To UNIX Using Linux Third Edition
Introduction to Unix (CA263) Introduction to Shell Script Programming By Tariq Ibn Aziz.
Automated Tests in NICOS Nightly Control System Alexander Undrus Brookhaven National Laboratory, Upton, NY Software testing is a difficult, time-consuming.
ATLAS Software Kaushik De University of Texas At Arlington based on a tutorial by P. Calafiura (LBNL) LHC Computing Workshop, Ankara May 2, 2008.
SubVersioN – the new Central Service at DESY by Marian Gawron.
Software Installation The full set of lecture notes of this Geant4 Course is available at
Introduction to The Linaro Toolchain Embedded Processors Training Multicore Software Applications Literature Number: SPRPXXX 1.
1 Introduction to Tool chains. 2 Tool chain for the Sitara Family (but it is true for other ARM based devices as well) A tool chain is a collection of.
Version Control with Subversion. What is Version Control Good For? Maintaining project/file history - so you don’t have to worry about it Managing collaboration.
The Atlas Software Distribution Christian ArnaultAlessandro De SalvoSimon GeorgeGrigori Rybkine
M. Taimoor Khan * Java Server Pages (JSP) is a server-side programming technology that enables the creation of dynamic,
SCRAM Software Configuration, Release And Management Background SCRAM has been developed to enable large, geographically dispersed and autonomous groups.
Smith’s Aerospace © P. Bailey & K. Vander Linden, 2005 Architecture: Component and Deployment Diagrams Patrick Bailey Keith Vander Linden Calvin College.
Introduction to Shell Script Programming
Introduction to Hall-D Software February 27, 2009 David Lawrence - JLab.
Understanding the CORBA Model. What is CORBA?  The Common Object Request Broker Architecture (CORBA) allows distributed applications to interoperate.
Nightly Releases and Testing Alexander Undrus Atlas SW week, May
 To explain the importance of software configuration management (CM)  To describe key CM activities namely CM planning, change management, version management.
The introduction of CMT Version v1r14. General index 1.presentation 2.how to install CMT 3.how to write a requirements file 4.how to use CMT.
CMT 1 HEPVis Sep. 1999C. Arnault LAL History, motivations Started in 1993 for providing support for horizontal software development at LAL After an evaluation.
Overview of LHCb applications and software environment LHCb software tutorial - March
Tutorial build Main ideas –Reuse as much previously obtained configuration information as possible: from Babel, cca-spec-babel, etc. –Extract all irrelevant.
Distribution After Release Tool Natalia Ratnikova.
July 2011CMSC 341 CVS/Ant 1 CMSC 341 Java Packages Ant CVS Project Submission.
CMT Christian Arnault - LAL - Chep /18 Introduction What is CMT, its goals Operating CMT The concepts in CMT, the internal model Status, implementation.
The report on the current situation of the BESIII framework zhangxiaomei maqiumei 10/3/2004.
CVS – concurrent versions system Network Management Workshop intERlab at AIT Thailand March 11-15, 2008.
XML in Atlas: from generic to parametric detector description Stan Bentvelsen NIKHEF Amsterdam XML workshop, CERN, May 22.
Use of Gaudi in Reconstruction Weidong Li 23/06/2004.
CMT 1 Jan. 1999C. Arnault LAL History, motivations Started in 1993 for providing support for horizontal software development at LAL After an evaluation.
Prepared by: Steve Teo Contributors: Tong Huu Khiem.
David Adams ATLAS DIAL/ADA JDL and catalogs David Adams BNL December 4, 2003 ATLAS software workshop Production session CERN.
SKYPIAX, how to add Skype capabilities to FreeSWITCH (and Asterisk) CHICAGO, USA, September 2009.
Marco Cattaneo - DTF - 28th February 2001 File sharing requirements of the physics community  Background  General requirements  Visitors  Laptops 
EGEE is a project funded by the European Union under contract IST “Interfacing to the gLite Prototype” Andrew Maier / CERN LCG-SC2, 13 August.
1 MSTE Visual SourceSafe For more information, see:
J.P. Wellisch, CERN/EP/SFT SCRAM Information on SCRAM J.P. Wellisch, C. Williams, S. Ashby.
CERN IT Department t LHCb Software Distribution Roberto Santinelli CERN IT/GS.
12 CVS Mauro Jaskelioff (originally by Gail Hopkins)
Weidong Li January 7, 2004 BES III Software Meeting Status Report: BESF software development environment Weidong Li.
System/SDWG Update Management Council Face-to-Face Flagstaff, AZ August 22-23, 2011 Sean Hardman.
G.Govi CERN/IT-DB 1 September 26, 2003 POOL Integration, Testing and Release Procedure Integration  Packages structure  External dependencies  Configuration.
A. Aimar - EP/SFT LCG - Software Process & Infrastructure1 SPI Software Process & Infrastructure for LCG Project Overview LCG Application Area Internal.
10/2/2000LHCb Computing, CHEP Use of Configuration Management tool in LHCb software J. Harvey, P. Mato, F. Ranjard CERN (Switzerland)
Introduction to Active Directory
SPI NIGHTLIES Alex Hodgkins. SPI nightlies  Build and test various software projects each night  Provide a nightlies summary page that displays all.
Andrew McNab - Globus Distribution for Testbed 1 Globus Distribution for Testbed 1 Andrew McNab, University of Manchester
Chapter – 8 Software Tools.
BESIII Offline Software Development Environment Ma qiumei * Development environment * Configuration & management tool * Software development.
INFSO-RI Enabling Grids for E-sciencE Using of GANGA interface for Athena applications A. Zalite / PNPI.
CERN Tutorial, September Overview of LHCb applications and software environment.
Bologna Tutorial, June Overview of LHCb applications and software environment.
Visual Programming Borland Delphi. Developing Applications Borland Delphi is an object-oriented, visual programming environment to develop 32-bit applications.
Installation. All Rights Reserved © Alcatel-Lucent | Installation Module Objectives  Installation  Startup and process monitoring  Uninstallation.
Use of CMT in LHCb CMT Workshop, LAL (Orsay) 28 th February - 1 st March 2002 P. Mato / CERN.
Integrating ArcSight with Enterprise Ticketing Systems
Integrating ArcSight with Enterprise Ticketing Systems
SUSE Linux Enterprise Desktop Administration
CMS DCS: WinCC OA Installation Strategy
Configuration and Build System
SPI external software build tool and distribution mechanism
CMT Define the development work models
Gaudi software release procedures
The ATLAS software in the Grid Alessandro De Salvo <Alessandro
Software Installation
SICB under CMT Why? What is CMT? How to work with CMT? Package layout
Course: Module: Lesson # & Name Instructional Material 1 of 32 Lesson Delivery Mode: Lesson Duration: Document Name: 1. Professional Diploma in ERP Systems.
Software Installation, release 4.0
AtlasSetup & Evolution
Presentation transcript:

CMT Christian Arnault – CMT tutorial – dec CMT Tutorial How to use CMT in Atlas Christian Arnault

CMT Christian Arnault – CMT tutorial – dec Introduction Presentation of the tutorial –It is composed of three short lectures (~ 20’ each) The Atlas work model and conventions Working on Atlas packages Advanced features –It includes materials for documented examples (rather than exercises) with screen dumps Goal, scope –It is really aimed at Atlas context rather than being a general purpose CMT tutorial –The expected audience ranges from the normal software operator up to the more expert developer Announce –CMT workshop at LAL Feb-28/March

CMT Christian Arnault – CMT tutorial – dec Plan Lecture #1 :The Atlas work model and conventions –Introduction –Work model, conventions –How to setup CMT –The CMT user interface –The CMT architecture Lecture #2 : Working on Atlas packages –Working with a package –Creating a new package –Running an application –Examples in Atlas Lecture #3 : Advanced features –Policy and patterns in Atlas –Package types and areas –Details on configuration parameters

CMT Christian Arnault – CMT tutorial – dec Lecture #1 The Atlas work model and conventions

CMT Christian Arnault – CMT tutorial – dec Work model, conventions (1) The roles –So far, we only consider “developers” and “package coordinators” Developers work (edit, commit, tag, test, register) on individual packages Package coordinators accumulate package tags and validate The scenarios –Working on a package in a private development area –Connecting to the official release We are talking about the current practices in Atlas rather than the standard or the final definitions (since this is not yet fully defined / understood / adopted). A working group is currently being setup to define : the roles (developer, coordinators, librarian, etc…) the scenarios (developing, tagging, testing, integrating, installing, deploying, …)

CMT Christian Arnault – CMT tutorial – dec Work model, conventions (2) The software organization –The software base is a hierarchy of packages: LArCalorimeter LArCalorimeter/LArBookkeeping LArCalorimeter/LArCellRec LArCalorimeter/LArClusterRec LArCalorimeter/LArCnv LArCalorimeter/LArCnv/LArAthenaRoot LArCalorimeter/LArCnv/LArHitZebraCnv LArCalorimeter/LArConditions LArCalorimeter/LArDetDescr LArCalorimeter/LArDetDescrObjyDDL LArCalorimeter/LArDigitization LArCalorimeter/LArEvent LArCalorimeter/LArEventObjyDDL LArCalorimeter/LArExample LArCalorimeter/LArExample/LArBookkeepingExample LArCalorimeter/LArExample/LArConditionsExample LArCalorimeter/LArExample/SimpleCellBuilder LArCalorimeter/LArExample/TestLArDigit LArCalorimeter/LArExample/TestLArHardwareID containers

CMT Christian Arnault – CMT tutorial – dec Work model, conventions (3) The software organisation –Packages may have particular semantics Normal packages provide software or documents Container packages manage other packages Policy packages hold Atlas specific conventions, policies, patterns Interfaces convert conventions and policies of external packages –We must differentiate The physical hierarchy (the directory structure) The logical hierarchy (relationships between packages) –Those two hierarchies are totally independent with each other –A release is the unique and exhaustive set of all [package-version] duets validated as consistently built and cooperating. (see next screen) It is materialized by one container package AtlasRelease

CMT Christian Arnault – CMT tutorial – dec use InDetSpacePoint InDetSpacePoint InnerDetector/InDetRec use SiClusterization SiClusterization InnerDetector/InDetRec use SiTrackerCluster SiTrackerCluster InnerDetector/InDetRec use SiTrackerSpacePoint SiTrackerSpacePoint InnerDetector/InDetRec use TRT_Rec TRT_Rec InnerDetector/TRT use LArBookkeeping LArBookkeeping LArCalorimeter use LArCellRec LArCellRec LArCalorimeter use LArClusterRec LArClusterRec LArCalorimeter use LArAthenaRoot LArAthenaRoot LArCalorimeter/LArCnv use LArHitZebraCnv LArHitZebraCnv LArCalorimeter/LArCnv use LArConditions LArConditions LArCalorimeter use LArDetDescr LArDetDescr LArCalorimeter use LArDetDescrObjyDDL LArDetDescrObjyDDL LArCalorimeter use LArDigitization LArDigitization LArCalorimeter use LArEvent LArEvent LArCalorimeter use LArEventObjyDDL LArEventObjyDDL LArCalorimeter use LArBookkeepingExample LArBookkeepingExample LArCalorimeter/LArExample use LArConditionsExample LArConditionsExample LArCalorimeter/LArExample use SimpleCellBuilder SimpleCellBuilder LArCalorimeter/LArExample use TestLArDigit TestLArDigit LArCalorimeter/LArExample use TestLArHardwareID TestLArHardwareID LArCalorimeter/LArExample use TestLArHECTBCnv TestLArHECTBCnv LArCalorimeter/LArExample use TestLArTBCnv TestLArTBCnv LArCalorimeter/LArExample use LArGraphics LArGraphics LArCalorimeter use LArROD LArROD LArCalorimeter use LArSim LArSim LArCalorimeter use LArHECTBAna LArHECTBAna LArCalorimeter/LArTestBeam use LArHECTBCnv LArHECTBCnv LArCalorimeter/LArTestBeam use LArHECTBPed LArHECTBPed LArCalorimeter/LArTestBeam use LArTBCnv LArTBCnv LArCalorimeter/LArTestBeam use MagneticFieldAge MagneticFieldAge MagneticField use MagneticFieldAgeHeader MagneticFieldAgeHeader MagneticField use MagneticFieldAthena MagneticFieldAthena MagneticField use MagneticFieldAthenaHeader MagneticFieldAthenaHeader MagneticField use MagneticFieldCore MagneticFieldCore MagneticField use MagneticFieldCoreHeader MagneticFieldCoreHeader MagneticField use MagneticFieldStand MagneticFieldStand MagneticField

CMT Christian Arnault – CMT tutorial – dec Work model, conventions (4) The software organisation –A release can be frozen or under development The latter will likely become the integration release –Releases are maintained in ATLAS_DIST_AREA/ATLAS_RELEASE Where –ATLAS_DIST_AREA takes one specific value per site where the Atlas software is installed (CERN, LBL, LBNL, laptops, …) –ATLAS_RELEASE is a 3-number tag describing the release level % ls /afs/cern.ch/atlas/software/dist/

CMT Christian Arnault – CMT tutorial – dec Work model, conventions (5) The internal work model of CMT –Each package is identified by a triplet [package - version - location] –Packages are located and searched for in package areas –The search list for all possible areas is specified in one path-like environment variable named CMTPATH software/dist/2.4.0 % cmt show path # Add path /afs/cern.ch/atlas/offline/external/Gaudi/0.8.3 from ${CMTPATH} # Add path /afs/cern.ch/atlas/software/dist/2.4.0 from ${CMTPATH} # Add path /afs/cern.ch/sw/contrib from default path # /afs/cern.ch/atlas/offline/external/Gaudi/0.8.3:/afs/cern.ch/atlas/software/dis t/2.4.0:/afs/cern.ch/sw/contrib software/dist/2.4.0 % echo $CMTPATH /afs/cern.ch/atlas/offline/external/Gaudi/0.8.3:/afs/cern.ch/atlas/software/dis t/2.4.0 Gaudi area Release area

CMT Christian Arnault – CMT tutorial – dec Work model, conventions (6) The internal work model of CMT –Version specification accepts a semantics based on a 3-level identifier scheme: [ [ ]] Major-id describes major evolutions (that imply code change to client packages) Minor-id describes minor evolutions (backward compatible change to the interface, only imply re-compilation) Patch-id describes simple patches (i.e. no change to any interface) LArDetDescrObjyDDL LArDigitization LArEvent LArEventObjyDDL LArBookkeepingExample LArConditionsExample SimpleCellBuilder TestLArDigit v1 v10 v10r1 v13r10 v1r0 v1r24p0 v1r6p2 v2 v2001 v2r0p2

CMT Christian Arnault – CMT tutorial – dec Work model, conventions (7) The internal work model of CMT –The resulting directory structure of a package reflects this organization: LArCalorimeter/LArCellRec/ LArCalorimeter/LArCellRec/LArCellRec LArCalorimeter/LArCellRec/LArCellRec /LArCellRec LArCalorimeter/LArCellRec/LArCellRec /ChangeLog LArCalorimeter/LArCellRec/LArCellRec /PACKAGE LArCalorimeter/LArCellRec/LArCellRec /configure LArCalorimeter/LArCellRec/LArCellRec /src LArCalorimeter/LArCellRec/LArCellRec /cmt LArCalorimeter/LArCellRec/LArCellRec /cmt/Makefile LArCalorimeter/LArCellRec/LArCellRec /cmt/requirements LArCalorimeter/LArCellRec/LArCellRec /share LArCalorimeter/LArCellRec/LArCellRec /Linux-gcc-dbg LArCalorimeter/LArCellRec/LArCellRec /Linux-gcc-opt Location Package Version Branches Header files Sources CMT Binary files

CMT Christian Arnault – CMT tutorial – dec Work model, conventions (8) The internal work model of CMT –Each package holds its own entire configuration specification into one single text file named requirements This file must reside in the cmt sub-directory –By default everything belonging to the package (source files, or generated files) will stay within the context of the package Customizations are possible (eg to install generated files elsewhere) –There is one single relationship established between packages, qualified by the use concept. (see next screens) –CMT relies on this structure to address used packages, resolving complete address from The name The required version expression The possible access paths from CMTPATH

CMT Christian Arnault – CMT tutorial – dec LArCellRec/LArCellRec /cmt % cat requirements package LArCellRec author RD Schaffer author Srini Rajagopalan use AtlasPolicy AtlasPolicy-* use CxxFeatures CxxFeatures-00-* Utilities use GaudiInterface GaudiInterface-01-* External use StoreGate StoreGate-02-* Control use Identifier Identifier-00-* DetectorDescription use AtlasDetDescr AtlasDetDescr-00-* DetectorDescription use EventAthena EventAthena-00-* Event use EventStructure EventStructure-00-* Event use ZebraTDREvent ZebraTDREvent-00-* Event use EventRawData EventRawData-00-* Event use LArDetDescr LArDetDescr-00-* LArCalorimeter use LArEvent LArEvent-00-* LArCalorimeter use LArROD LArROD-01-* LArCalorimeter use LArSim LArSim-00-* LArCalorimeter use CaloRec CaloRec-01-* Calorimeter

CMT Christian Arnault – CMT tutorial – dec (Excerpt from the graphical representation of the use hierarchy by CMT)

CMT Christian Arnault – CMT tutorial – dec How to setup CMT (1) The bootstrap operation: how to connect for the very first time with CMT –Call the setup script of CMT itself. –This selects one version of CMT –This only needs to be done once until the next change of CMT version For switching to another version of CMT, see later … user/c/carnault % source /afs/cern.ch/sw/contrib/CMT/v1r10p /mgr/setup.sh user/c/carnault % cmt version V1r10p user/c/carnault % echo $CMTROOT /afs/cern.ch/sw/contrib/CMT/v1r10p

CMT Christian Arnault – CMT tutorial – dec How to setup CMT (2) Setting up an Atlas environment 1.Install a HOME requirements file eg. in ${HOME}/cmtdir 2.Install in this file: a.The site identification ( CMTSITE ) b.The location to the distribution area ( ATLAS_DIST_AREA ) c.The selected release level ( ATLAS_RELEASE ) d.The connection to the standard AtlasSettings definitions 3.… user/c/carnault % mkdir cmtdir user/c/carnault % cd cmtdir user/c/carnault/cmtdir % vi requirements set CMTSITE CERN macro ATLAS_DIST_AREA "/afs/cern.ch/atlas/software/dist“ #macro ATLAS_RELEASE "2.3.1" macro ATLAS_RELEASE "2.4.0" use AtlasSettings v* $(ATLAS_DIST_AREA) 1 2-a 2-b 2-c 2-d

CMT Christian Arnault – CMT tutorial – dec How to setup CMT (3) Setting up Atlas environment in various sites –Change or select CMTSITE –Provide the possible values for ATLAS_DIST_AREA (some sites are already defined) –A proper SITEROOT env. variable is expected for other sites. This will provide logical root entry point towards various software user/c/carnault/cmtdir % vi requirements set CMTSITE CERN #set CMTSITE BNL #set CMTSITE LBNL #set CMTSITE EXTSITE macro ATLAS_DIST_AREA "/afs/cern.ch/atlas/software/dist" \ CERN "/afs/cern.ch/atlas/software/dist" \ BNL "/afs/rhic/usatlas/software/dist" \ LBNL "/auto/atlas/local/software/dist" \ EXTSITE "${SITEROOT}/software/dist“ ${SITEROOT}/cern => Cernlib ${SITEROOT}/external => Atlas external software ${SITEROOT}/ROOT => ROOT ${SITEROOT}/sw => CERN Anaphe etc… ${SITEROOT}/software => Atlas software

CMT Christian Arnault – CMT tutorial – dec How to setup CMT (4) Setting up an Atlas environment … 3. Configure for CMT by cmt config (this creates the setup and cleanup scripts) 4. Apply the setup script (only this last step has to be redone at each session startup). c/carnault/cmtdir % cmt config Configuring environment for standalone package. CMT version v1r10p System is Linux-gcc-dbg Creating setup scripts. Creating cleanup scripts. user/c/carnault/cmtdir % source setup.sh 3 4

CMT Christian Arnault – CMT tutorial – dec How to setup CMT (5) Setting up an Atlas environment … 5. Declare a private development area into the HOME requirements file 6. Create if needed the development area 7. Apply this definition to upgrade CMTPATH c/carnault/cmtdir % vi requirements... path_remove CMTPATH ${HOME} path_prepend CMTPATH ${HOME}/devarea user/c/carnault/cmtdir % mkdir –p../devarea user/c/carnault/cmtdir % source setup.sh user/c/carnault/cmtdir % cd../devarea 5 6 7

CMT Christian Arnault – CMT tutorial – dec How to setup CMT (6) Understanding what is the current settings 1. cmt version (the version of CMT) 2. cmt show path (the CMTPATH entries) 3. cmt show tags (the active configuration tags) 4. cmt show packages | grep dist (all reachable package-versions) c/carnault/cmtdir % cmt version v1r10p c/carnault/cmtdir % cmt show path # Add path /afs/cern.ch/atlas/offline/external/Gaudi/0.8.3 from initialization # Add path /afs/cern.ch/atlas/software/dist/2.4.0 from initialization # Add path /afs/cern.ch/sw/contrib from default path # /afs/cern.ch/atlas/offline/external/Gaudi/0.8.3:/afs/cern.ch/atlas/software/dist/2.4.0:/afs/cern.ch/s w/contrib c/carnault/cmtdir % cmt show tags Linux (from uname) package AtlasSettings implies [gcc debug] i386_linux22 (from CMTCONFIG) package CMT implies [Linux] CERN (from CMTSITE) debug (from package CMT) package AtlasSettings excludes [opt optimized] Default (from Default) gcc (from package AtlasSettings) excludes [egcs] Linux-gcc-dbg (from package AtlasSettings) package AtlasSettings implies [debug] Linux-gcc (from CMTCONFIG in package AtlasSettings) 1 2 3

CMT Christian Arnault – CMT tutorial – dec The CMT user interface Principle : one command driver : cmt –All CMT actions are operated via this command line driver –gmake internally makes a wide use of it Basic syntax cmt [ - = ] Main commands cmt config re-configure a package cmt create … create a new package cmt show … monitors configuration parameters cmt broadcast … launch shell command over several packages cmt checkout … interface to CVS’ checkout operation cmt help get the list of possible commands source cleanup.sh undo the source setup

CMT Christian Arnault – CMT tutorial – dec The CMT user interface Parameter monitoring cmt show … path package search paths uses the use tree macros all macro definitions sets all set and path definitions tags currently active tags macro complete definition for a macro set complete definition for a set constituents all constituents for this package fragments all available make fragments clients all direct clients of this package packages all reachable packages

CMT Christian Arnault – CMT tutorial – dec The CMT architecture The database –The requirements file It is the unique source of configuration parameters for all packages CMT automatically connects requirements files of all used packages (belonging to the current use tree) The use relationship –The unique relationship between packages managed by CMT –Parameterized by the version –Similar to inheritance (includes private or public qualification) The configuration parameters –Inherited parameters Use relationships : relate packages to each other Symbols : define make macros, environment variables, aliases Tags : define value selectors for symbols Patterns : factor out recurrent configuration schemes Make fragments : extend the CMT behaviour –Local definitions (never inherited) Constituents : for libraries, applications, document generators

CMT Christian Arnault – CMT tutorial – dec End of lecture #1