<?xml version="1.0" encoding="UTF-8"?><mets:mets xmlns:mets="http://www.loc.gov/METS/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tef="http://www.abes.fr/abes/documents/tef" xmlns:metsRights="http://cosimo.stanford.edu/sdr/metsrights/" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:mads="http://www.loc.gov/mads/">
	

	<mets:metsHdr ID="rennes1-ori-wf-1-20980" RECORDSTATUS="complet" CREATEDATE="2025-05-19T11:49:42" LASTMODDATE="2025-05-19T13:06:07">
  <mets:agent ROLE="CREATOR">
			<mets:name>SCD-Universite de Rennes 1</mets:name>
		</mets:agent>
</mets:metsHdr>

	<mets:dmdSec ID="desc_expr" CREATED="2025-05-19T11:49:42">
  <mets:mdWrap MDTYPE="OTHER" OTHERMDTYPE="tef_desc_these">
			<mets:xmlData>
				<tef:thesisRecord>
     <dc:title xml:lang="en">Incremental, reproducible builds of software variants</dc:title>
     <dcterms:alternative xml:lang="fr">Assemblage incrémental et reproductibles de variantes logicielles</dcterms:alternative>
     <dc:subject xml:lang="fr">Compilation Incrémentale</dc:subject><dc:subject xml:lang="fr">Compilation Reproductible</dc:subject><dc:subject xml:lang="fr">Variabilité Logicielle</dc:subject><dc:subject xml:lang="fr">Sciences du Logiciel</dc:subject>
     <dc:subject xml:lang="en">Incremental Build</dc:subject><dc:subject xml:lang="en">Reproducible Builds</dc:subject><dc:subject xml:lang="en">Software Product Line</dc:subject><dc:subject xml:lang="en">Software Engineering</dc:subject><tef:sujetRameau><tef:vedetteRameauNomCommun>
						<tef:elementdEntree autoriteSource="Sudoc" autoriteExterne="027709922">Compilation (informatique)</tef:elementdEntree>
					</tef:vedetteRameauNomCommun><tef:vedetteRameauNomCommun>
						<tef:elementdEntree autoriteSource="Sudoc" autoriteExterne="027877450">Assemblage (informatique)</tef:elementdEntree>
					</tef:vedetteRameauNomCommun><tef:vedetteRameauNomCommun>
						<tef:elementdEntree autoriteSource="Sudoc" autoriteExterne="034960848">Gestion de configurations des logiciels</tef:elementdEntree>
					</tef:vedetteRameauNomCommun></tef:sujetRameau>
     <dcterms:abstract xml:lang="fr">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.</dcterms:abstract>
     <dcterms:abstract xml:lang="en">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. </dcterms:abstract>
     <dc:type>Electronic Thesis or Dissertation</dc:type><dc:type xsi:type="dcterms:DCMIType">Text</dc:type>
     <dc:language xsi:type="dcterms:RFC3066">en</dc:language>
    </tef:thesisRecord>
			</mets:xmlData>
		</mets:mdWrap>
</mets:dmdSec>
	
	<mets:dmdSec ID="desc_edition" CREATED="2025-05-19T11:49:42">
  <mets:mdWrap MDTYPE="OTHER" OTHERMDTYPE="tef_desc_edition">
			<mets:xmlData>
				<tef:edition><dcterms:medium xsi:type="dcterms:IMT">application/pdf</dcterms:medium><dcterms:extent>1 : 1905 Ko</dcterms:extent><dc:identifier xsi:type="dcterms:URI">https://ged.univ-rennes1.fr/nuxeo/site/esupversions/b981d136-bb56-4bf3-a65c-55e099ced597</dc:identifier></tef:edition>
			</mets:xmlData>
		</mets:mdWrap>
