CMT 1 HEPVis Sep. 1999C. Arnault LAL History, motivations Started in 1993 for providing support for horizontal software development at LAL After an evaluation.

Slides:



Advertisements
Similar presentations
Configuration management
Advertisements

Software change management
Configuration management
Introduction to Maven 2.0 An open source build tool for Enterprise Java projects Mahen Goonewardene.
Test Automation: Coded UI Test
Web Applications Development Using Coldbox Platform Eddie Johnston.
Dr Gordon Russell, Napier University Unit Data Dictionary 1 Data Dictionary Unit 5.3.
Low level CASE: Source Code Management. Source Code Management  Also known as Configuration Management  Source Code Managers are tools that: –Archive.
Software Installation, release 4.0 Geant4 Users’ Workshop Tutorial SLAC February 18-22, 2002 Takashi Sasaki, Gabriele Cosmo,
Chapter 7 Managing Data Sources. ASP.NET 2.0, Third Edition2.
Automated Tests in NICOS Nightly Control System Alexander Undrus Brookhaven National Laboratory, Upton, NY Software testing is a difficult, time-consuming.
Configuration Management
Software Configuration Management CSC-532 Chandra Shekar Kandi Chandra Shekar Kandi.
Software Installation The full set of lecture notes of this Geant4 Course is available at
Linux Operations and Administration
This chapter is extracted from Sommerville’s slides. Text book chapter
Software Configuration Management (SCM)
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.
Project Source Code Structure and Build Process ● Remember consistency matters as source code structure, build process, and release processes are all intertwined.
Software Configuration Management
Introducing Dreamweaver MX 2004
Tutorial 1 Getting Started with Adobe Dreamweaver CS3
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 29Slide 1 Configuration management l Managing the products of system change.
 To explain the importance of software configuration management (CM)  To describe key CM activities namely CM planning, change management, version management.
Software Engineering in Robotics Packaging and Deployment of Systems Henrik I. Christensen –
University of Maryland The DPCL Hybrid Project James Waskiewicz.
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.
Overview of LHCb applications and software environment LHCb software tutorial - March
Distribution After Release Tool Natalia Ratnikova.
1 3. Computing System Fundamentals 3.1 Language Translators.
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.
Software Quality Assurance
The report on the current situation of the BESIII framework zhangxiaomei maqiumei 10/3/2004.
CERN - IT Department CH-1211 Genève 23 Switzerland t DB Development Tools Benthic SQL Developer Application Express WLCG Service Reliability.
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.
GLAST CHEP 03 March T.Burnett1/12 User-friendly tools for Managing Software Development Projects User-friendly tools for Managing Software Development.
CMT 1 Jan. 1999C. Arnault LAL History, motivations Started in 1993 for providing support for horizontal software development at LAL After an evaluation.
David Lawrence 7/8/091Intro. to PHP -- David Lawrence.
Franco Carbognani, EGO LSC-Virgo Meeting May 2007 Status and Plans LIGO-G Z Software Management.
J.P. Wellisch, CERN/EP/SFT SCRAM Information on SCRAM J.P. Wellisch, C. Williams, S. Ashby.
 Programming - the process of creating computer programs.
