Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Brian presents a StrawMan Release Workflow

  • commit/tag 
    • Release  = commit + tag
    • Travis or Jenkins driven 
      • sets ENV vars
  • INIT WS
    • Use reporman to init workspace
      • workspace only works currently for ST and GR due to need for packagelist.  Could use packageLib.py to determine dependencies and requirements to allow per package builds.
    • If including extlibs into containers, every part of this setup would be part of the containers.
  • Code Generation and DOxygen
    • Code Generation (SWIG) but that is done in SCons
    • Really just doxgygen for now
  • Compile
    • In Jenkins or Travis this would do a loop over available systems to build and variants
      • CentOS6, Mac, CentOS7 - this info comes from?  which is currently in RM DB.. Brian would like to put that in the repository, due to a desire to avoid putting those credentials into Travis. Could have additional matrix for the compilers to use.
    • SCons builds the unit tests too
  • TEST
  • Package
    • package env that the build used, including dependencies and externals, which can ultimately be pulled into a container
    • SCOns currently create the tarball and the setup scripts
  • Validate
    • We don't currently have any system tests for ST, we do have some for GR which are not currently run as part of RM, it would be nice to reactivate for this for releases.
  • Deploy
    • Moving tar balls from workspace into NFS to CVMFS
    • Containers (Singularity) will link to CVMFS and includes xrootd installed
    • Could deploy to conda too

Giacomo reminds that the conda build system includes most of the above.  Are we going to consider moving everything to the conda system or in parallel. 

Brian - make Mac builds harder

Richard:  who are the recipients of the builds? processing, developers, collab users

conda - is agnostic wo what you use for the build (make,

Giacomo mentions that conda builds requires some things like the to use rpath, need to compile,   Joanne volunteers to try to use rpath for a build

Brian:  conda could be another variant in the COMPILE box.

Brian: Release process creates the tags, by the user or via something like Jenkins.. provide package name and the tagged version that you want.

unit test - results

build logs - Jenkins stores the output

Matt: relationship to the RM?  
Brian: replacement of Rm ultimately, but re-use RM for the beginning phases.

Joanne:  RM is tag driven

Alex: Travis is commit driven
$130 for the unlimited time frame for an indeterminate period of time
Modularization will also help.

WS is semi-persistent - if doing a repoman checkout, if only one sub package changes, then that's the only one checked out and SCons is smart enough to only build what is necessary.