19–25 Oct 2024
Europe/Zurich timezone

Thoroughly testing and integrating hundreds of Pull Requests per month: ROOT’s new Cost-efficient and Feature Rich GitHub-based CI

21 Oct 2024, 14:42
18m
Room 2.A (Seminar Room)

Room 2.A (Seminar Room)

Talk Track 6 - Collaborative software and maintainability Parallel (Track 6)

Speaker

Danilo Piparo (CERN)

Description

ROOT is an open source framework, freely available on GitHub, at the heart of data acquisition, processing and analysis of HE(N)P experiments, and beyond.

It is developed collaboratively: contributions are not authored only by ROOT team members, but also by a veritable nebula of developers and scientists from universities, labs as well as the private sector. More than 1500 GitHub Pull Requests are merged on average per year. It is in this context that code integration acquires a primary role: not only code contributions need to be reviewed, but they need to be thoroughly tested through a powerful CI infrastructure on several different platforms to comply with the high code quality standards of the project. Since the end of 2023, ROOT moved its continuous integration system from a Jenkins one to a GitHub Actions based one.

In this contribution, we characterise the transition to the GitHub CI, focussing our strategy, its implementation and the lesson learned, as well as the advantages the new system offers with respect to the previous one. Particular emphasis will be given to the evaluation of the cost-benefit ratio for Jenkins and GitHub Actions for the ROOT project. We’ll also describe how we manage to run in less than one hour thousands of unit, integration, functional and end-to-end tests on different flavours of Windows, four versions of macOS, as well as about ten of the most used Linux distributions, taking advantage of the CERN computing infrastructure.

Primary author

Co-authors

Axel Naumann (CERN) Jonas Hahnfeld (CERN & Goethe University Frankfurt) Malik Shahzad Muzaffar (CERN) Ole Morud (Norwegian University of Science and and Technology (NTNU) (NO)) Philippe Canal (Fermi National Accelerator Lab. (US)) Stephan Hageboeck (CERN) Vassil Vasilev (Princeton University (US))

Presentation materials