Version Management
From GlueXWiki
Revision as of 17:48, 17 November 2014 by Marki (Talk | contribs) (Created page with "A system for managing versions of GlueX Software. ==Use Cases== * build a build * use a build ==Example XML File== <pre> \begin{verbatim} <gversions> <package name="jana" versi...")
A system for managing versions of GlueX Software.
Contents
Use Cases
- build a build
- use a build
Example XML File
\begin{verbatim} <gversions> <package name="jana" version="0.7.2"/> <package name="sim-recon" version="2014-09-23"/> <package name="hdds" version="3.0"/> <package name="cernlib" version="2005" word_length="64-bit"/> <package name="xerces-c" version="3.1.1"/> <package name="clhep" version="2.0.4.5"/> <package name="geant4" version="9.4"/> <package name="root" version="5.34.00"/> <package name="ccdb" version="1.03"/> </gversions>
generate environment variables
- version variables
- home variables (assumes directory structure)
- C-shell and Bourne shell
- build_scripts makefiles key off version
- gluex_install assumes same directory structure
- gluex_env (in build scripts) keys off home directories
Example Environment Settings
setenv GLUEX_TOP /usr/local/gluex setenv JANA_VERSION 0.7.2 setenv JANA_HOME /usr/local/gluex/jana/jana_0.7.2/ setenv SIM_RECON_VERSION 2014-09-23 setenv HALLD_HOME /usr/local/gluex/sim-recon/sim-recon-2014-09-23 setenv HDDS_VERSION 3.0 setenv HDDS_HOME /usr/local/gluex/hdds/hdds-3.0 setenv CERNLIB_VERSION 2005 setenv CERN /usr/local/gluex/cernlib setenv CERN_LEVEL 2005 setenv CERNLIB_WORD_LENGTH 64-bit setenv XERCES_C_VERSION 3.1.1 setenv XERCESCROOT /usr/local/gluex/xerces-c/xerces-c-3.1.1 setenv CLHEP_VERSION 2.0.4.5 setenv CLHEP /usr/local/gluex/clhep/2.0.4.5 setenv ROOT_VERSION 5.34.00 setenv ROOTSYS /usr/local/gluex/root/root_5.34.00 setenv CCDB_VERSION 1.03 setenv CCDB_HOME /usr/local/gluex/ccdb/ccdb_1.03
consistency checking
Is version of jana used consistent with ccdb chosen?
- not a problem with original build effort
- can be a problem when using for set-up at using software or developing software
customization for use
- if not using the same directory structure?
- version-system home area definitions can be over-ridden explicitly
- subsequent gluex\_env will respect those
getting and using the system
Incorporated as part of build_scripts