Evolution of ROOT package management

06/11/2019
by   Oksana Shadura, et al.
0

ROOT is a large code base with a complex set of build-time dependencies; there is a significant difference in compilation time between the "core" of ROOT and the full-fledged deployment. We present results on a "delayed build" for internal ROOT packages and external packages. This gives the ability to offer a "lightweight" core of ROOT, later extended by building additional modules to extend the functionality of ROOT. As a part of this work, we have improved the separation of ROOT code into distinct modules and packages with minimal dependencies. This approach gives users better flexibility and the possibility to combine various build features without rebuilding from scratch. Dependency hell is a common problem found in software and particularly in HEP software ecosystem. We would like to discuss an improvement of artifact management ("lazy-install") system as a solution to the "dependency hell" problem. HEP software stack usually consists of multiple sub-projects with dependencies. The development model is often distributed, independent and non-coherent among the sub-projects. We believe that software should be designed to take advantage of other software components that are already available, or have already been designed and implemented for use elsewhere rather than "reinventing the wheel". In our contribution, we will present our approach to artifact management system of ROOT together with a set of examples and use cases.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
12/07/2018

Extending ROOT through Modules

The ROOT software framework is foundational for the HEP ecosystem, provi...
research
08/24/2022

On the Dependency Heaviness of CRAN/Bioconductor Ecosystem

The R package ecosystem is expanding fast and dependencies among package...
research
07/29/2022

Not All Dependencies are Equal: An Empirical Study on Production Dependencies in NPM

Modern software systems are often built by leveraging code written by ot...
research
12/10/2018

Optimizing Frameworks Performance Using C++ Modules Aware ROOT

ROOT is a core HEP framework which is used broadly in and outside HEP. A...
research
01/23/2021

Präzi: From Package-based to Call-based Dependency Networks

Software reuse has emerged as one of the most crucial elements of modern...
research
06/21/2019

Semantics-aware Virtual Machine Image Management in IaaS Clouds

Infrastructure-as-a-service (IaaS) Clouds concurrently accommodate diver...
research
06/12/2019

Migrating large codebases to C++ Modules

ROOT has several features which interact with libraries and require impl...

Please sign up or login with your details

Forgot password? Click here to reset