Notes on Version Management System

copied from a long running gnote

  • do an eval to put environment definitions into environment, users can invent other schemes if they like
  • version.xml distribution
    • separate data from code repository
    • options:
      • new top level directory in repository
      • web page, distribution directory
      • standard “dist” directory
      • use standard “dist” directory for now
  • need perl-XML-Writer package on RHEL6
  • on lorentz, RHEL6, 64-bit, needed soft link to make libcurl.so in /usr/lib64
  • need the XML/Simple.pm module on jlabl3

Notes on Version Management

  • base it on gluex_top
  • default, not there, prod
  • use it for set-up at first
  • the list of packages is at https://halldweb1.jlab.org/wiki/index.php/Scripts_for_Installing_GlueX_Software
  • philosophy on versions:
    • build philosophy
      • makefiles should respect version numbers in environment
      • if no version specified, use default version, default version is package dependent
      • if version is specified, use it, of course
      • no default versions in makefile
    • directory philosophy
      • use version number if possible
      • if from repository trunk, use “-latest”
      • if multiple versions needed because of multiple dependencies, use combo of directory names
    • setup script philosophy
      • default choices, determined by prod
      • use version.xml as input to a script which calls gluex_env.csh

Current list of makefiles:

  1. xerces-c
  2. CERNLIB
  3. ROOT
  4. CLHEP
  5. Geant4
  6. GSL (Gnome Scientific Library)
  7. CCDB
  8. JANA
  9. HDDS
  10. sim-recon