Use of CMT in LHCb CMT Workshop, LAL (Orsay) 28 th February - 1 st March 2002 P. Mato / CERN.

Slides:



Advertisements
Similar presentations
05/11/2001 CPT week Natalia Ratnikova, FNAL 1 Software Distribution in CMS Distribution unitFormContent Version of SCRAM managed project.
Advertisements

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.
Concepts of Version Control A Technology-Independent View.
Software Installation, release 4.0 Geant4 Users’ Workshop Tutorial SLAC February 18-22, 2002 Takashi Sasaki, Gabriele Cosmo,
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.
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.
SPI Software Process & Infrastructure GRIDPP Collaboration Meeting - 3 June 2004 Jakub MOSCICKI
SEAL V1 Status 12 February 2003 P. Mato / CERN Shared Environment for Applications at LHC.
The Atlas Software Distribution Christian ArnaultAlessandro De SalvoSimon GeorgeGrigori Rybkine
SCRAM Software Configuration, Release And Management Background SCRAM has been developed to enable large, geographically dispersed and autonomous groups.
Framework for Automated Builds Natalia Ratnikova CHEP’03.
SPI Software Process & Infrastructure EGEE France - 11 June 2004 Yannick Patois
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.
NICOS System of Nightly Builds for Distributed Development Alexander Undrus CHEP’03.
INFSO-RI Enabling Grids for E-sciencE The gLite Software Development Process Alberto Di Meglio CERN.
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
CMSBrownBag,05/29/2007 B.Mangano How to “use” CMSSW on own Linux Box and be happy In this context “use” means: - check-out pre-compiled CMSSW code - run.
Chris Onions Getting started with CVS in ATLAS 11 Getting started with CVS in ATLAS Chris Onions (Tutorial based on that of Raúl Ramos Pollán CERN / IT.
The LCG SPI project in LCG Phase II CHEP’06, Mumbai, India Feb. 14, 2006 Andreas Pfeiffer -- for the SPI team
March 2, 2005Wah-kai Ngai1 Installation of Geant4 1st HK Simulation Meeting.
CMT Christian Arnault - LAL - Chep /18 Introduction What is CMT, its goals Operating CMT The concepts in CMT, the internal model Status, implementation.
Progress with migration to SVN Part3: How to work with g4svn and geant4tags tools. Geant4.
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.
CMT 1 Jan. 1999C. Arnault LAL History, motivations Started in 1993 for providing support for horizontal software development at LAL After an evaluation.
SEAL Core Libraries and Services CLHEP Workshop 28 January 2003 P. Mato / CERN Shared Environment for Applications at LHC.
LHCb-ATLAS GANGA Workshop, 21 April 2004, CERN 1 DIRAC Software distribution A.Tsaregorodtsev, CPPM, Marseille LHCb-ATLAS GANGA Workshop, 21 April 2004.
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.
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.
Software Engineering Overview DTI International Technology Service-Global Watch Mission “Mission to CERN in Distributed IT Applications” June 2004.
G.Govi CERN/IT-DB 1 September 26, 2003 POOL Integration, Testing and Release Procedure Integration  Packages structure  External dependencies  Configuration.
23/2/2000Status of GAUDI 1 P. Mato / CERN Computing meeting, LHCb Week 23 February 2000.
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)
SPI NIGHTLIES Alex Hodgkins. SPI nightlies  Build and test various software projects each night  Provide a nightlies summary page that displays all.
Geant4 is a toolkit to simulate the passage of particles through matter, and is widely used in HEP, in medical physics and for space applications. Ongoing.
Marco Cattaneo Core software programme of work Short term tasks (before April 2012) 1.
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.
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.
JRA1 Meeting – 09/02/ Software Configuration Management and Integration EGEE is proposed as a project funded by the European Union under contract.
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.
1 DIRAC Project Status A.Tsaregorodtsev, CPPM-IN2P3-CNRS, Marseille 10 March, DIRAC Developer meeting.
SPI Report for the LHCC Comprehensive Review Stefan Roiser for the SPI project.
Chapter 25 – Configuration Management 1Chapter 25 Configuration management.
Patrick Gartung LArSoft Usability Meeting 22 June 2016 Build system explorations: Spack.
Configuration and Build System
ATLAS Software Distribution
CMT Define the development work models
Gaudi software release procedures
Overview of LHCb applications and software environment
User Feedback from SEAL
Software Installation
SICB under CMT Why? What is CMT? How to work with CMT? Package layout
What’s new in version 5 of GAUDI
Discussing an OVS/OVN Split
Software Installation, release 4.0
Presentation transcript:

Use of CMT in LHCb CMT Workshop, LAL (Orsay) 28 th February - 1 st March 2002 P. Mato / CERN

28/02/2002Use of CMT in LHCb2 Contents  History  Package Categories  Release Practices  Useful Tools  Current Problems

28/02/2002Use of CMT in LHCb3 History  We started using CMT in LHCb before CMT was called CMT (Methods)  All the new C++ code (Gaudi) developed using CMT  Also adopted afterwards for the legacy FORTRAN code  Currently order of 100 packages organized hierarchically (“hat/packagename”)  Used on Linux and Windows since the beginning  Used directly by the physicists and librarians

