GRGeorges Aaron Randrianaina

Georges Aaron Randrianaina

*This is an algorithmically generated author record based on publicly available information.

Current Organizations / Institutes

The organizations/institutes from the scholar's latest article

Previous Organizations / Institutes

The organizations / institutes from the scholar's other articles in the past ten years


Georges Aaron Randrianaina has a total of 14 co-authors. Here are the top co-authors by number of shared publications:


Latest Publications

  • Open Access

    Recovering Revisions of Pull Requests with Altered History

    by Gengyi Sun, Georges Aaron Randrianaina, Tao Xiao, Yasutaka Kamei, Shane McIntosh

    In pull-based development, Pull Requests (PRs) undergo peer review. To address review feedback, authors may "force-push" after amending, squashing, or rebasing commits. Such revisions can conflate PR-specific changes with updates on the base branch, hindering further review and introducing noise into PR-based datasets. In this paper, we empirically study 935,011 PRs from 1,445 well-maintained GitHub projects. We observe 568,218 force-push events in 242,624 PRs that span 1,366 projects. We denote the HEAD commits of the PR before and after force-pushing as a force-push pair, and observe that 210,837 pairs (37.1%) have a relationship that conflates PR changes with updates to the base branch. To systematically isolate PR-specific changes in such revisions, we propose AntiDiffamine---an ancestry-based approach that aligns commits on a common reference. AntiDiffamine can automatically deconflate 98.1% of the studied revisions, decreasing the diff size by one to three orders of magnitude. We also evaluate AntiDiffamine on fail-fix pairs, i.e., revisions that fix failing builds. A case study of Kubernetes reveals that 130 of 523 pairs have conflated diffs. Moreover, the fixing files identified when AntiDiffamine is applied overlap more with a human-labelled ground truth than when conflation is untreated or excluded. AntiDiffamine is a first attempt at addressing force-push-based diff conflation, which is having a real-world impact on practical and research workflows. To ease practical adoption, we provide a template GitHub Action, which scans PR updates for force-push events and applies AntiDiffamine to deconflate the diff.

  • Incremental, reproducible builds of software variants

    by Georges Aaron Randrianaina

    Assemblage incrémental et reproductibles de variantes logicielles: 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.

  • PyroBuildS: Speeding up the exploration of large configuration spaces with incremental build

    by Georges Aaron Randrianaina, Djamel Eddine Khelladi, Olivier Zendra, Mathieu Acher


  • Open Access

    Embracing Deep Variability For Reproducibility and Replicability

    by Mathieu Acher, Benoit Combemale, Georges Aaron Randrianaina, Jean-Marc Jezequel

    Reproducibility (a.k.a., determinism in some cases) constitutes a fundamental aspect in various fields of computer science, such as floating-point computations in numerical analysis and simulation, concurrency models in parallelism, reproducible builds for third parties integration and packaging, and containerization for execution environments. These concepts, while pervasive across diverse concerns, often exhibit intricate inter-dependencies, making it challenging to achieve a comprehensive understanding. In this short and vision paper we delve into the application of software engineering techniques, specifically variability management, to systematically identify and explicit points of variability that may give rise to reproducibility issues (e.g., language, libraries, compiler, virtual machine, OS, environment variables, etc.). The primary objectives are: i) gaining insights into the variability layers and their possible interactions, ii) capturing and documenting configurations for the sake of reproducibility, and iii) exploring diverse configurations to replicate, and hence validate and ensure the robustness of results. By adopting these methodologies, we aim to address the complexities associated with reproducibility and replicability in modern software systems and environments, facilitating a more comprehensive and nuanced perspective on these critical aspects.


  • Open Access

    Options Matter: Documenting and Fixing Non-Reproducible Builds in Highly-Configurable Systems

    by Georges Aaron Randrianaina, Djamel Eddine Khelladi, Olivier Zendra, Mathieu Acher

    A critical aspect of software development, build reproducibility, ensures the dependability, security, and maintainability of software systems. Although several factors, including the build environment, have been investigated in the context of non-reproducible builds, to the best of our knowledge the precise influence of configuration options in configurable systems has not been thoroughly investigated. This paper aims at filling this gap. This paper thus proposes an approach to automatically identify configuration options causing non-reproducibility of builds. It begins by building a set of builds in order to detect non-reproducible ones through binary comparison. We then develop automated techniques that combine statistical learning with symbolic reasoning to analyze over 20,000 configuration options. Our methods are designed to both detect options causing non-reproducibility, and remedy non-reproducible configurations, two tasks that are challenging and costly to perform manually. We evaluate our approach on three case studies, namely Toybox, Busybox, and Linux, analyzing more than 2,000 configurations for each of them. Toybox and Busybox come exempt from non-reproducibility. In contrast, 47% of Linux configurations lead to non-reproducible builds. The approach we propose in this paper is capable of identifying 10 configuration options that caused this non-reproducibility. When confronted to the Linux documentation, none of these are documented as non-reproducible. Thus, our identified non-reproducible configuration options are novel knowledge and constitute a direct, actionable information improvement for the Linux community. Finally, we demonstrate that our methodology effectively identifies a set of undesirable option values, enabling the enhancement and expansion of the Linux kernel documentation while automatically rectifying 96% of encountered non-reproducible builds.


  • Open Access

    A Call for Removing Variability

    by Mathieu Acher, Luc Lesoil, Georges Aaron Randrianaina, Xhevahire Tërnava, Olivier Zendra

    Software variability is largely accepted and explored in software engineering and seems to have become a norm and a must, if only in the context of product lines. Yet, the removal of superfluous or unneeded software artefacts and functionalities is an inevitable trend. It is frequently investigated in relation to software bloat. This paper is essentially a call to the community on software variability to devise methods and tools that will facilitate the removal of unneeded variability from software systems. The advantages are expected to be numerous in terms of functional and non-functional properties, such as maintainability (lower complexity), security (smaller attack surface), reliability, and performance (smaller binaries).