Desired Features of a Software Build System for DUNE DAQ
Discussion on the desired features of a software build system for DUNE DAQ, including creating C++ builds, supporting multiple languages, handling multiple software versions, efficient change management, easy installation processes, modularity, and more. The aim is to streamline the software development and deployment process for the DUNE DAQ system. Key aspects discussed include C++ builds, Python support, handling multiple software versions, and efficient change management processes.
Download Presentation
Please find below an Image/Link to download the presentation.
The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author. Download presentation by click this link. If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.
E N D
Presentation Transcript
DAQ Software Coordination Pengfei Ding DUNE DAQ/SC Meeting December 9th, 2019
Outline Discussion on desired Features of a software build system for DUNE DAQ; Brief introduction to spackdev; LarSoft s experience of transition to GitHub and pull/review model (in a future meeting). 12/09/2019 2 Pengfei Ding | DAQ Software Coordination
Desired features from a build system Core function: create C++ builds and support for other languages, e.g. python. Handling multiple versions of the DAQ software; Convenient and efficient way of handling quick and small changes (build, test and release); Constraints on the build method of individual packages; Easy to build the full software (different people with different level of knowledge and technical skills; different places, e.g. systems in another institution in DAQ consortium). Streamlined procedure of installation (pulling sources, building), configuration for a new DAQ kits system; interfaces with other system (e.g. SC). -- Easiness of installing artdaq retained. Modularity and loosely coupled packages (e.g. ptmp); m-n mapping between source and built versions. 12/09/2019 3 Pengfei Ding | DAQ Software Coordination
Builds C++ builds: - Easy (or maybe fool-proof) to create C++ consistent builds. Python: - Support for standard python packaging tools: setup.py, PyPI. 12/09/2019 4 Pengfei Ding | DAQ Software Coordination
Multiple versions of DAQ software Handling multiple versions of the DAQ software: - Multiple versions of the DAQ software co-exists in the system; - Easy to switch between them without reinstalling packages. Use case: - Test new version on a small partition; - Main partition is running older version of DAQ; - Roll out new version after test passes. 12/09/2019 5 Pengfei Ding | DAQ Software Coordination
Test release feature Convenient and efficient way of handling quick and small changes (build, test and release); - No need to checkout all packages but only the individual package working on; - Rely on already-built DAQ software for all other dependent packages; - Easy to perform test on DAQ partitions. Use case (test release feature in other experiments DAQ using Fermilab s Software Release Tool ). 12/09/2019 6 Pengfei Ding | DAQ Software Coordination
Constraints on build methods Constraints on the build method of individual packages; - Minimal constraints on building individual package; - Support including packages using other build system than CMake, e.g. Makefile, Waf etc. Spackdev status: - Feature already supported by spack itself; Need to understand if spack with spack-dev can provide features discussed just now for these packages. 12/09/2019 7 Pengfei Ding | DAQ Software Coordination
Build the full set of software Well-defined procedure to build the full software - Should be easy to follow by anyone on the DAQ team (with proper access privilege to possible build servers). 12/09/2019 8 Pengfei Ding | DAQ Software Coordination
Spackdev Spack-dev: - Trying to replace: cetbuildtools, MRB, ssibuildshims. - In technology preview stage with a Minimal Viable Product LArSoft edition - New features are currently getting into spack-dev; - Fermilab SciSoft team promised to be only improvements over the old systems; - Expected full expert support during transition from SciSoft. - Evaluate spackdev: https://hackmd.io/M- IeA_pPSIaAI3t1p73LCw?view - Start with: converting packages built by cetbuildtools to cetmodules ; Spack recipe for UPS packages built by ssibuildshims . 12/09/2019 9 Pengfei Ding | DAQ Software Coordination