</mets:dmdSec>

	<mets:amdSec>
		<mets:techMD ID="admin_expr">
			<mets:mdWrap MDTYPE="OTHER" OTHERMDTYPE="tef_admin_these">
				<mets:xmlData>
					<tef:thesisAdmin>
      <tef:auteur>
       <tef:nom>Randrianaina</tef:nom>
       <tef:prenom>Georges Aaron</tef:prenom>
       
       <tef:dateNaissance>1998-11-02</tef:dateNaissance>
       <tef:nationalite scheme="ISO-3166-1">FR</tef:nationalite>
       <tef:autoriteExterne autoriteSource="Sudoc">289473063</tef:autoriteExterne>
       <tef:autoriteExterne autoriteSource="mailPerso">georges-aaron@randrianaina.org</tef:autoriteExterne>
      </tef:auteur>
      <dc:identifier xsi:type="tef:NNT">2025URENS014</dc:identifier>
      <dc:identifier xsi:type="tef:nationalThesisPID">http://www.theses.fr/2025URENS014</dc:identifier>
      
      <dcterms:dateAccepted xsi:type="dcterms:W3CDTF">2025-05-28</dcterms:dateAccepted>
      <tef:thesis.degree>
							<tef:thesis.degree.discipline xml:lang="fr">Informatique</tef:thesis.degree.discipline>
							<tef:thesis.degree.grantor>
        <tef:nom>Université de Rennes</tef:nom><tef:autoriteInterne>thesis.degree.grantor_1</tef:autoriteInterne>
        
        <tef:autoriteExterne autoriteSource="Sudoc">26693823X</tef:autoriteExterne>
       </tef:thesis.degree.grantor>
							<tef:thesis.degree.level>Doctorat</tef:thesis.degree.level>
						</tef:thesis.degree>
      <tef:theseSurTravaux>non</tef:theseSurTravaux>
      <tef:avisJury>oui</tef:avisJury><tef:directeurThese><tef:nom>Acher</tef:nom><tef:prenom>Mathieu</tef:prenom><tef:autoriteInterne>intervenant_1</tef:autoriteInterne><tef:autoriteExterne autoriteSource="Sudoc">158563913</tef:autoriteExterne></tef:directeurThese><tef:directeurThese><tef:nom>Zendra</tef:nom><tef:prenom>Olivier</tef:prenom><tef:autoriteInterne>intervenant_2</tef:autoriteInterne><tef:autoriteExterne autoriteSource="Sudoc">133979555</tef:autoriteExterne></tef:directeurThese><tef:presidentJury><tef:nom>Zacchiroli</tef:nom><tef:prenom>Stefano</tef:prenom><tef:autoriteInterne>intervenant_3</tef:autoriteInterne><tef:autoriteExterne autoriteSource="Sudoc">176946942</tef:autoriteExterne></tef:presidentJury><tef:membreJury><tef:nom>Acher</tef:nom><tef:prenom>Mathieu</tef:prenom><tef:autoriteInterne>intervenant_1</tef:autoriteInterne><tef:autoriteExterne autoriteSource="Sudoc">158563913</tef:autoriteExterne></tef:membreJury><tef:membreJury><tef:nom>Zendra</tef:nom><tef:prenom>Olivier</tef:prenom><tef:autoriteInterne>intervenant_2</tef:autoriteInterne><tef:autoriteExterne autoriteSource="Sudoc">133979555</tef:autoriteExterne></tef:membreJury><tef:membreJury><tef:nom>Blay-Fornarino</tef:nom><tef:prenom>Mireille</tef:prenom><tef:autoriteInterne>intervenant_5</tef:autoriteInterne><tef:autoriteExterne autoriteSource="Sudoc">067818234</tef:autoriteExterne></tef:membreJury><tef:membreJury><tef:nom>Khelladi‎</tef:nom><tef:prenom>Djamel Eddine</tef:prenom><tef:autoriteInterne>intervenant_6</tef:autoriteInterne><tef:autoriteExterne autoriteSource="Sudoc">198205589</tef:autoriteExterne></tef:membreJury><tef:membreJury><tef:nom>Nadi</tef:nom><tef:prenom>Sarah</tef:prenom><tef:autoriteInterne>intervenant_8</tef:autoriteInterne><tef:autoriteExterne autoriteSource="Sudoc">289473683</tef:autoriteExterne></tef:membreJury><tef:rapporteur><tef:nom>Benavides</tef:nom><tef:prenom>David</tef:prenom><tef:autoriteInterne>intervenant_4</tef:autoriteInterne><tef:autoriteExterne autoriteSource="Sudoc">187874611</tef:autoriteExterne></tef:rapporteur><tef:rapporteur><tef:nom>Thüm</tef:nom><tef:prenom>Thomas</tef:prenom><tef:autoriteInterne>intervenant_7</tef:autoriteInterne><tef:autoriteExterne autoriteSource="Sudoc">289473462</tef:autoriteExterne></tef:rapporteur>
      
      
      
      
      <tef:ecoleDoctorale>
       <tef:nom>MATISSE</tef:nom><tef:autoriteInterne>ecoleDoctorale_1</tef:autoriteInterne>
       
       <tef:autoriteExterne autoriteSource="Sudoc">267602553</tef:autoriteExterne>
      </tef:ecoleDoctorale>
      <tef:partenaireRecherche type="laboratoire">
       <tef:nom>
