lier des publications, des logiciels et des jeux de données. Inversement, si le logiciel est déjà archivé dans Software Heritage, son dépôt dans HAL est facilité. De plus, tout l’historique de développement du logiciel sera aussi accessible.
Quel logiciel déposer dans HAL/Software Heritage ?
Qu’appelle-t-on un logiciel de recherche ? Quels types de logiciels sont éligibles ?
Ainsi que le rappelle la définition du collège “Logiciels et code source”, du Comité pour la science ouverte”, “[Les logiciels] peuvent se formaliser de différentes façons (une plateforme, un intergiciel, un workflow ou une bibliothèque, module ou greffon d’un autre logiciel) et être ainsi en interaction dans un écosystème ou au contraire plus autonomes.” (Voir la source )
Concrètement, peut être considéré comme un logiciel de recherche : “ [...] a 50 line bash shell script for manipulating and filtering files, a collection of 50 line R scripts for running a bioinformatics analysis, 10,000 lines of Java for medical image analysis or 100,000 lines of Fortran using MPI for computational fluid dynamics are all examples of research software”. (Voir la source)
Les exécutables permettent à une machine d’exécuter le code source ; cette traduction peut être réalisée en amont de l’utilisation du logiciel ou à la volée. Mais les informations essentielles d’un logiciel sont contenues dans son code source. Ainsi, on peut ré-exécuter un logiciel si on dispose du code source mais pas de ses exécutables, mais l’inverse n’est pas vrai.
2 modalités de dépôt selon les modalités de développement
Vous n’avez pas utilisé une plateforme de développement en ligne intégrant un outil de contrôle de version ? Choisissez l’option 1.
Vous avez utilisé une plateforme de développement en ligne intégrant un outil de contrôle de version ? Conservez l’historique de développement du logiciel en choisissant l’option 2.
Option 1 : Le logiciel a été développé en dehors d’une plateforme de développement en ligne, en local
Exemples de cas d’usage : le logiciel est partagé via un site web personnel ou institutionnel classique, sans fonctionnalité de développement dédiée. Le logiciel est disponible sur l’ordinateur de son auteur, en local uniquement.
Cette option permet de déposer une archive aux formats zip ou tar.gz. On ne peut donc pas archiver tout un historique de développement, mais uniquement un répertoire contenant des fichiers sources à un moment donné. L’usage de cette option de dépôt est déconseillé aux chercheurs qui utilisent des systèmes de contrôle de version et qui souhaitent archiver aussi l’historique de développement. L’option 2 est préférable.
Avant le dépôt dans HAL, en local
1 . AJOUTER les informations sur les auteurs, la licence et le README file dans des fichiers dédiés et nommés explicitement. Note : ces fichiers sont fournis au format Markdown, .md.
README : explique à quels besoins répond le logiciel que vous déposez, voir aussi Make a README
AUTHORS : contient la liste de tous les auteurs et des contributeurs éventuels. Si vous souhaitez mentionner des contributeurs qui n’ont pas vocation à être mentionnés parmi les auteurs (ex. personnes ayant participé à des tests), vous pouvez prévoir un fichier CONTRIBUTORS. Les informations seront intégrées au code repository et visibles par les utilisateurs, mais lorsque quelqu’un cite le logiciel via HAL, ces contributeurs n’apparaissent pas parmi les auteurs.
LICENSE (ou COPYING) : décrit les droits d’utilisation du code source déposé. La licence est à choisir en collaboration avec les services de valorisation des organismes de rattachement des auteurs. Il est notamment possible d’attribuer plusieurs licences à un même logiciel. Voir aussi la section Choisir une licence pour un code source de logiciel.
2 . COMPRESSER les fichiers du code repository dans une archive : .zip, .tar.gz. - Nommer l’archive avec le nom du logiciel ainsi que sa version. - Il n’est pas possible de déposer dans HAL plusieurs archives ou plusieurs fichiers distincts. Le .zip ou .tar.gz. doit contenir tous les fichiers. La taille maximum est 200 M0.
Sur l’interface de HAL, cliquer sur l’onglet “Dépôt”
DEPOSER l’archive zippée.
COMPLETER les métadonnées : le dépôt ne peut pas être achevé tant que les métadonnées obligatoires ne sont pas complétées. Bon à savoir : pour terminer un dépôt, il faut fournir le nom du logiciel, le domaine thématique, les informations de licence, la liste des auteurs. Les autres informations sont facultatives, elles enrichissent la description du logiciel.
Dans la rubrique “Auteurs”, indiquer au moins 1 affiliation. Voir aussi Auteurs et affiliations.
Préciser le domaine : il peut être renseigné avant le dépôt dans Profil/Mes préférences de dépôt.
Champ “Description” : il est recommandé d’avoir une description cohérente avec le contenu du fichier README.
Mots-clés
Date de production
Classification
Projet ANR ou projet européen
Langage de programmation
Platform/OS : le système d’exploitation compatible avec le logiciel
Version : version du logiciel déposé (peut être différente de la version publiée sur HAL)
Etat du développement : l’état du développement du logiciel au moment du dépôt (Concept, WIP, Suspendu, Actif, Inactif)
Outils de développement : les outils de développement associés au logiciel (Framework, middleware, plateforme logicielle)
VALIDER le dépôt.
ENREGISTRER le dépôt. La phase de modération du dépôt débute. La personne chargée de la modération peut être amenée à vous solliciter.
Option 2 : Le logiciel a été développé sur une plateforme de développement en ligne, basée sur un outil de contrôle de version
Vous utilisez des plateformes de développement basées sur des outils de contrôle de version : Gitlab, GitHub, etc.
Cette modalité de dépôt permet de conserver l’historique de développement du logiciel.
Avant le dépôt dans HAL, dans le code repository
AJOUTER les informations sur les auteurs, la licence et le README file dans des fichiers dédiés et nommés explicitement. Note : ces fichiers sont fournis au format Markdown, .md.
README : explique à quels besoins répond le logiciel que vous déposez, voir aussi Make a README
AUTHORS : contient la liste de tous les auteurs et des contributeurs éventuels. Si vous souhaitez mentionner des contributeurs qui n’ont pas vocation à être mentionnés parmi les auteurs (ex. personnes ayant participé à des tests), vous pouvez prévoir un fichier CONTRIBUTORS. Les informations seront intégrées au code repository et visibles par les utilisateurs, mais lorsque quelqu’un cite le logiciel via HAL, ces contributeurs n’apparaissent pas parmi les auteurs.
LICENSE (ou COPYING) : décrit les droits d’utilisation du code source déposé. La licence est à choisir en collaboration avec les services de valorisation des organismes de rattachement des auteurs. Il est notamment possible d’attribuer plusieurs licences à un même logiciel. Voir aussi la section Choisir une licence pour un code source de logiciel dans la documentation.
DECRIRE le logiciel en ajoutant un fichier CodeMeta conçu avec le CodeMeta Generator : ces métadonnées lisibles par les humains et les machines permettent de pré-remplir les champs de HAL et sont directement associées au code source. Le README file indique ce que permet de faire le logiciel. Le fichier CodeMeta décrit le logiciel, son contexte de création.
ARCHIVER le code source sur Software Heritage avec la fonctionnalité “Save Code Now” . Bon à savoir : “Save Code Now” peut être utilisée depuis l’interface de Software Heritage ou depuis la plateforme de développement, pour les utilisateurs de l’extension de navigateur.
OBTENIR le SoftWare Hash Identifier (SWHID) de votre code repository depuis Software Heritage, en utilisant l’onglet “Permalinks” : choisir le SWHID de type “dir”, en laissant cochée la case “informations contextuelles”. Bon à savoir : il n’y a pas de compte à créer sur Software Heritage pour obtenir un SWHID.
Sur l’interface de HAL, cliquer sur l’onglet “Dépôt”
COPIER-COLLER le SoftWare Hash Identifier de votre code repository.
VERIFIER et COMPLETER les métadonnées : le dépôt ne peut pas être achevé tant que les métadonnées obligatoires ne sont pas complétées. Bon à savoir : pour terminer un dépôt, il faut fournir le nom du logiciel, le domaine thématique, les informations de licence, la liste des auteurs. Les autres informations sont facultatives, elles enrichissent la description du logiciel.
Vérifier le résultat de l’extraction des métadonnées du fichier CodeMeta. Les informations figurent-elles dans le champ ad hoc?
Dans la rubrique “Auteurs”, indiquer au moins 1 affiliation. Voir aussi Auteurs et affiliations.
Champ “Description” : il est recommandé d’avoir une description cohérente avec le contenu du fichier README.
Mots-clés
Date de production
Classification
Projet ANR ou projet européen
Langage de programmation
Code repository : vérifier que le lien renvoie bien au contenu attendu et qu’il n’est pas brisé. Il s’agit de renvoyer à la page où est disponible le développement du code (SVN, github, gitlab, CodePlex).
Platform/OS : le système d’exploitation compatible avec le logiciel
Version : version du logiciel déposé (peut être différente de la version publiée sur HAL)
Etat du développement : l’état du développement du logiciel au moment du dépôt (Concept, WIP, Suspendu, Actif, Inactif)
Outils de développement : les outils de développement associés au logiciel (Framework, middleware, plateforme logicielle)
VALIDER le dépôt.
ENREGISTRER le dépôt. La phase de modération du dépôt débute. La personne chargée de la modération peut être amenée à vous solliciter.
Focus sur le transfert vers Software Heritage
Lors des dernières étapes du dépôt, il est possible de choisir de transférer ou non les données vers Software Heritage.
Les données transférées vers Software Heritage varient selon le type de dépôt effectué :
Dépôt option 1, via le dépôt d’archive zippée = l’archivage du code source dans Software Heritage n’est pas antérieur au dépôt dans HAL : les métadonnées ainsi que les fichiers sont transférés vers Software Heritage.
Dépôt option 2, via l’identifiant SWHID = l’archivage du code source dans Software Heritage est antérieur au dépôt dans HAL : les métadonnées sont transférées vers Software Heritage.
Bon à savoir :
Si le logiciel a été déposé dans HAL via les modalités de l’option 1, accepter le transfert vers Software Heritage permet de mettre en ligne les fichiers de code source, qui deviennent ainsi plus faciles à explorer. Si le transfert est refusé, la personne qui souhaite consulter le code source doit télécharger tous les fichiers depuis HAL.
Pour reproduire une expérience, il est indispensable de connaître avec exactitude la version du logiciel, ce que permet le SoftWare Hash IDentifier (SWHID). Avec le SWHID vous pouvez retrouver dans l’archive de Software Heritage vos codes, lire en ligne tous les contenus textuels et télécharger le code source.
Grâce au SWHID, l’identification des logiciels s’effectue sans passer par un registre. en effet, le SWHID est calculé à partir des données du code source lui-même, à la différence d’un identifiant de type DOI qui s’appuie sur un registre externe pour faire le lien entre un objet et sa description. Le SWHID est l’empreinte digitale du logiciel et ne dépend pas d’un résolveur: un utilisateur peut ainsi le calculer localement.
Chaque version du schéma d’identification est entretenue même quand celui-ci sera étiqueté obsolète, dans le cas de collisions sur les hachages SHA1.
Bon à savoir : si pour le dépôt dans HAL, le SWHID de type “directory” est requis, une fois que le code source est archivé dans Software Heritage, il est possible d’obtenir des SWHID pour différents artefacts : un fichier, un commit, quelques lignes de code source dans un fichier donné, etc. Le pré-requis est d’accepter le transfert vers Software Heritage si le dépôt a été effectué selon les modalités de l’option 1.
Le logiciel est une production académique au même titre qu’un article ou un chapitre d’ouvrage. Il ne s’agit pas de citer l’ensemble des logiciels ayant permis de produire les travaux de recherche (ex. un traitement de texte), mais d’identifier les logiciels ayant joué un rôle critique dans la conduite des travaux scientifiques, les outils ayant permis d’aboutir à des résultats significatifs. Il peut aussi être pertinent de citer un logiciel si son utilisation est atypique dans une discipline donnée.
Une pratique courante consiste à citer l’article présentant le logiciel plutôt que de citer le logiciel lui-même. Mais les enjeux liés au cycle de vie du logiciel peuvent rendre cet usage inadapté : il faut renvoyer vers une version précise du logiciel. Ainsi, il est fortement recommandé de citer le logiciel lui-même plutôt que l’article associé.
Le format de citation proposé sur HAL est composé d’une sélection des métadonnées obligatoires soumises lors du dépôt du logiciel. Voici un exemple de citation :
Outre ces métadonnées descriptives, le format de citation inclut aussi des identifiants pérennes qui permettent de localiser précisément le logiciel : “When citing software, it is important to distinguish between a software project, which refers to the software as a concept and its creation environment (and which is not a digital object) and software artifacts themselves (source code, binaries, etc.), which usually are digital objects.” Ainsi, le HAL-ID renvoie vers le logiciel en tant qu'œuvre et le SWHID permet d’accéder aux fichiers qui composent le code source. Bon à savoir : il faut accepter l’archivage du dépôt sur Software Heritage pour qu’un SWHID soit inclus dans la notice HAL et dans les exports de citation.
A propos du déploiement de la fonctionnalité dans HAL
Une collaboration étroite entre Hal-Inria (l’archive ouverte d’Inria), le CCSD et Software Heritage a abouti à la mise en place d’un processus permettant de déposer des codes sources de logiciels via HAL, et leur archivage pérenne dans Software Heritage.