28/02/2002Use of CMT in LHCb4 Packages Categories  Program: is a package that contains a main routine and a list of dependent packages needed to link it.  Library: contains a list of classes and the list of dependent packages needed to compile it.  Policy package: defines macros, compilation & link flags, patterns, fragments, etc.  Package group: contains a list of other packages with their version number (e.g. GaudiSys)  Interface package: interfacing to packages not managed with CMT (e.g. CERNLIB, CLHEP, ROOT,…)

28/02/2002Use of CMT in LHCb5 Policy Package (GaudiPolicy)  Definition of “tags” –Standard configurations  General macros –Compilation and link flags  Patterns –Simple and uniform requirements files  Naming conventions, standardization,…  Fragments –DevStudio, RuleChecker, etc.

28/02/2002Use of CMT in LHCb6 Interface Packages ExternalLibs CLHEP Set of environment variables to define where the external packages are installed XXX_DIR Compilation and link options Environment variables PATH, LD_LIBRARY_PATH Path relative to XXX_DIR CMTSITE Version Platform Compiler

28/02/2002Use of CMT in LHCb7 Interface Package (cont’d) package CLHEP version v17r10 branches doc cmt include_path none use ExternalLibs v3* set LHCXX_BASE "${LHCXX_DIR}" \ Linux "${LHCXX_DIR}/gcc " include_dirs $(CLHEP_DIR)/include set CLHEP_DIR "${LHCXX_BASE}/CLHEP/ " macro CLHEP_linkopts "-L${CLHEP_DIR}/lib -lCLHEP" \ LinuxStatic "${CLHEP_DIR}/lib/libCLHEP.a" \ WIN32 "${CLHEP_DIR}/lib/CLHEP.lib" path_remove LD_LIBRARY_PATH "/CLHEP/" \ WIN32 "\CLHEP\" path_append LD_LIBRARY_PATH "${CLHEP_DIR}/lib"

28/02/2002Use of CMT in LHCb8 Package Group  Useful to “fix” the versions of a number of packages –To be used directly by users  For management purposes –Release tools –“broadcast” command package GaudiSys version v9r0 #---CMT and Gaudi policy use GaudiPolicy v5r* #---Gaudi libraries - generic use GaudiKernel v11r* use GaudiSvc v7r* use GaudiAud v5r* use GaudiAlg v5r* use GaudiTools v5r* use GaudiNagC v6r* use GaudiDb v5r* use GaudiIntrospection v2r* #--- External libraries use CLHEP v17r10 use HTL v13r10 use AIDA v1r0 use ExternalLibs v3r*

28/02/2002Use of CMT in LHCb9 Use Practices  CMTCONFIG –Default configuration “tag” –If “tag” not specified then use CMTCONFIG as tag .cmtrc –The list of “official” release areas  CMTPATH –$HOME/mycmt [eventually DEV areas]  Using both optimized and debug versions > getpack MyPackage v1r1 > cd MyPackage/v1r1/cmt > make [tag=$CMTDEB] > source setup.csh [–tag=$CMTDEB] > …

28/02/2002Use of CMT in LHCb10 Release Practices  Complete LHCb software release 3-4 times a year –Major new functionality –Incompatible changes allowed –Changes in external packages versions & dependencies  Change in the major version number  Partial/Incremental releases when convenient –Bug fixes –New functionality (changes in Algorithms/Services) –Major emphasis on source code/binary compatibility  Change in the minor version number

28/02/2002Use of CMT in LHCb11 Integration and Testing new releases  We do not have a nightly build system  Integration Area (DEV) –Quasi-continuous builds of “head” revision of the packages involved in the integration  Release by Layers –One after the other Private Area Public DEV Area Public RELEASE Area Private Area Private Area Algorithms Event/Detector Framework (Gaudi) Applications

28/02/2002Use of CMT in LHCb12 Extra Tools: DevStudio add-in  Integration of CMT in DevStudio –Regeneration of DevStudio project –Set environment –Show uses –…  Using exclusively the “cmt.exe” interface

28/02/2002Use of CMT in LHCb13 Extra Tools: GetPack usage: getpack [OPTIONS]... package [ [version] ['tag'|'head'] ] getpack [OPTIONS]... -i ['Gaudi' [hat] |'LHCb' [hat] ]  Python script to checkout/update packages in the LHCb CVS repositories –Easy to use (combines CVS and CMT commands) –Platform independent  We do not use “cmt co” command –Unpredictable result –Can not handle several repositories

28/02/2002Use of CMT in LHCb14 Extra Tools  Scripts for the creation of tar files for distributions  Prototype of a script for “Grouping” a number of packages into a single one –Useful for using the package –Improves scalability –Reduces the length of PATHs and commands –Not useful for package development

28/02/2002Use of CMT in LHCb15 Current Problems  Not able to use new CMT version –Our current practices do not work  big impact to the end-users  Need to understand new “private use” feature –Impact on “shareable libraries” and environment variables  Problems with “soft links”. Introduced to reduce the length of PATH and LD_LIBRARY_PATH –Not re-built when something has changed –Not re-built on “source setup” –No not work on Windows!

28/02/2002Use of CMT in LHCb16 Current Problems (cont’d)  Care with handling “wildcards” in version numbers –Gained experience but still making errors time to time  Missing standard Interface packages –Difficult to integrate other software systems following different “conventions”

28/02/2002Use of CMT in LHCb17 Summary  Using CMT since the beginning  Has taken some time to develop the current practices (package categories, use version wildcards, etc.)  Additional tools developed around CMT are necessary  Major concerns in future compatibility