IRISA
</tef:nom><tef:autoriteInterne>partenaireRecherche_1</tef:autoriteInterne>
       
       <tef:autoriteExterne autoriteSource="Sudoc">
026386909
</tef:autoriteExterne>
      </tef:partenaireRecherche>
      <tef:oaiSetSpec>ddc:004</tef:oaiSetSpec>

     
     <tef:MADSAuthority authorityID="intervenant_1" type="personal"><tef:personMADS><mads:namePart type="family">Acher</mads:namePart><mads:namePart type="given">Mathieu</mads:namePart></tef:personMADS></tef:MADSAuthority><tef:MADSAuthority authorityID="intervenant_2" type="personal"><tef:personMADS><mads:namePart type="family">Zendra</mads:namePart><mads:namePart type="given">Olivier</mads:namePart></tef:personMADS></tef:MADSAuthority><tef:MADSAuthority authorityID="intervenant_3" type="personal"><tef:personMADS><mads:namePart type="family">Zacchiroli</mads:namePart><mads:namePart type="given">Stefano</mads:namePart></tef:personMADS></tef:MADSAuthority><tef:MADSAuthority authorityID="intervenant_4" type="personal"><tef:personMADS><mads:namePart type="family">Benavides</mads:namePart><mads:namePart type="given">David</mads:namePart></tef:personMADS></tef:MADSAuthority><tef:MADSAuthority authorityID="intervenant_5" type="personal"><tef:personMADS><mads:namePart type="family">Blay-Fornarino</mads:namePart><mads:namePart type="given">Mireille</mads:namePart></tef:personMADS></tef:MADSAuthority><tef:MADSAuthority authorityID="intervenant_6" type="personal"><tef:personMADS><mads:namePart type="family">Khelladi‎</mads:namePart><mads:namePart type="given">Djamel Eddine</mads:namePart></tef:personMADS></tef:MADSAuthority><tef:MADSAuthority authorityID="intervenant_7" type="personal"><tef:personMADS><mads:namePart type="family">Thüm</mads:namePart><mads:namePart type="given">Thomas</mads:namePart></tef:personMADS></tef:MADSAuthority><tef:MADSAuthority authorityID="intervenant_8" type="personal"><tef:personMADS><mads:namePart type="family">Nadi</mads:namePart><mads:namePart type="given">Sarah</mads:namePart></tef:personMADS></tef:MADSAuthority><tef:MADSAuthority authorityID="thesis.degree.grantor_1" type="corporate"><tef:personMADS><mads:namePart>Université de Rennes</mads:namePart></tef:personMADS></tef:MADSAuthority><tef:MADSAuthority authorityID="ecoleDoctorale_1" type="corporate"><tef:personMADS><mads:namePart>MATISSE</mads:namePart></tef:personMADS></tef:MADSAuthority><tef:MADSAuthority authorityID="partenaireRecherche_1" type="corporate"><tef:personMADS><mads:namePart>