Surya Bahadur Kathayat Outline  Ramses  Installing Ramses  Ramses Perspective (Views and Editors)  Importing/Exporting Example.
G.Govi CERN/IT-DB 1 September 26, 2003 POOL Integration, Testing and Release Procedure Integration  Packages structure  External dependencies  Configuration.
2136 Gallows Road, Suite F, Dunn Loring, VA Phone: Fax: Business Analyst Training 1 Module 5.2 Rational ClearCase.
1 Chapter 12 Configuration management This chapter is extracted from Sommerville’s slides. Text book chapter 29 1.
Yannick Patois - Datagrid Software Repository Presentation - March, n° 1 Datagrid Software Repository Presentation CVS, packages and automatic.
10/2/2000LHCb Computing, CHEP Use of Configuration Management tool in LHCb software J. Harvey, P. Mato, F. Ranjard CERN (Switzerland)
F. Carbognani Software Engineering for the Virgo Project at EGOGeneva-iCALEPCS 14/10/2005 Software Engineering for the Virgo Project at EGO F. Carbognani.
SPI NIGHTLIES Alex Hodgkins. SPI nightlies  Build and test various software projects each night  Provide a nightlies summary page that displays all.
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.
TEAM FOUNDATION VERSION CONTROL AN OVERVIEW AND WALKTHROUGH By: Michael Mallar.
Bologna Tutorial, June Overview of LHCb applications and software environment.
GLAST CHEP 03 March T.Burnett1/14 User-friendly tools for Managing Software Development Projects User-friendly tools for Managing Software Development.
Use of CMT in LHCb CMT Workshop, LAL (Orsay) 28 th February - 1 st March 2002 P. Mato / CERN.
*DT Project Model Leo Treggiari Intel Corp. Dec, 2005.
Build and Test system for FairRoot
Integrating ArcSight with Enterprise Ticketing Systems
Software Configuration Management CSC-532
CMT Define the development work models
Software Installation
SICB under CMT Why? What is CMT? How to work with CMT? Package layout
What’s new in version 5 of GAUDI
Configuration management
Software Installation, release 4.0
Web Application Development Using PHP
Presentation transcript:

CMT 1 HEPVis Sep. 1999C. Arnault LAL History, motivations Started in 1993 for providing support for horizontal software development at LAL After an evaluation of the autoconf world, decision was taken to create a new package –basic requirements were : »emphasis on simplicity to use and to understand by non software experts »should be based on a real conceptual model –study of works »SEI : definitions of Configuration Management (IEEE Std ) »Inspiration from the CMM (freely interpreted) Promote Human Oriented Software

CMT 2 HEPVis Sep. 1999C. Arnault LAL The configuration management definition IEEE Std “Configuration is the process of identifying and defining the items in the system, controlling the change of these items throughout their lifecycle, recording and reporting the status of items and change requests, and verifying the completeness and correctness of items” Identification describes the system structure, the nature of its elements, their identity, and gives access to each item version Control organises versions and changes to system items while keeping coherency and consistency on the complete system.

CMT 3 HEPVis Sep. 1999C. Arnault LAL Principles of the package Based on some scenarios –Projects or sub-projects promote part of their software base as reusable –Projects are divided into small groups of closely related developers –Integration phases are iterative and must remain under the control of the package managers –Configuration parameters should be defined/specified independently to their implementation –Configuration parameters should be queried at any time outside of any effective software operation –Maintain several concurrently visible versions of each package –...

CMT 4 HEPVis Sep. 1999C. Arnault LAL Principles of the package …and on some definitions and conventions –the package »the smallest autonomous entity in the software base »support use relationships to other packages »the physical organisation of packages is independent of their logical structure –the configuration parameters »identify and describe the constituents of a package applications, libraries, … »set up the environment needed to develop the package environment variables, make macros, include paths, … »set up the environment needed to operate the package environment variables, aliases, setup scripts, …

CMT 5 HEPVis Sep. 1999C. Arnault LAL Principles of the package …and on some definitions and conventions –physical organisation / / /src /mgr / >/ / /src /mgr / /...

CMT 6 HEPVis Sep. 1999C. Arnault LAL Principles of the package...conventions –configuration tag »reflects the machine type, the operating system, the context (debug, gnu, etc…) »may be either automatically from system features ( uname, fs sysname, …) or freely defined –Site tag »freely defined tag for site-dependent symbol values

CMT 7 HEPVis Sep. 1999C. Arnault LAL Principles of the package Operations –The configuration parameters are exploited by CMT to configure the various tools used during the software process activities, or to generate some documents: »CVS chain the used packages »[g]make transparent generation of all makefiles »MS Developer Studio generation of workspace and project files »Unix shells generation of environment variables, aliases, paths, etc... »Web pages generation of the software configuration documentation

