Les historiens et les futures générations de développeurs peuvent remercier GitHub. Ces derniers pourront en effet dénicher les premières lignes de code open source Linux, Ruby ou Python enfouies à plus de 75 mètres sous terre dans trois bibliothèques historiques en Grande-Bretagne, Égypte et Californie. Il s'agit là de l'expansion d'un programme d'archivage annoncé l'année dernière lors de l'événement Univers de la plateforme collaborative et d'hébergement de code pour préserver les logiciels open source de la même manière que des œuvres d'art ou de littérature. En imprimant des référentiels open source historiquement pertinents sur des bobines de piqlFilm (film d'archives photosensibles numériques), GitHub - qui a été acquis par Microsoft en 2018 - espère préserver une trace des logiciels open source pour les générations futures.
Ce programme comprend aussi un stockage d'une archive de code dans l'Arctic World Archive à Svalbard, en Norvège, à seulement 1,6 km du célèbre Global Seed Vault, en stockant 186 bobines de piqlFilm et 21 To de données de dépôt dans une mine de charbon désaffectée à 250 mètres de profondeur. Exécuté en partenariat avec la Long Now Foundation, l'Internet Archive, la Software Heritage Foundation, l'Arctic World Archive et Microsoft Research, ce programme vise à préserver les versions « chaudes » et « froides » du code pour garantir de multiples copies et formats de logiciels selon une approche baptisée « LOCKSS » par les archivistes, ou Lots Of Copies Keeps Stuff Safe.
Préserver les projets star de Github
Aujourd'hui, le projet se développe en faisant don de bobines de microfilms durcis à la Bodleian Library, vieille de 400 ans (Université d'Oxford en Angleterre), la Bibliotheca Alexandrina (Égypte) et les bibliothèques de Stanford en Californie, sans oublier une copie dans la bibliothèque du siège de GitHub à San Francisco. GitHub préserve ainsi ses référentiels les plus populaires par le nombre d'étoiles donné par la communauté, y compris des projets comme Linux et Android et des langages de programmation comme Ruby and Go. L'entreprise préserve également 5 000 référentiels choisis au hasard. «L'idée derrière cela, c'est que lorsque vous revenez dans l'histoire, nous voulons préserver le travail des développeurs individuels, des étudiants et des petits développeurs moins connus et de leurs projets open source», a déclaré Thomas Dohmke, vice-président des programmes stratégiques chez GitHub à InfoWorld.
De par sa nature même, le logiciel open source n'est pas une chose statique à préserver, il est collaboratif et toujours en évolution. L'intention n'est pas de stocker des copies qui peuvent être démarrées et exécutées à l'avenir, bien que cela puisse être possible. Au lieu de cela, l'idée est de préserver un moment dans le temps, où l'open source est devenu le premier mode de développement logiciel, et de tracer la signification culturelle de ce mouvement. « Une plate-forme comme GitHub peut brosser un tableau d’une large diffusion de la communauté des développeurs de logiciels à travers le monde à un moment donné», nous a expliqué Richard Ovenden, bibliothécaire de Bodley et président de la Digital Preservation Coalition.
Préserver un pan de l'histoire des codes open source
« Nous pensons qu'il vaut la peine de préserver les logiciels et la façon dont les gens ont travaillé ensemble à travers le monde pour contribuer et réviser le code source. Il y a là quelque chose de culturel qui vaut la peine d'être préservé », a ajouté de son côté Thomas Dohmke de GitHub. L'archive est construite pour deux types de personnes, selon Dohmke, « les historiens et futurs développeurs de logiciels curieux de savoir comment les logiciels ont été développés à cette époque ». Chaque don est spécialement emballé à l'aide d'une combinaison d'impression 3D et d'art généré par l'IA par l'ingénieur et artiste Alex Maki-Jokela. Vous pouvez en savoir plus sur son travail sur Medium. Tout le code archivé comprendra également des guides techniques sur le décodage QR, les formats de fichiers, les encodages de caractères et d'autres métadonnées critiques afin que les futurs développeurs puissent le décoder. « Le stockage n'est pas la même chose que la conservation, vous devez faire autre chose », a déclaré Ovenden.