10/2/2000LHCb Computing, CHEP 2000 1 Use of Configuration Management tool in LHCb software J. Harvey, P. Mato, F. Ranjard CERN (Switzerland)

Slides:



Advertisements
Similar presentations
Software change management
Advertisements

Configuration management
05/11/2001 CPT week Natalia Ratnikova, FNAL 1 Software Distribution in CMS Distribution unitFormContent Version of SCRAM managed project.
Introduction to Maven 2.0 An open source build tool for Enterprise Java projects Mahen Goonewardene.
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.
Chapter 25 – Configuration Management 1Chapter 25 Configuration management.
Software Installation The full set of lecture notes of this Geant4 Course is available at
Julie McEnery1 Installing the ScienceTools The release manager automatically compiles each release of the Science Tools, it creates a set of wrapper scripts.
The Atlas Software Distribution Christian ArnaultAlessandro De SalvoSimon GeorgeGrigori Rybkine
Abstract The automated multi-platform software nightly build system is a major component in the ATLAS collaborative software organization, validation and.
Maven & Bamboo CONTINUOUS INTEGRATION. QA in a large organization In a large organization that manages over 100 applications and over 20 developers, implementing.
Introduction to Hall-D Software February 27, 2009 David Lawrence - JLab.
Configuration Management (CM)
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.
1 GAUDI - The Software Architecture and Framework for building LHCb data processing applications Marco Cattaneo, CERN February 2000.
Overview of LHCb applications and software environment LHCb software tutorial - March
Distribution After Release Tool Natalia Ratnikova.
The LCG SPI project in LCG Phase II CHEP’06, Mumbai, India Feb. 14, 2006 Andreas Pfeiffer -- for the SPI team
Contents 1.Introduction, architecture 2.Live demonstration 3.Extensibility.
As of 28 Juni 2005Getting Starged with GEM - Shuei Yamada 1 Getting Started with GEM Shuei YAMADA ICEPP, University of Tokyo What is GEM? Before you start.
CMT Christian Arnault - LAL - Chep /18 Introduction What is CMT, its goals Operating CMT The concepts in CMT, the internal model Status, implementation.
ATLAS and GridPP GridPP Collaboration Meeting, Edinburgh, 5 th November 2001 RWL Jones, Lancaster University.
The report on the current situation of the BESIII framework zhangxiaomei maqiumei 10/3/2004.
MINER A Software The Goals Software being developed have to be portable maintainable over the expected lifetime of the experiment extensible accessible.
CMT Christian Arnault – CMT tutorial – dec CMT Tutorial How to use CMT in Atlas Christian Arnault
Marco Cattaneo, 19-June Building and running software on WNT with Visual Studio and CMT A step by step recipe.
Use of Gaudi in Reconstruction Weidong Li 23/06/2004.
Organization and Management of ATLAS Nightly Builds F. Luehring a, E. Obreshkov b, D.Quarrie c, G. Rybkine d, A. Undrus e University of Indiana, USA a,
CMT 1 Jan. 1999C. Arnault LAL History, motivations Started in 1993 for providing support for horizontal software development at LAL After an evaluation.
LCG Generator Meeting, December 11 th 2003 Introduction to the LCG Generator Monthly Meeting.
SEAL Core Libraries and Services CLHEP Workshop 28 January 2003 P. Mato / CERN Shared Environment for Applications at LHC.
GDB Meeting - 10 June 2003 ATLAS Offline Software David R. Quarrie Lawrence Berkeley National Laboratory
LHCb-ATLAS GANGA Workshop, 21 April 2004, CERN 1 DIRAC Software distribution A.Tsaregorodtsev, CPPM, Marseille LHCb-ATLAS GANGA Workshop, 21 April 2004.
Franco Carbognani, EGO LSC-Virgo Meeting May 2007 Status and Plans LIGO-G Z Software Management.
GLAST LAT Offline SoftwareCore review, Jan. 17, 2001 Review of the “Core” software: Introduction Environment: THB, Thomas, Ian, Heather Geometry: Joanne.
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.
G.Govi CERN/IT-DB 1 September 26, 2003 POOL Integration, Testing and Release Procedure Integration  Packages structure  External dependencies  Configuration.
1 SICBDST and Brunel Migration status and plans. 2 Migration Step 1: SICBMC/SICBDST split  Last LHCb week: Split done but not tested  Software week.
Computing R&D and Milestones LHCb Plenary June 18th, 1998 These slides are on WWW at:
23/2/2000Status of GAUDI 1 P. Mato / CERN Computing meeting, LHCb Week 23 February 2000.
Yannick Patois - Datagrid Software Repository Presentation - March, n° 1 Datagrid Software Repository Presentation CVS, packages and automatic.
GLAST LAT Project Science Tools - 12 June 2002 T. Burnett 1 The Science Analysis Software Development Environment -- for tools too! T. Burnett.
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.
Alexey Badalov Contents Gaudi — LHCb’s software framework GPU Manager CUDA development with Gaudi Testing
CERN Tutorial, September Overview of LHCb applications and software environment.
20 October 2005 LCG Generator Services monthly meeting, CERN Validation of GENSER & News on GENSER Alexander Toropin LCG Generator Services monthly meeting.
Bologna Tutorial, June Overview of LHCb applications and software environment.
Pere Mato (CERN) First INFN International School on Architectures, tools and methodologies for developing efficient large scale scientific computing applications.
Comments on SPI. General remarks Essentially all goals set out in the RTAG report have been achieved. However, the roles defined (Section 9) have not.
CLHEP Infrastructure Improvements CHEP 2004 Lynn Garren, FNAL and Andreas Pfeiffer, CERN.
Use of CMT in LHCb CMT Workshop, LAL (Orsay) 28 th February - 1 st March 2002 P. Mato / CERN.
Chapter 25 – Configuration Management 1Chapter 25 Configuration management.
LHCb Software Week 25/11/99 Gonzalo Gracia Abril 1 r Status of Geant4 in LHCb. r Ideas on how to populate the LHCb Detector Description Data Base (LHCb.
Installation of the ALICE Software
Configuration and Build System
Automatic RElease Service
Gaudi software release procedures
Overview of LHCb applications and software environment
Marco Cattaneo, CERN February 2000
SW Architecture SG meeting 22 July 1999 P. Mato, CERN
Software Installation
SICB under CMT Why? What is CMT? How to work with CMT? Package layout
What’s new in version 5 of GAUDI
Simulation and Physics
2 Getting Started.
2 Getting Started.
What’s new in version 4 of GAUDI
Presentation transcript:

10/2/2000LHCb Computing, CHEP Use of Configuration Management tool in LHCb software J. Harvey, P. Mato, F. Ranjard CERN (Switzerland)

10/2/2000LHCb Computing, CHEP Outline u Configuration Management Requirements u Physical Design u How we use CMT u Roles and Procedures u Experience with CMT u Conclusions

10/2/2000LHCb Computing, CHEP Configuration Management u Code repository –Storage and identification of versions of the code u Release mechanism –Make available a coherent set of libraries and programs u Librarian –Essential role u Tools to automate the work and check correctness u Set of guidelines defining roles and procedures u Activity spanning the complete software life cycle u Basic entity is the software package

10/2/2000LHCb Computing, CHEP LHCb Software u Many software developers (~500 physicists) u Distributed around the world ( ~50 institutes, 15 countries) u Many different software components to manage –Legacy Fortran code: 35 packages - still developed and in use to produce MonteCarlo data for detector studies. –New C++ framework (GAUDI) code : 10 packages. –New C++ reconstruction code: many sub-detector packages. –External libraries not maintained by us: CERNLIB, CLHEP, NAGC… u Supported platforms –Lunix, NT and HP

10/2/2000LHCb Computing, CHEP Requirements for Tools u Have control on the configuration and dependencies of packages. u Allow the release of a new version of a package without disturbing the main development line. u Relieve developers from the burden of writing makefiles (or MSdev projects) taking account of various platforms and environments. u Help librarians with installation of new packages or/and specific version of programs on different platforms. u Allow customization of the configuration of a package. u Allow to query the configuration used to build an application. u Must be easy to use by casual users, developers and librarians.

10/2/2000LHCb Computing, CHEP Selected Tools u CVS for managing the code repository –Linux and NT share the same code repository u CMT for managing the software building and release process –Developed by C. Arnault (LAL/IN2P3) –Presented in this conference

10/2/2000LHCb Computing, CHEP Physical design Package group Package dependency Gaudi (foundations) LHCbEvent (event model) HbookCnv (converters) SicbCnv (converters) RootCnv (converters) GaudiExam. (applications) LHCbAlg (algorithms) DetDesc (detect. model) DetCnv (converters) Futio (SICB) optional RIO CernLib CLHEP STL GAUDI Framework Physical design (packaging) is an architectural issue. Big consequences on: compilation time link dependencies configuration management executable size... Package interdependencies require approval of architect. Avoid cyclic dependencies

10/2/2000LHCb Computing, CHEP Package layout packAv1v1r1v2mgrsrcdocwin32hp-ux 102 i386- linux22 packA $PACKAROOT Version number binaries manager directory contains the requirements file public include files #include “packA/xxx.h”... All packages are available in the public release area Users may checkout from repository in their private working area Layout is identical in both areas.

10/2/2000LHCb Computing, CHEP How we use CMT CMT requirements code CVS repository What to build How to build Package dependencies makefile DevStudio files Building tools (compilers, linkers, IDEs ) Libraries & Executables

10/2/2000LHCb Computing, CHEP packA/v1/mgr/requirements package packA version v1 branches doc src mgr packA include_dirs $(PACKAROOT) use packB v1 use packR v2r1 use CERNLIB v2000 use CLHEP v1r4 library packA../src/*.cpp macro packA_linkopts “$(PACKAROOT)/$(packA_tag)/libpackA.a”\ VisualC “$(PACKAROOT)/Win32/packA.lib” macro packA_stamps “$(PACKAROOT)/$(packA_tag)/packA.stamp” package packA version v1 branches doc src mgr packA include_dirs $(PACKAROOT) use packB v1 use packR v2r1 use CERNLIB v2000 use CLHEP v1r4 library packA../src/*.cpp macro packA_linkopts “$(PACKAROOT)/$(packA_tag)/libpackA.a”\ VisualC “$(PACKAROOT)/Win32/packA.lib” macro packA_stamps “$(PACKAROOT)/$(packA_tag)/packA.stamp”

10/2/2000LHCb Computing, CHEP Package categories u A program: is a package that contains a main routine and a list of dependent packages needed to link it. –The requirements file contains the name and version of all the packages used by the application. u A library: contains a list of routines (classes) and the list of dependent packages needed to compile it. –The requirement file indicates how the result library is linked in programs. u A package group: contains a list of other packages with their version number valid for a specific version of the framework. –To install the current version of the framework in a new environment it is sufficient to install the framework package and all dependent packages. u An external package: CERNLIB, CLHEP, ROOT,... are maintained by external groups.

10/2/2000LHCb Computing, CHEP Package categories(2) –Their requirements file contains references to their include files and binary locations. –The use of the CMTSITE environment variable allows the various locations to be defined in a single place package CLHEP version v1r4 set LHCXX_DIR ""\ CERN NIKHEF "/project/lhcxx/specific/lnx” include_dirs “${LHCXX_DIR}/1.4/include” macro CLHEP_linkopts “${LHCXX_DIR}/11.4/lib/libclhep.a” package CLHEP version v1r4 set LHCXX_DIR ""\ CERN NIKHEF "/project/lhcxx/specific/lnx” include_dirs “${LHCXX_DIR}/1.4/include” macro CLHEP_linkopts “${LHCXX_DIR}/11.4/lib/libclhep.a”

10/2/2000LHCb Computing, CHEP Roles and Procedures u The casual user: develops an algorithm in his working area and builds an application by linking it with other selected packages from the public release area. > cd mywork > cmt checkout LHCbprog > cd LHCbprog/v1/src add user code > cd../mgr modify the requirements file if necessary > gmake the executable is stored in../$(LHCbprog_tag)

10/2/2000LHCb Computing, CHEP Roles and procedures(2) u The package developer: develops and maintains code for general public use. He is expected to supply code, test routines and documentation. set the CMTPATH to use the private version of the package: > cd mywork > setenv CMTPATH $PWD check out the package he is working on: > cmt checkout packA > cd packA/v2/src modify code > gmake check out the program package: > cmt checkout LHCbprog v1 > cd LHCbprog/v1/mgr > gmake

10/2/2000LHCb Computing, CHEP Roles and Procedures(3) u The librarian: installs new versions of packages, programs, package groups in the public release area using the CMT recursive mode to checkout all packages dependent on the package being checked out and the broadcast facility to build the corresponding libraries: remove the CMTPATH definition to not use private code: > unsetenv CMTPATH go to the release area and checkout the program package > cd $LHCBSOFT > cmt checkout -R LHCbprog > cmt broadcast cmt config > cd LHCbprog/v2/mgr > cmt broadcast gmake

10/2/2000LHCb Computing, CHEP Our experience with CMT u –Easy to use (physicist, developer, librarian) –Very helpful (no need to write makefiles or MSdev projects) –Full monitor of versions and options used during build. –Build options are inherited from the package hierarchy (single place). –Partial release. –Runs on UNIX and NT (essential for us). u  –Scalability (foreseen problems when large number of packages) –The “use” statement needs to be qualified (for compilation, linking, running)

10/2/2000LHCb Computing, CHEP Conclusions u We have taken Configuration Management very seriously from the beginning. u It is essential for managing contributions from many developers working on various platforms. u The Fortran simulation program is in production in 5 institutes in very different environments. u Our Configuration Management relies on the CVS & CMT tools u We have been using CMT for about a year and we are very happy with it.