Skip to content

Creating an artdaq otsdaq Release

eflumerf edited this page Aug 18, 2025 · 11 revisions

Preparing artdaq bundle

  1. Prepare an artdaq software area using the quick-spack-start.sh script: quick-spack-start.sh --develop --upstream /cvmfs/fermilab.opensciencegrid.org/products/artdaq/spack_areas/artdaq-v4_03_00 --upstream /cvmfs/fermilab.opensciencegrid.org/products/artdaq/spack_areas/art-suite-s132
    • The upstreams serve as a "bootstrap" so that you don't have to build the whole suite
    • Make sure that you have repositories checked out read-write (git remote set-url origin git@github.com:art-daq/pkg.git, or add -w if you have Github RSA set up)
  2. Determine tags to use for each package: https://semver.org
    • Packages may not have diff relative to last tag, in that case only artdaq must be tagged regardless
  3. Tag each package with the release version: git checkout -b release/$releaseVer;vi CMakeLists.txt;git commit -am"Update package version";git tag v4_04_00
    • A PR to develop will be necessary to incorporate changes
  4. Edit the Spack package configuration file in the artdaq-spack repository. Add a version(v4_04_00, commit="") block, using the commit hash from git show
    • If API changes are made, make sure to reflect this in the package.py files (e.g. depends_on("artdaq-core@:v4_99_00", when="@:v4_99_00"))
    • Make sure to commit and push the changes to artdaq-spack (again, branch and PR as needed)
  5. Add a when("@v4_04_00") block to https://github.com/art-daq/artdaq-spack/blob/develop/packages/artdaq-suite/package.py, with the appropriate tags for each package (this can be used for tracking progress while tagging, as well)
  6. Update the squals array if introducing a new art-suite version
  7. Tag the https://github.com/art-daq/artdaq-spack repository with a bundle-version tag (e.g. artdaq-v4_04_00)

Preparing otsdaq bundle

  1. Prepare an otsdaq software area using the ots-quick-spack-start.sh script: ots-quick-spack-start.sh --develop --upstream /cvmfs/fermilab.opensciencegrid.org/products/artdaq/spack_areas/ots-v3_03_00 --upstream /cvmfs/fermilab.opensciencegrid.org/products/artdaq/spack_areas/artdaq-v4_03_00 --upstream /cvmfs/fermilab.opensciencegrid.org/products/artdaq/spack_areas/art-suite-s132
    • The upstreams serve as a "bootstrap" so that you don't have to build the whole suite
    • Make sure that you have repositories checked out read-write (git remote set-url origin git@github.com:art-daq/pkg.git, or add -w if you have Github RSA set up)
  2. Determine tags to use for each package: https://semver.org
    • Packages may not have diff relative to last tag, in that case only otsdaq must be tagged regardless
  3. Tag each package with the release version: git checkout -b release/$releaseVer;vi CMakeLists.txt;git commit -am"Update package version";git tag v4_02_00
    • A PR to develop will be necessary to incorporate changes
  4. Edit the Spack package configuration file in the artdaq-spack repository. Add a version(v3_04_00, commit="") block, using the commit hash from git show
    • If API changes are made, make sure to reflect this in the package.py files (e.g. depends_on("otsdaq@:v3_99_00", when="@:v3_99_00"))
    • Make sure to commit and push the changes to artdaq-spack (again, branch and PR as needed)
  5. Add a when("@v3_04_00") block to https://github.com/art-daq/artdaq-spack/blob/develop/packages/otsdaq-suite/package.py, with the appropriate tags for each package (this can be used for tracking progress while tagging, as well)
  6. Update the squals array if introducing a new art-suite version
  7. Update the artdaq qualifier list with the new artdaq version
  8. Tag the https://github.com/art-daq/artdaq-spack repository with a bundle-version tag (e.g. otsdaq-v3_04_00)

Updating Github Project

  1. Set the "Target Version" for any completed Issues and PRs on this project https://github.com/orgs/art-daq/projects/1 to "Next Release"
  2. Go to the Project properties, change "Next Release" to the new version (e.g. "v4_04_00")
  3. Create a new "Target Version" tag, called "Next Release", and move it to the top of the list
  4. Duplicate the most recent "Release" view, rename to current release and edit the filter to show "target-version: v4_04_00" (corresponding to the new release, of course)

Creating Release Notes

  1. Create Github Releases for each tagged package, using the auto-generated release notes
  2. Send a release announcement email to artdaq-users and otsdaq_users. Optionally add details about the major features of the release, but always link to the newly-created view on the Github tracking project.

Deploying Release

  1. Check out https://github.com/art-daq/daq-docker on a node that is capable of running Docker (or Podman)
  2. Update run_update_docker.sh for the bundle versions used
  3. Run run_update_docker.sh. If building multiple dependency bundles, it is often a good idea to use the control variables ("doArtdaqBuild=1") to perform one build at a time
  4. Update the Github Docker images by running the daq-docker CI jobs manually

Update these instructions

  1. To keep these instructions up-to-date, try to update version numbers as appropriate, especially the --upstream arguments to the quick-spack-start scripts.