Making an otsdaq Release

Here are the instructions for making a new release:

Tag all repos --

From develop for each repo (otsdaq, otsdaq_utilities, otsdaq_components, otsdaq_demo), start release flow for new tag (e.g. v1_01_02)

git branch -d master #delete local cache of master branch (assuming release create from develop)
git flow release start v1_01_0#

Can check existing tags here:
May have to do ‘git flow init’, it will ask questions

“master” for production release
“develop” for next release integration
Can hit enter on all defaults (use ‘git flow init -f’ if you make a mistake)

Update dependency files --

For each repo, product_deps → move to new v##

Commit changes --

#Master branch may be out of date, so check it out first
git checkout master
git pull
git checkout release/v1_01_0#
git commit -a -m “whatever”
git flow release finish v1_01_0#
#Causes commit type things -- Can add text about version number

git push --all; git push --tags

If strange old tags exist, can delete them: ‘git tag -d v1_00_05’ e.g.
After above commands master and develop have same tag and content.
...Note: Should make this into a script with “v1_01_01” as input parameter, but might be hard because of all the things that happen at ‘release finish’...

Do test build with Eric’s super build template --

  1. Copy from otsdaqpoc repository, template directory (../srcs/otsdaqpoc/software/buildTemplateDirectory ) for build and paste somewhere as a working directory.
  2. Run script with two parameters
    ./ /data/ups v1_01_02

    It was successful if no log files after completion (they are deleted on success)
  3. Configure the manifest (for products)
    #Repository build-framework owned by art.. Using “for_artdaq” branch
    git clone -b for_artdaq
  4. Edit top level CMakeLists.txt and look for otsdaq in artdaq products block to change version, e.g. v1_01_02
  5. Setup cmake
    setup cmake v3_7_1  #on rulinux03
  6. From another directory
    cmake <path to build_framework>/build_framework
    #Generates 3 files in art_externals/otsdaq*
  7. copyToSciSoft is in same place as pullProducts (on sciSoft)
    chmod 755 copyToSciSoft
    ./copyToSciSoft art_externals/otsdaq-*
    #Places a folder for version in scisoft otsdaq folder

Now Jenkins “”

  1. Goto artdaq tab and otsdaq_release_build
    Runs in otsdaq_utilities/tools/ .. has to pick an artdaq version at some point.. And there must be an entry “v1_01_##”.
  2. Change case statement of
    case ${version} in
  3. Click Build with Parameters on left
    Jenkins runs that script from the develop head.

You can watch the progress bar on left and red lights change to green eventually
Sometimes it fails..
Can check the console log by clicking the log # on left
Can click the log # on left and then click the dropdown of a failed circle to go to “Matrix Reloaded” and check the ones you want to rerun

  1. PullProducts still wont work! In a new directory do CopyFromJenkins
    Chmod 755 copyFromJenkins
    copyFromJenkins with -q for each type of qual entries in Jenkins (3 of them right now “s46-e10” 
    copyFromJenkins -q s46-e10 -q .. -q .. otsdaq-release-build
    #Downloads a whole bunch of stuff
  2. Then ./copyToSciSoft *.bz2 *.txt (products and manifests)


The ultimate test is if you can install (and use tutorials with new version tag):

Also, make sure to update the web source code documentation:
Updating web source code documentation

Update wiki
Should announce latest tag release at top of wiki
Then install instructions should work