# Dfinitions de construction indpendantes de leur origine > [! remarque]- > Le contenu de cette page est généré à partir de la transcription audio/vidéo et de la transformation du texte provenant du contenu et des liens de cette source. Source : [https://fosdem.org/2025/schedule/event/fosdem-2025-4337-treating-build-definitions-independent-of-their-origin/](https://fosdem.org/2025/schedule/event/fosdem-2025-4337-treating-build-definitions-independent-of-their-origin/) <video src=« https://video.fosdem.org/2025/h2215/fosdem-2025-4337-treating-build-definitions-independent-of-their-origin.av1.webm » controls></video> ## Résumé et points forts : Cette session explore comment traiter les définitions de construction indépendamment de leur origine, en se concentrant sur le contenu plutôt que sur l'emplacement des fichiers. **Introduction aux systèmes de construction**: Les systèmes de construction traditionnels, comme Make, se basent sur les emplacements des fichiers. Ce talk propose de se concentrer sur les définitions elles-mêmes pour permettre un cache plus efficace et une transition fluide entre la construction granulaire et la construction de paquets. **Utilisation de JustBuild**: JustBuild est un système de construction open-source qui implémente ces concepts, permettant l'exécution de constructions à distance avec seulement les sources nécessaires, tout en bénéficiant d'une construction déjà amorcée. **Avantages pour le développement durable**: En optimisant la construction logicielle, on réduit les ressources nécessaires et on améliore l'efficacité, contribuant ainsi à un développement plus durable. ## Importance pour une transformation écosociale L'importance de cette session pour une transformation écosociale réside dans l'optimisation des processus de construction logicielle, réduisant les ressources nécessaires et améliorant l'efficacité. Les questions durables incluent la réduction de l'empreinte écologique des développements logiciels. Pour les designers écosociaux, utiliser des outils comme JustBuild peut faciliter la gestion des dépendances et améliorer la collaboration à distance. Les défis incluent l'adoption généralisée de ces méthodes et la gestion des infrastructures nécessaires pour le cache et l'exécution à distance. ## Slides: | | | | --- | --- | | ![[FOSDEM 2025/assets/Treating-build-definitions-independent-of-their-or/preview_001.jpg\|300]] | La première diapositive présente une vue d'ensemble des définitions d'actions, de cibles et de dépôts, ainsi que la manière dont elles peuvent être servies. Klaus Aehlig introduit le concept de traitement des définitions de construction indépendamment de leur origine, soulignant l'importance de se concentrer sur les définitions elles-mêmes plutôt que sur leur emplacement. | ![[FOSDEM 2025/assets/Treating-build-definitions-independent-of-their-or/preview_002.jpg\|300]] | La deuxième diapositive discute de l'utilisation des Makefiles, qui se concentrent sur les fichiers identifiés par leur chemin et les actions pour leurs effets secondaires. Elle propose de se concentrer sur les définitions réelles plutôt que sur les chemins des fichiers, pour une meilleure gestion des dépendances et des actions. | ![[FOSDEM 2025/assets/Treating-build-definitions-independent-of-their-or/preview_003.jpg\|300]] | La troisième diapositive explique comment les objets définis peuvent être décrits comme le résultat d'une action particulière, en utilisant des identifiants de hachage pour définir les fichiers par leur contenu plutôt que par leur emplacement. | ![[FOSDEM 2025/assets/Treating-build-definitions-independent-of-their-or/preview_004.jpg\|300]] | La quatrième diapositive détaille comment une action est définie, y compris les commandes à exécuter, les variables d'environnement et les entrées nécessaires pour produire un fichier de sortie spécifique, en soulignant l'indépendance de l'action par rapport à son emplacement d'exécution. | ![[FOSDEM 2025/assets/Treating-build-definitions-independent-of-their-or/preview_005.jpg\|300]] | La cinquième diapositive montre comment un artefact, comme une bibliothèque, peut être défini comme le résultat d'une action particulière, en utilisant des identifiants de hachage pour garantir l'indépendance de la définition par rapport à l'origine. | ![[FOSDEM 2025/assets/Treating-build-definitions-independent-of-their-or/preview_006.jpg\|300]] | La sixième diapositive décrit une action en termes de commandes et d'entrées nécessaires pour produire un artefact, en soulignant l'utilisation des variables d'environnement et la manière dont les fichiers d'entrée sont définis par leur contenu. | ![[FOSDEM 2025/assets/Treating-build-definitions-independent-of-their-or/preview_007.jpg\|300]] | La septième diapositive discute de la définition des artefacts en utilisant des identifiants de hachage pour les fichiers source et les sorties d'action, permettant une évaluation et une mise en cache des actions indépendamment de leur provenance. | ![[FOSDEM 2025/assets/Treating-build-definitions-independent-of-their-or/preview_008.jpg\|300]] | La huitième diapositive revisite le Makefile, mettant en évidence la structure implicite des bibliothèques et des dépendances, et propose de rendre cette structure explicite pour une meilleure gestion des dépendances. | ![[FOSDEM 2025/assets/Treating-build-definitions-independent-of-their-or/preview_009.jpg\|300]] | La neuvième diapositive fournit une description plus structurée des cibles, en utilisant des règles spécifiques au langage pour définir des unités logiques comme des bibliothèques et des binaires, et en rendant explicites les dépendances entre elles. | ![[FOSDEM 2025/assets/Treating-build-definitions-independent-of-their-or/preview_010.jpg\|300]] | La dixième diapositive présente le résultat de l'analyse d'une cible, en montrant comment les artefacts sont définis et les arguments de compilation et de liaison nécessaires pour utiliser une bibliothèque spécifique. | ![[FOSDEM 2025/assets/Treating-build-definitions-independent-of-their-or/preview_011.jpg\|300]] | La onzième diapositive montre le résultat de l'analyse d'une autre cible, en détaillant les artefacts produits, les arguments de liaison et les dépendances nécessaires pour utiliser la bibliothèque analysée. | ![[FOSDEM 2025/assets/Treating-build-definitions-independent-of-their-or/preview_012.jpg\|300]] | La douzième diapositive présente le résultat évalué de l'analyse d'une cible, montrant comment les artefacts et les dépendances sont définis, et comment les arguments de compilation et de liaison sont utilisés. | ![[FOSDEM 2025/assets/Treating-build-definitions-independent-of-their-or/preview_013.jpg\|300]] | La treizième diapositive discute de la définition des unités logiques telles que les bibliothèques et les binaires, en utilisant des règles spécifiques au langage et en fournissant une description intentionnelle des artefacts nécessaires pour d'autres cibles. | ![[FOSDEM 2025/assets/Treating-build-definitions-independent-of-their-or/preview_014.jpg\|300]] | La quatorzième diapositive montre la description des cibles jusqu'à présent, en utilisant des règles spécifiques au langage pour définir les bibliothèques et les binaires, et en rendant explicites les dépendances entre elles. | ![[FOSDEM 2025/assets/Treating-build-definitions-independent-of-their-or/preview_015.jpg\|300]] | La quinzième diapositive montre la description des cibles avec une cible marquée comme exportée, en utilisant des règles spécifiques au langage et en spécifiant les configurations flexibles pour les outils de construction. | ![[FOSDEM 2025/assets/Treating-build-definitions-independent-of-their-or/preview_016.jpg\|300]] | La seizième diapositive présente la configuration du dépôt, écrite par l'utilisateur, en spécifiant les types de dépôts et les chemins associés, ainsi que les règles de liaison pour les cibles. | ![[FOSDEM 2025/assets/Treating-build-definitions-independent-of-their-or/preview_017.jpg\|300]] | La dix-septième diapositive présente la configuration dérivée du dépôt, montrant les racines des espaces de travail et les identifiants des arbres Git utilisés pour définir les dépôts. | ![[FOSDEM 2025/assets/Treating-build-definitions-independent-of-their-or/preview_018.jpg\|300]] | La dix-huitième diapositive montre le processus d'analyse d'une cible, en détaillant les étapes de configuration des dépôts, les cibles exportées et les résultats de l'analyse. | ![[FOSDEM 2025/assets/Treating-build-definitions-independent-of-their-or/preview_019.jpg\|300]] | La dix-neuvième diapositive présente la clé de cache utilisée pour une cible, en montrant la configuration effective, la clé de dépôt et le nom de la cible. | ![[FOSDEM 2025/assets/Treating-build-definitions-independent-of-their-or/preview_020.jpg\|300]] | La vingtième diapositive montre la description du dépôt référencée par la clé, en détaillant les racines des espaces de travail et les fichiers de règles associés aux cibles. | ![[FOSDEM 2025/assets/Treating-build-definitions-independent-of-their-or/preview_021.jpg\|300]] | La vingt-et-unième diapositive montre le processus de construction d'une cible dépendant d'une autre, en détaillant les étapes de configuration des dépôts, les actions découvertes et les artefacts construits. | ![[FOSDEM 2025/assets/Treating-build-definitions-independent-of-their-or/preview_022.jpg\|300]] | La vingt-deuxième diapositive montre le processus d'analyse d'une cible, en détaillant les étapes de configuration des dépôts, les cibles exportées et les résultats de l'analyse, avec une cible prise du cache. | ![[FOSDEM 2025/assets/Treating-build-definitions-independent-of-their-or/preview_023.jpg\|300]] | La vingt-troisième diapositive montre qu'il n'y a rien à construire pour une cible, en détaillant les étapes de configuration des dépôts, les cibles exportées et les artefacts construits à partir du cache. | ![[FOSDEM 2025/assets/Treating-build-definitions-independent-of-their-or/preview_024.jpg\|300]] | La vingt-quatrième diapositive discute de l'identifiant de l'arbre comme fonction des descriptions typiques de la racine du dépôt, et de la manière dont ce mappage peut être fourni en tant que service pour évaluer et mettre en cache les cibles. | ![[FOSDEM 2025/assets/Treating-build-definitions-independent-of-their-or/preview_025.jpg\|300]] | La vingt-cinquième diapositive résume la présentation, soulignant que les définitions sont des structures de données à part entière, et que se concentrer sur la manière dont les choses sont définies plutôt que sur leur emplacement permet une transition fluide entre la construction et la construction de paquets. ## Liens [Slides](https://fosdem.org/2025/events/attachments/fosdem-2025-4337-treating-build-definitions-independent-of-their-origin/slides/238042/slides_6NiZ0zS.pdf) [Video recording (AV1/WebM)](https://video.fosdem.org/2025/h2215/fosdem-2025-4337-treating-build-definitions-independent-of-their-origin.av1.webm) [Video recording (MP4)](https://video.fosdem.org/2025/h2215/fosdem-2025-4337-treating-build-definitions-independent-of-their-origin.av1.mp4) [Video recording subtitle file (VTT)](https://video.fosdem.org/2025/h2215/fosdem-2025-4337-treating-build-definitions-independent-of-their-origin.vtt) [Chat room(web)](https://fosdem.org/2025/chat/) [Chat room(app)](https://fosdem.org/2025/chat/app)