Points clés et outils pour les codes sources de la recherche

L’ouverture des codes sources et logiciels, un enjeu de reproductibilité de la recherche

Avoir une démarche de science ouverte pour les codes et logiciels revient à leur appliquer le principe FAIR comme pour les données mais avec des outils spécifiques :

  • Findable : Catalogue de logiciels HAL
  • Accessible : Archive sur Software Heritage
  • Interoperable : Gestion de code source (Git) + langages de programmation standard
  • Reusable : Licence logiciel libre + reproductibilité

L’utilisation de ces outils permet d’introduire des bonnes pratiques de développement, de sauvegarde, de travail collaboratif, de qualité logicielle et de reproductibilité. La démarche de science ouverte est contraignante, mais permet d’améliorer largement nos pratiques dans la production de logiciels de recherche et de leurs utilisations.

  1. Git est un logiciel libre de gestion distribuée de code source conçu pour gérer avec efficacité des projets de petite comme de grande taille. Git est facile à apprendre et très rapide. Il surpasse les autres outils de ce type (Subversion, CVS, Perforce, ClearCase) avec des fonctionnalités de création de branches en local rapides, la gestion d’un index souple et la possibilité d’avoir différents flux de travaux.

    GitLab est également un logiciel libre qui permet d’ajouter une interface web à Git côté serveur. Elle intègre ente autres un suivi des problèmes à résoudre, des outils permettant la revue de code, des outils pour l’intégration continue, la documentation, le travail collaboratif...

    L’université met à disposition un serveur GitLab à tous les personnels ainsi qu'à certains étudiants sur demande : Git UPPA 

  2. L’université de Grenoble a réalisé une synthèse du cadre juridique. En pratique, ajouter une licence à son logiciel consiste à le diffuser avec un fichier LICENCE qui contient les termes de la licence choisies.

    Cet outil est un assistant qui peut vous aider à choisir la licence pertinente pour votre logiciel.

  3. Software Heritage est une initiative d’Inria soutenue par l’Unesco qui vise à préserver et archiver le code source de tous les logiciels accessibles publiquement. La plateforme collecte et organise les dépôts de code source pour créer un référentiel universel et durable du patrimoine logiciel mondial. Cela permet de préserver la connaissance informatique, d'analyser l'évolution des logiciels et de favoriser l'apprentissage et la recherche en informatique. Ainsi, même si une forge comme le serveur GitLab de l’université venait à disparaître, votre code serait toujours accessible sur l’archive Software Heritage. Une fois le code source chargé sur la plateforme, il est possible d'obtenir un identifiant SWHID permettant de référencer le logiciel.

  4. L’archive ouverte HAL offre un espace de dépôt pour les chercheurs afin qu'ils puissent rendre leurs articles scientifiques et leurs logiciels accessibles gratuitement en ligne. Cela favorise la diffusion des connaissances scientifiques et permet au grand public ainsi qu'aux chercheurs d'accéder à des recherches de qualité dans différents domaines. HAL contribue ainsi à la libre circulation des connaissances et au partage ouvert des avancées scientifiques.

    L’outil Code Meta permet de saisir les métadonnées de votre logiciel de manière standard et facilite le dépôt de votre application dans HAL.

  5. Le concept de reproductibilité est devenu un point essentiel de la confiance en la science. La version des bibliothèques et logiciels que vous utilisez ne suffit pas toujours à reproduire à l’identique l’environnement logiciel utilisé à un instant t.

    Des outils comme Guix ou Nix permettent de reproduire au bit près n’importe quelle pile logicielle qu’ils ont fournie par le passé car ils stockent non seulement les numéros de versions, mais également l’historique des recettes de compilation de tous les paquets qu’ils sont capables de fournir. Cela inclut les outils faisant partie des chaînes de compilations nécessaires à leur construction. L’utilisation de ces outils permet de s’assurer qu’on sera toujours capables d’exécuter le logiciel dans son environnement dans plusieurs années.