IRISA
</mads:namePart></tef:personMADS></tef:MADSAuthority></tef:thesisAdmin>
				</mets:xmlData>
			</mets:mdWrap>
		</mets:techMD><mets:techMD ID="file_1"><mets:mdWrap MDTYPE="OTHER" OTHERMDTYPE="tef_tech_fichier"><mets:xmlData><tef:meta_fichier>
     <tef:encodage>ASCII</tef:encodage>
     <tef:formatFichier>PDF</tef:formatFichier>
     
     
     
     <tef:taille>1950929</tef:taille>
    </tef:meta_fichier></mets:xmlData></mets:mdWrap></mets:techMD>

		
		
		
		<mets:rightsMD ID="dr_expr_thesard">
			<mets:mdWrap MDTYPE="OTHER" OTHERMDTYPE="tef_droits_auteur_these">
				<mets:xmlData>
					<metsRights:RightsDeclarationMD>
						<metsRights:Context CONTEXTCLASS="GENERAL PUBLIC">
							<metsRights:Permissions DISCOVER="true" COPY="true" DISPLAY="true" DUPLICATE="true" PRINT="true" MODIFY="false" DELETE="false"/>
						</metsRights:Context>
					</metsRights:RightsDeclarationMD>
				</mets:xmlData>
			</mets:mdWrap>
		</mets:rightsMD>
		
		<mets:rightsMD ID="dr_expr_univ">
			<mets:mdWrap MDTYPE="OTHER" OTHERMDTYPE="tef_droits_etablissement_these">
				<mets:xmlData>
					<metsRights:RightsDeclarationMD>
						<metsRights:Context CONTEXTCLASS="GENERAL PUBLIC">
							<metsRights:Permissions DISCOVER="true" COPY="true" DISPLAY="true" DUPLICATE="true" PRINT="true" MODIFY="false" DELETE="false"/>
						</metsRights:Context>
					</metsRights:RightsDeclarationMD>
				</mets:xmlData>
			</mets:mdWrap>
		</mets:rightsMD>
		
		<mets:rightsMD ID="dr_version">
			<mets:mdWrap MDTYPE="OTHER" OTHERMDTYPE="tef_droits_version">
				<mets:xmlData>
					<metsRights:RightsDeclarationMD>
						<metsRights:Context CONTEXTCLASS="GENERAL PUBLIC">
							<metsRights:Permissions DISCOVER="true" COPY="true" DISPLAY="true" DUPLICATE="true" PRINT="true" MODIFY="false" DELETE="false"/>
						</metsRights:Context>
					</metsRights:RightsDeclarationMD>
				</mets:xmlData>
			</mets:mdWrap>
		</mets:rightsMD>
	</mets:amdSec>
	
	<mets:fileSec>
  <mets:fileGrp ID="FGrID1" USE="archive"><mets:file ID="FID1" ADMID="file_1" MIMETYPE="application/pdf" USE="maitre"><mets:FLocat LOCTYPE="URL" xlink:href="https://ged.univ-rennes1.fr/nuxeo/site/esupversions/b981d136-bb56-4bf3-a65c-55e099ced597"/></mets:file></mets:fileGrp>
 </mets:fileSec>

	<mets:structMap TYPE="logical">
		<mets:div TYPE="THESE" DMDID="desc_expr" ADMID="dr_expr_thesard dr_expr_univ admin_expr" CONTENTIDS="http://ori-oai-search.univ-rennes1.fr/uid/rennes1-ori-wf-1-20980/oeuvre">
			<mets:div TYPE="VERSION_COMPLETE" ADMID="dr_version" CONTENTIDS="http://ori-oai-search.univ-rennes1.fr/uid/rennes1-ori-wf-1-20980/oeuvre/version">
				<mets:div TYPE="EDITION" DMDID="desc_edition" CONTENTIDS="http://ori-oai-search.univ-rennes1.fr/uid/rennes1-ori-wf-1-20980/oeuvre/version/edition">
					<mets:fptr FILEID="FGrID1"/>
				</mets:div>
			</mets:div>
		</mets:div>
	</mets:structMap>
</mets:mets>