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...")

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

A system for managing versions of GlueX Software.

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