Déposer le code source d’un logiciel

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. Le dépôt dans HAL permet la citabilité, l’archivage étant pris en charge par Software Heritage.

Pour être transféré à Software Heritage, le fichier déposé doit être sous licence libre et ne peut pas être sous embargo.

Quel logiciel déposer dans HAL/Software Heritage ?

La fonctionnalité de dépôt actuelle permet de déposer seulement une archive aux formats zip ou tar.gz. On ne peut donc pas archiver tout un historique de développement, mais seulement un répertoire contenant des fichiers sources à un moment donné. L’usage de cette fonctionnalité est pour l’instant déconseillée aux chercheurs qui utilisent des systèmes de contrôle de version et qui souhaitent archiver aussi l’historique de développement.

Préparation du code source

Avant de commencer le dépôt, préparer le code source du logiciel en ajoutant les fichiers suivants:

  • README  : décrit le logiciel que vous déposez, voir aussi Make a README
  • AUTHORS  : contient la liste des auteurs et des contributeurs éventuels
  • LICENSE : décrit les droits d’utilisations du code source déposé (à choisir en collaboration avec les services de valorisation des organismes de rattachement des auteurs). voir aussi la section Choisir une licence pour un code source de logiciel dans la documentation.

Puis créer une archive .zip et nommer l’archive avec le nom du logiciel et sa version.

Le formulaire de dépôt sur HAL

Cliquer sur l’onglet Dépôt.

Section Déposer le(s) fichier(s)

Télécharger l’archive compressée. Il n’est pas possible d’ajouter plusieurs archives ou plusieurs fichiers distincts. Le .zip doit contenir tous les fichiers. La taille maximum est 200 M0.

Section Métadonnées du document

Vérifier que le type de document sélectionné automatiquement est bien »Logiciel »,  puis compléter les métadonnées obligatoires :

  • le titre du logiciel,
  • la licence (celle mentionnée dans le fichier LICENSE)
  • le domaine : il peut être renseigné avant le dépôt dans Profil/Mes préférences de dépôt.

Pour ajouter d’autres informations, afficher la liste complète des métadonnées :

  • 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
  • Métadonnées spécifiques aux logiciels :
    • Langage de programmation
    • Code repository : lien où se trouve 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)

Métadonnées auteur

Il est recommandé de renseigner le/les auteurs qui sont mentionnés dans le fichier AUTHORS puis renseigner au moins une affiliation.

Des fonctions peuvent être attribuées aux auteurs :

  • Auteur
  • Développeur
  • Mainteneur
  • Contributeur

Voir aussi  Auteurs et affiliations

Il est possible d’ajouter un fichier CONTRIBUTORS pour les personnes qui ne sont pas auteurs dans la notice.

Conditions de transfert vers Software Heritage

Validez le transfert puis enregistrer le dépôt.

Les dépôts sont modérés avant d’être mis en ligne : voir aussi le guide du modérateur de logiciel.

L’identification du logiciel et du code source

Si vous aviez accepté l’archivage du dépôt sur Software Heritage, un identifiant direct au code source sera inclus dans la notice HAL et dans le format de citation. Cet identifiant est un swh-id ayant le format swh:1:dir:aaaaaaaaaaaaaaaaaaaaaaaaaaa.

Il est calculé par Software Heritage à travers des fonctions de hachages cryptographiques pendant l’ingestion de vos codes dans l’archive globale. Le swh-id comme une empreinte digitale du logiciel est intrinsèque, pérenne et unique et ne dépend pas d’un résolveur. Pour reproduire une expérience, il est indispensable de connaître avec exactitude la version du logiciel, ce que permet le swh-id. Avec le swh-id 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.

Comment utiliser l’identifiant pérenne?

Software Heritage garantit un identifiant stable à très long terme et chaque version du schéma d’identification sera entretenu même quand celui-ci sera étiqueté obsolète (dans le cas de collisions sur les hachages SHA1). Par ailleurs, l’identifiant n’est pas une url mais celui-ci est résolvable sur plusieurs résolveurs, y compris le résolveur Software Heritage : https://archive.softwareheritage.org/

L’url neutre et l’url contextuel – Le swh-id peut être utilisé dans une url tel quel ou de manière contextuelle, afin d’afficher sur la web-app de l’archive des informations complémentaires concernant l’origine de l’objet référencé.

  • L’url neutre vers l’objet déposé avec l’identifiant :
swh:1:rev:a27a59f6b14c9fb13a6f998d8316628dafc1f60c

  • L’url contextuelle qui permet l’association de l’objet à son origine :
swh:1:rev:a27a59f6b14c9fb13a6f998d8316628dafc1f60c;origin=https://hal.archivesouvertes.fr/hal-01727745

La citation d’un logiciel

Le logiciel est un produit légitime et citable de recherche. Le format de citation proposé sur HAL contient une partie des métadonnées obligatoires soumises avec le logiciel et les identifiants pérennes qui permettent de le localiser.

Un exemple de citation :

Quelques ressources

  • Les documents de référence PLUME pour mieux gérer les développements logiciels, les diffuser et les valoriser dans un laboratoire constituent une mine d’informations. A lire plus précisément les recommandations juridiques et administratives pour diffuser un logiciel de laboratoire
  • DMP : Teresa Gomez-Diaz, Genevieve Romier. Research Software Management Plan template, V3.2. Bilingual document (FR/EN). 2018. 〈hal-01802565〉
  • Roberto Di Cosmo, Morane Gruenpeter, Stefano Zacchiroli. Identifiers for Digital Objects: the Case of Software Source Code Preservation. iPRES 2018 – 15th International Conference on Digital Preservation, Sep 2018, Boston, United States. pp.1-9. hal-01865790
  • M. Jackson, Software Deposit: Guidance for Researchers, 7/08/2018,
  • Teresa Gomez-Diaz. Article vs. Logiciel : questions juridiques et de politique scientifique dans la production de logiciels. 1024 : Bulletin de la Société Informatique de France, Société Informatique de France, 2015, hal-01158010

 

Télécharger le guide du déposant (pdf).