Incremental, reproducible builds of software variants (Assemblage incrémental et reproductibles de variantes logicielles) Randrianaina, Georges Aaron - (2025-05-28) / Université de Rennes Incremental, reproducible builds of software variants
| |||
Langue : Anglais Directeur(s) de thèse: Acher, Mathieu; Zendra, Olivier Discipline : Informatique Laboratoire : IRISA Ecole Doctorale : MATISSE Classification : Informatique Mots-clés : Compilation Incrémentale, Compilation Reproductible, Variabilité Logicielle, Sciences du Logiciel
| |||
Résumé : La compilation de logiciels au sein de systèmes hautement configurables est devenue une tâche toujours plus complexe et coûteuse en ressources, d’autant que les pratiques de développement modernes s’appuient fortement sur l’intégration continue (CI). La prolifération des options de configuration, des directives de compilation conditionnelle aux dépendances externes, fait qu’assurer la compilation correcte et efficace des différentes variantes d’un logiciel représente un défi majeur. Les recompilations complètes demeurent la norme, mais elles se révèlent souvent inefficaces lorsqu’elles sont répétées pour de nombreuses configurations. Cette thèse examine la faisabilité, les avantages et les limites de la compilation incrémentale des configurations logicielles, une stratégie qui réutilise les artefacts de compilations antérieures pour accélérer les suivantes. Au moyen d’études empiriques menées sur des systèmes réels (Linux, Busybox, Toybox, x264, xz, curl, sqlite, et plus…), ce travail montre que la compilation incrémentale peut réduire significativement les temps de compilation, avec des gains pouvant atteindre 66 %. Deux applications concrètes sont explorées : la réduction du coût global de la compilation d’ensembles fixes de configurations et l’accélération de l’exploration de grands espaces de configuration. Nous identifions toutefois plusieurs défis, notamment le risque de compilations incorrectes et la difficulté de garantir la reproductibilité lorsqu’on réutilise des artefacts. Pour y remédier, nous proposons des méthodes permettant de détecter et de corriger les configurations non reproductibles, ainsi que PyroBuildS, une nouvelle technique qui contrôle la diversité des configurations à l’aide de listes d’exclusion et d’opérateurs de variation. PyroBuildS offre des compilations incrémentales à la fois efficaces et reproductibles, réduisant les temps de compilation de 16 % à 22 % sur plusieurs systèmes configurables. Cette thèse est la toute première à étudier la compilation incrémental de configurations logicielles. Elle ouvre de nouvelles perspectives sur la manière de rendre les systèmes de build plus efficaces et plus fiables face à la variabilité des configurations, et elle trace des pistes prometteuses pour la recherche et les outils en génie logiciel. Abstract : Building software in the context of highly configurable systems has become an increasingly complex and resource-intensive task, especially as modern development practices rely heavily on Continuous Integration (CI). With the prolif- eration of configuration options, spanning from conditional compilation directives to external dependencies, ensuring that software variants build correctly and efficiently has emerged as a major challenge. While clean builds remain the standard practice, they are often inefficient when repeated across numerous configurations. This dissertation investigates the feasibility, benefits, and limitations of incremental build of software configurations. A strategy that reuses artifacts from previous builds to accelerate subsequent ones. Through a series of empirical studies involving real-world systems (Linux, Busybox, Toybox, x264, xz, curl, sqlite, and more…), this work demonstrates that incremental builds can significantly reduce build times, with gains of up to 66% in certain scenarios. We explore two practical applications: reducing the total cost of building fixed sets of configurations and accelerating the exploration of large configuration spaces. However, we also identify challenges, such as the risk of incorrect builds and the difficulty of ensuring reproducibility when reusing artifacts. To address these issues, we introduce methods to detect and fix non-reproducible configurations and propose PyroBuildS, a new technique that controls configuration diversity using deny lists and variation operators. PyroBuildS enables efficient and reproducible incremental builds, achieving time reductions between 16% and 22% across several configurable systems. This dissertation is the very first to address incremental build of software configurations and provides new insights into how build systems can be made more efficient and reliable in the presence of configuration variability, opening up promising directions for future research and tooling in software engineering. |