CMT 8 HEPVis Sep. 1999C. Arnault LAL Conceptual and user requirements –Packages are autonomous entities –Packages are related to each other by use relationships –Package evolution and history is specific to each package –Configuration parameters are any information required to »identify the constituents of the package »set up the environment needed to develop and operate the package »describe the use relationships between packages –Version tag semantics reflects backward compatibility or incompatibility –Configuration parameters are propagated through the chain of use relationships. BC uses A

CMT 9 HEPVis Sep. 1999C. Arnault LAL Design Based on the modelling of the configuration management parameters –one object model (used to build tools) –one syntax (used to make conf. Parameters persistent) use script symbol_value macro alias set symbol tag setup_script cleanup_script library application source_file constituent n n n n n 1 document generator n

CMT 10 HEPVis Sep. 1999C. Arnault LAL Implementation Parameters are stored and maintained within one textual file per package named requirements Use a simple (easy to read) and homogeneous syntax One basic parser application implements the object model from the textual representation ( cmt_parser.exe ) One main user interface ( cmt ) to the parser provides the command oriented (à la CVS) interface used for –querying the configuration parameters –generate the effective environments »for package development »for package usage

CMT 11 HEPVis Sep. 1999C. Arnault LAL Implementation A Java browser and editor The package search list Packages Versions for this package The requirements file The used packages The constituents The symbols defined in this package

CMT 12 HEPVis Sep. 1999C. Arnault LAL Some scenarios Creating a simple test application, using some existing packages. 1> cd... 2>edit requirements use Atlas v1 use Mylib v2 application myapp A.cxx B.cxx C.cxx 3> cmt config # to be done only once in the package’s life 4>edit source files here 5> gmake 6> myapp.exe 7> back to 4

CMT 13 HEPVis Sep. 1999C. Arnault LAL Some scenarios Creating a plain package 1> cmt config A v1 dev-area # to be done only once in the package’s life 2> cd dev-area/A/v1/mgr 3> edit requirements use Atlas v1 use Mylib v2 application myapp A.cxx B.cxx C.cxx 4> edit source files into../src 5> gmake 6>../${CMTCONFIG}/myapp.exe 7> back to 4 (or 3)

CMT 14 HEPVis Sep. 1999C. Arnault LAL...Some scenarios Selecting cooperating projects > setenv CMTPATH projectA:projectB:projectC

CMT 15 HEPVis Sep. 1999C. Arnault LAL...Some scenarios Iterative integration >edit use statements within the requirements use Mylib v2r1 > source setup.csh > gmake > run

CMT 16 HEPVis Sep. 1999C. Arnault LAL...Some scenarios Package evolution > cd dev > cmt checkout A > cd A/v1/mgr > source setup.csh > gmake > change source files > test > cvs commit > cd../ > cvs tag v1r1 > cvs release -d v1

CMT 17 HEPVis Sep. 1999C. Arnault LAL...Some scenarios Building domain packages –This is an interface package only containing a set of use statements towards a selection of versions for the packages belonging to a given conceptual domain »simulation »reconstruction »visualisation –A user of the simulation domain will simply use one given version of the simulation interface package, which automatically provides by transitivity (or inheritance) the appropriate selection of versions of all the simulation- related packages. –All configuration parameters defined in these packages are therefore inherited through this domain package.

CMT 18 HEPVis Sep. 1999C. Arnault LAL Domain packages The global “project” package 1> cmt config Atlas v1 2> cd public-area/Atlas/v1/mgr 3> edit requirements use CxxFeatures v1r3 use CLHEP v1r4 use Simulation v1 use Reconstruction v2 use... user package: use Atlas v1

CMT 19 HEPVis Sep. 1999C. Arnault LAL The services Parameter monitoring cmt show macro xxx show a particular macro cmt show macros show all macros cmt show constituents show all constituents cmt show sets show all env. variables Environment generation cmt config install a package cmt build msdev generate MSDev.Studio files cmt build readme generate README.html cmt checkout checkout a package from CVS other cmt broadcast cmd iterate a command over the use chain.

