Online release

From GlueXWiki
Revision as of 14:56, 24 May 2013 by Wolin (Talk | contribs)

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

How To Make an Online Release

Official online releases must be made from the hdsys account. You can also make a release in your own area. Note that by the word "release" I do NOT refer to tagged releases in an SVN repository, rather to online code distributions to an installation or release directory:


1. For official releases log into the hdsys account on the Hall D online computing cluster and cd to the release area. If you don't know how to do this then you should not be making official releases! If you are just making a private release then log into your own account and cd to wherever you want to make the release.


2. Get a copy of the release script:

$ svn cat https://halldsvn.jlab.org/repos/trunk/online/packages/buildScripts/scripts/build_online_release > build_online_release

(See help text below)


3. Set PATH to point to gcc 4.8.0 (or whatever compiler you want) and set LD_LIBRARY_PATH accordingly (eventually this will be automated):

$ setenv PATH /apps/gcc/4.8.0/bin:"$PATH"
$ setenv LD_LIBRARY_PATH /apps/gcc/4.8.0/lib64:/apps/gcc/4.8.0/lib:"$LD_LIBRARY_PATH"


4. Set environment variables needed for the build (eventually this will be automated):

$ setenv CMSGROOT       /gluex/coda_install_dir/Linux-x86_64
$ setenv EVIOROOT       /gluex/coda_install_dir/Linux-x86_64
$ setenv ETROOT         /gluex/coda_install_dir/Linux-x86_64
$ setenv CODAOBJECTROOT /gluex/coda_install_dir/Linux-x86_64


5. Create new release in current working directory, check out all packages, build and install everything

$ build_online_release myRelease --checkout


Script usage and options:

$ build_online_release -h

Usage: 
 build_online_release [options] someReleaseDirectory

Builds/installs software in an existing online release directory someReleaseDirectory.  Optionally can check out 
all online software packages from SVN into a new directory structure, or can  update an existing directory structure
to the latest SVN version.  SVN version can be the default or a tagged version.
 

Examples:

To check out online software into a new directory structure newRelease:
   build_online_release newRelease --checkout

To update and rebuild an existing release:
   build_online_release oldRelease --update

To just rebuild an existing release:
  build_online_release oldRelease

Note: the default SVN repository is:   https://halldsvn.jlab.org/repos/trunk/online/packages
     the default tags repository is:  https://halldsvn.jlab.org/repos/tags/online/packages


Options:
 -h, --help            show this help message and exit

 Operation Options:
   --checkout          Check out code before build/install
   --update            Update existing code before build/install
   --noBuild           Do not build anything
   --noCPP             Do not build C/C++
   --noJava            Do not build Java
   --noInstall         Do not install
   --force             Ignore errors in options

 Repository Options:
   --repo=REPO         SVN repository URL
   --tagsRepo=TAGSREPO
                       SVN repository URL for tagged versions
   --tagName=TAGNAME   Tag name of tagged version

Note...does not modify the SVN repository in any way, in particular it does NOT create tagged
versions in SVN.