Creating a new DAQ release¶
Overview¶
Here are the general steps of creating a new DAQ release.
-
Information gathering -- create an issue in
daq-releaserepo to keep track of things (example):- release tag
- new python modules (and/or versions, same for below);
- new DAQ packages;
- new externals packages;
- any other changes requiring actions before rolling out the new release;
-
Create a feature branch in
daq-releaserepo and link it to the issue created in the previous step:- create a new release directory under
daq-release/configs, by copying most recent release, e.g.cp -pr daq-release/configs/dunedaq-v2.3.0 daq-release/configs/dunedaq-v2.4.0; - modify
dbt-setttings.sh(if needed):- use
productsandproducts_devin cvmfs directly (changedune_products_dirslist); - commenting out any DAQ packages (in
dune_daqpackageslist); - update
dune_externalswith new versions of external UPS packages if necessary (assuming you already prepared the new version of external packages, if not, refer to How-to-build-external-UPS-packages).
- use
- modify
pyvenv_requirements.txtwith the updated list of required modules and versions (assuming any new modules or versions are already available inpypi-repoon cvmfs, otherwise, refer to how-to-add-new-modules-to-pypi-repo for instructions). - modify
dbt-build-order.cmake(if needed), if new DAQ packages will be included in the new release, modfiy this file to include them in the build-order list; - come back later to modify
release_manifest.shonce all preparation work are done, and new DAQ packages are available in cvmfs; - Update
daq-release/configs/dunedaq-developto pick up any new packages or versions used in the latest releaes configuration above.
- create a new release directory under
-
Build and package DAQ packages
- checkout the desired version of
daq-buildtools, and set up a working directory using the release configs created by the previous step; - checkout all DAQ packages into
sourcecodeand build them withdbt-build.sh; - run upsify-daq-packages script to make tarballs of the DAQ packages (instructions;
- note that if a new tag of a package has been used, all the downstream packages in the build order list shall be rebuilt and deployed. For example, the
loggingpackage is the same indunedaq-v2.3.0anddunedaq-v2.4.0, but its dependent packageershas been advanced tov1.1.2, theloggingpackage should be checked out and rebuilt when preparing fordunedaq-v2.4.0. Sincelogging v1_1_0is already in theproductsarea, and the newly builtloggingis differnt from it, we should advance the UPS version tov1_1_0b; - publish the DAQ packages into cvmfs (instructions).
- checkout the desired version of
-
Modify
dbt-setting.shto use the newly published DAQ packages in cvmfs, create a new working directory and run some integration tests; -
Modify
release_manifest.shwith new list of DAQ packages, externals etc, and the anticipated new tags ofdaq-release, anddbt-settings.shwith the anticipated new release directory in cvmfs; -
Merge the release preparation branch of
daq-release, and tag a new version; -
Use the release creating script to create a tarball of the new release, and deploy it on cvmfs;
-
tag
daq-buildtoolswith the release tag, and publish the version used into cvmfs (this script prepares the desireddbtdirectory in cvmfs), created the symlink of the release tag to the actual versioned tags; -
Up till this point, the new release should be available in cvmfs, give it a test, prepare new documentation for developers and make the announcement for beta testing the new release;
-
Wait 24 hours, for any possible hotfixes, before making the release tag with the release tagging script.
Last git commit to the markdown source of this page:
Author: Pengfei Ding
Date: Wed Sep 8 16:58:27 2021 +0200
If you see a problem with the documentation on this page, please file an Issue at https://github.com/DUNE-DAQ/daq-release/issues