CMT 20 HEPVis Sep. 1999C. Arnault LAL The requirements file General syntax package name set name “default value” [ tag “value” ] … alias name “default value” [ tag “value” ] … macro name “default value” [ tag “value” ] … application name source-file … library name source-file … document generator name source-file … tag name tag-name … include_dirs path … setup_script name … cleanup_script name … etc...

CMT 21 HEPVis Sep. 1999C. Arnault LAL The requirements file, examples package CLHEP set CLHEPHOME \ Linux \ hp_ux102 macro CLHEP_cppflags "-DCLHEP_MAX_MIN_DEFINED -I$(CLHEPHOME)/include" macro CLHEP_linkopts "-L$(CLHEPHOME)/lib -lCLHEP -lm" \ hp_ux102 "-L$(CLHEPHOME)/lib -lCLHEP-aCC -lm" path_append LD_LIBRARY_PATH "${CLHEPHOME}/lib" Define an environment variable And variants for Linux or HP Extends the C++ flags for all client packages Will be linked by all client applications Needed when shared libraries are used

CMT 22 HEPVis Sep. 1999C. Arnault LAL The requirements file, examples package CxxFeatures set CXXFEATURESHOME “${SRT_DIST}/${SRT_VERSION}/Utilities/CxxFeatures” include_dirs ${CXXFEATURESHOME}/.srt/${SRT_TARGET} \ ${CXXFEATURESHOME} use CLHEP v1r3 use STL v1 Define additional include search paths used in dependency building and in compilation (for all client packages as well) Transitive use statements inherited by all client packages

CMT 23 HEPVis Sep. 1999C. Arnault LAL The requirements file, examples package AgeToCxx use CxxFeatures v0r3 Utilities set AGETOCXXHOME “${SRT_DIST}/${SRT_VERSION}/Tools/AgeToCxx” include_dirs ${AGETOCXXHOME}/.srt/${SRT_TARGET} ${AGETOCXXHOME} make_fragment agetocxx_header make_fragment agetocxx -suffix=cxx \ -dependencies \ -header=agetocxx_header public macro agetocxx \ "${SRT_DIST}/${SRT_VERSION}/installed/${SRT_TARGET}/bin/agetocxx" The CxxFeatures package is installed under the Utilities directory. The agetocxx fragment will be used to generate C++ code from Age files. The dependency builder will be applied to age files.

CMT 24 HEPVis Sep. 1999C. Arnault LAL The requirements file, examples package Cm use CSet v2r5 set CMDOMAIN "LAL” Virgo “Cascina” alias cm "${CMROOT}/${CMTCONFIG}/cm.exe" macro Cm_linkopts "-L$(CMROOT)/$(Cm_tag) -lCm -lm" \ LynxOS "$(CMROOT)/$(Cm_tag)/libCm.a -lnetinet -lrpc -lm" macro_append cflags " -Dunix ” # The Cm constituents. library Cm -OS9 CmConnect.c CmMessage.c Cvt.c CmTransaction.c \ CmHandle.c application NameServer -OS9 NameServer.c application cm cm.c The CMDOMAIN environment variable will get different values on different sites. The constituents Client packages will link to the library on all supported plateforms.

CMT 25 HEPVis Sep. 1999C. Arnault LAL Status Ported to –all Unix flavours (Dec, AIX, SGI, SunOS, Linux, HP-UX) –Windows 95/NT / MS Developer Studio –LynxOS (Cetia, CES) Used by –the development team at LAL –the Virgo experiment ( ) (Lapp Firenze Frascati IPN-Lyon Napoli LAL ESPCI Perugia Pisa Roma) –the LHCb and Atlas experiments –the NEMO experiment ( ) (France, Russia, INEL MHC Finland Ukraine Praha) –the AUGER experiment ( )