Abstract
| CROME is CERN new generation of radiation monitoring system. It is based on semi-autonomous radiation detectors controlled by Zynq SoCs.
The management of heterogeneous complex code had to deal with a growing technical debt due to an ever larger code-base and increased complexity.
In the early days, some light configuration was viable using scripts modifying directly the source code. After some time, we started having multiple scripts scattered across the code-base, each acting differently to either modifying existing files, generating new files or passing generics.
Moreover, the use of a large set of different software for generating files, documenting the code, verification of the development and now linting made dependency tracking a challenge for newcomers.
In this presentation, we will expose how we managed to reduce the complexity by using a combination of GNU Autotools, make and TCL scripts. We significantly reduced technical debt by:
• Implementing a unified mechanism for configuring the project with a simple user interface,
• Tracking software dependencies before building the project allowing us to give the user a clear view on what is or is not possible with the current build environment,
• Separating source and build directories of heterogeneous codes, making it clear on what can or cannot be modified,
• Implementing linting of the HDL file, thus reducing noise of new commits. |