- Table of contents
- External ups products
- Checking out source code.
- Build scripts
- Ups table files
- Tagging a new version for release
- Building distribution tarballs using Jenkins
- Uploading distribution tarballs to scisoft products server
- Installing distribution tarballs in /grid/fermiapp/products/uboone
- Uploading swtrigger to cvmfs
External ups products¶
There are three MicroBooNE-supported "external" ups products that are required for building uboone suite offline products. The external products are as follows.
Here, the term "external" refers to the fact that these products are hosted on a github repository (as opposed to a Fermilab redmine repository), and they are not able to be built and packaged as ups products using cetbuildtools. The source code for these products changes only rarely, if ever. However, each of these products has a dependency on root, and they need to be rebuilt each time the root version used by larsoft changes.
Some basic parameters of these products are listed in the following table.
|UPS Product||Github repository (user/repo)||Git branch||Jenkins build script||Jenkins build project|
Code for the swtrigger ups product is shared with online. Larlite and larcv are specific to offline.
Checking out source code.¶
Use the following command to check out the source code from github.
git clone https://github.com/<user>/<repo>
where <user> and <repo> are as listed in the above table.
The Jenkins build scripts listed in the above table are available in the "larutils" package, in subdirectory "buildScripts." These build scripts are written to work on the Jenkins build system, but they can also be invoked manually by setting certain environment variables, or reverse-engineered to discover the author-supplied build procedure.
Ups table files¶
Each package includes a hand-maintained ups table file, which can be found in subdirectory "ups." Should it be necessary to update the table file, for example to support a new root version, simply check out the source code from github, and edit the table file.
Tagging a new version for release¶
New release tags should be placed on the heads of the branches listed in the above table. The preferred way to get these packages updated is to make your personal clone of the repository on github, edit your clone, then generate a github pull request. Include in the comments of the pull request that there should be a new tag.
Building distribution tarballs using Jenkins¶
Here are the steps for building and distributing any of the above packages.
- Make sure that source code (including ups table file) is updated and tagged.
- Log in to Jenkins (https://buildmaster.fnal.gov).
- Click on the "
uboone" tab and select the appropriate build project.
- Click on "Configure" and edit the desired tag into the build configuration.
- Click on "Build with Parameters." This should build all supported flavors. Wait for build to complete successfully.
Uploading distribution tarballs to
scisoft products server¶
Do this step after a successfully building distribution tarballs manually or using Jenkins. Make sure you have access to
copyFromJenkins (if you used Jenkins) and
copyToSciSoft on your execution path.
First, go to an empty directory on any machine where you have kerberized
scp access to
uboonegpvmXX login machines are fine). You will assemble in this directory all tarballs that will be uploaded to
Fetching tarballs from Jenkins¶
Fetch results of Jenkins build using
copyFromJenkins. This script is normally invoked with a single argument specifying the Jenkins project name.
This command will fetch Jenkins build "artifacts." There should be one tarball for each binary flavor.
Upload all files (tarballs) to
copyToSciSoft. Specify all files that you want to upload on the command line, which should be all of the files your current directory.
You will need a kerberos ticket and login access to
Installing distribution tarballs in
Install distribution tarballs created in previous step in
/grid/fermiapp/products/uboone. You can download these from the
scisoft products server, or just use the ones you copied from Jenkins.
- Log in to any
uboonegpvmXXmachine as user
- Go to the microboone products directory.
- Unroll the tarball for each binary flavor into this directory.
tar xf <tarball-path>
- You can unroll many tarballs using a single shell command.
for tb in <tarball-dir>/*; do tar xf $tb; done
Follow instructions in this article, but usually just invoke the script
uboone-rsync.sh as user
uboone on any