What Lynn does » History » Version 9

Version 8 (Lynn Garren, 05/06/2019 05:41 PM) → Version 9/67 (Lynn Garren, 05/06/2019 05:46 PM)

h1. What Lynn does

h2. Build "third party" ups products as needed for art and larsoft

* We have a [[build-framework:|defined procedure]] that uses a number of scriptlets found in the ssibuildshims product.
* Each product has a tiny redmine repository for the build and bootstrap scripts.
** Scripts include,,, and usually ups/xxx.table, where xxx is the product name.
** We sometimes need patch files.
** Other scripts are occasionally included, such as for geant4.
* To ensure reproducible builds, we only build from tagged releases. In rare cases, we use a commit hash.
* We require that the source code be captured in a source code tarball for reproducible builds.
* We bootstrap and run local test builds for the supported compiler options. This is a rapid turnaround development step.
** Whenever possible, we run unit tests and require that these tests pass.
* Once everything looks good, the source code tarball is uploaded to SciSoft.

h2. Build art releases after they are tagged.

* Kyle sends around an email to the SciSoft Team when a release is tagged.
* Update information in build-framework/CMakeLists.txt
** There are multiple branches for different product configurations
* Run cmake to get the new build configuration files.
* Check the new config files.
** Always compare against the previous release.
* If they are OK, use copyToSciSoft to install ONLY the appropriate build configuration files on SciSoft. There are html files for each release that also need to be installed.
** canvas
** art
** gallery
** critic
* Start a Jenkins build
** The build needs two iterations. First for python 2 (the LABEL field is empty) and then a second pass with LABEL set to py3.
* Sometimes there are problems with the build.
** Investigate and fix.
** A local test build is sometimes helpful, depending on the problem.
* Once the build has completed successfully, download the tarballs locally and then upload them to SciSoft.
** Work in an empty directory
** copyFromJenkins -N -q c2 -q c7 -q e17 -q e19 critic-all
** copyToSciSoft *

h2. LArSoft release management

* Advise and collect information for each weekly release.