archiver le code source
L’archive Software Heritage est l’endoit où le code source doit être déposé pour y être archivé. En effet, les forges ont une durée de vie limitée aux capacités des institutions qui les hébergent. Certaines forges commerciales ou institutionnelles ont du être fermées par le passé et les auteurs qui n’ont pas eu le temps ou la présence d’esprit de faire migrer leurs codes source les ont perdu définitivement. Cela ne risque pas d’arriver avec Software Heritage qui repose sur une fondation soutenue en France par l’INRIA et au niveau international par l’UNESCO. Par ailleurs, Software Heritage attribue à chaque repository un identifiant unique qui peut être affiné et décliné au niveau du dossier, du fichier voire de la ligne de code. Cet identifiant unique, le SWHID, comme Software Heritage ID est reconnu comme une norme internationale depuis 2025
rédiger le fichier CODEMETA
La standardisation du fichier CODEMETA, fichier qui traditionnellement décrit les métadonnées d’un code source a été réalisée en 2015 par la FORCE11 software Citation working group 📓1
Ce fichier normalisé facilite l’archivage du Code et détaillant :
- les auteurs
- les licences
- la date
- la version du code archivée
- l’identification unique
- le financeur
- le répertoire de versement
- l’URL vers la gestion des bugs
- l’environnement (système d’exploitation, version du compilation, langages utilisés, la référence de la publication associée)
Le codemeta est aujourd’hui plus couramment écrit en JSON mais cela n’exclut pas l’usage à cette fin d’autres langages possibles (YAML notamment) 📓2:
Various file formats to encode this meta-data are surmisable. Among others there are: ini (Initialization File), xml (Extensible Markup Language), yaml ([[YAML]] Ain’t Markup Language) and json (Javascript Object Notation), which is suggested in [46, 26]. Basic requirements for such a file are a plain text encoding and a human readable formatting. Additionally, a simple syntax26 as well as the availability of parsing facilities should be considered. Due to its renownedness and easy readability for human and machine, the authors suggest to use the ini file format, as the more elaborate grammars xml, yaml and json require sophisticated parsers.
si on veut lier une publication à un logiciel, on peut aussi fournir dans le codemeta dans l’attribut “reference publication” le nom de la publication, le lien apparaîtra cliquable dans Software Heritage.
pour générer un fichier codemeta sans passer par la rédaction d’un document en Javascript, on peut utiliser un formulaire en ligne
déposer le code source dans Software Heritage
Il est recommandé de déposer du code source à partir d’un outil de contrôle de version (par exemple une forge git, svn, codeberg, forgejo, etc) Pour déposer le repository depuis cette forge, aller sur la page de dépôt, sélectionner la forge utilisée et entrer l’URL du repository Pendant quelques secondes à quelques minutes, votre dépôt aura un statut “en attente” (pending), puis son statut passera en “accepté” (accepted) A partir de ce moment, votre code est archivé et citable au moyen d’un SWHID. Vous pouvez archiver autant de versions de ce code que vous le souhaitez. Chaque version aura un SWHID différent et pourra être citée de façon distincte.
voici le SWHID (version longue) de l’archive correspondant à ce tutoriel (version du 2 mars 2026, à 17h17) :
et dans sa version courte (plus facile à insérer dans une bibliographie)
swh:1:dir:3a849c84401e49eee66090952be47b39295a399e
voici maintenant le SWHID correspondant à la page que vous êtes en train de lire :
et enfin voici le SWHID correspondant précisément à cette même ligne de texte :
Les gestionnaires de Software Heritage ont mis au point un paquet pour \(\LaTeX\) qui permet de saisir ce SWHID dans une référence bibliographique.
Tout est fait par conséquent pour simplifier la mention de code source dans une publication.
signaler la publication dans HAL
Maintenant que le code source est archivé dans Software Heritage, il est important qu’il soit signalé dans HAL et rapporté aux études dans lesquelles les résultats qu’il a permis d’obtenir ont été publiés. Pour automatiser le processus de l’envoi des métadonnées depuis Software Heritage vers HAL, on va utiliser les propriétés du CODEMETA. Pour cela, il faut aller sur HAL et cliquer sur le bouton déposer après s’être identifié. Puis choisir le type de document (logiciel) et enfin fournir le SWHID du dépôt dans Software Heritage dans le champ prévu à cet effet :
Lorsqu’on aura cliqué sur récupérer les métadonnées, les informations du fichier CODEMETA vont servir à peupler l’enregistrement dans HAL. Au besoin compléter les informations qui manqueraient toujours après cet import.
Le catalogue des logiciels de recherche de l’enseignement supérieur et de la Recherche
Ce catalogue ouvert en 2025 rend visible et valoriser du code source et des applications produites par des chercheuses et des chercheurs dans le cadre de leur activité de recherche. Pour que votre code source il figure, il faut que votre dépôt réunisse plusieurs conditions, dont :
- le signalement du code source dans HAL (un HAL-ID doit être attribué au code source)
- le dépôt du code source dans Software ID (un SWHID doit être attribué au code source)
- le dépôt doit contenir un jeu de métadonnées suffisant (le CODEMETA correctement complété fera l’affaire)
S’il observe ces trois conditions, le dépôt dans HAL finira par être visible dans le catalogue des logiciels de l’ESR, ce qui lui assurera une publicité supplémentaire.