Codes sources de la recherche

Codes sources de la recherche

Sommaire

  1. En pratique
    1. Étape 1 : Utilisez un dépôt public avec un gestionnaire de code source
    2. Étape 2 : Ajoutez une licence
    3. Étape 3 :  Archivez votre code et déposez-le dans un registre communautaire afin de faciliter sa citation et sa découverte par d'autres
    4. Étape 4 : Mettez en œuvre des outils et des méthodologies pour assurer la reproductibilité
  2. Gestionnaire de code source
  3. Licences et questions juridiques
  4. Archivage
  5. Diffusion
  6. Reproductibilité
  7. Codes sources de la recherche à l’UPPA
  8. Nous contacter

Avoir une démarche de science ouverte pour les codes et logiciels (plus de contenu et références) 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 a pour effet de bord 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 ces contraintes imposées permettent d’améliorer nos pratiques dans la production de logiciels de recherche.

En pratique

Étape 1 : Utilisez un dépôt public avec un gestionnaire de code source

Le développement de logiciels scientifiques dans des dépôts accessibles au public permet une implication en temps opportun des utilisateurs. L'utilisation d'un système de contrôle de version vous permet de suivre facilement les modifications de votre logiciel, aussi bien vos propres modifications que celles apportées par les collaborateurs.

GitLab UPPA

Personnel de l'UPPA : en cas de problème pour accéder à GitLab UPPA, merci de déposer une demande via l'assistance en ligne (Service 'Assistance Informatique').

Étape 2 : Ajoutez une licence

Toute œuvre créative est protégée par le droit d'auteur. Même lorsque le logiciel est disponible via des plateformes de partage de code telles que GitLab, personne ne peut l'utiliser à moins d'en avoir explicitement l'autorisation. Ajouter une licence logiciel libre définit l'ensemble des règles et conditions pour les personnes qui souhaitent utiliser le logiciel.

{?} Choisir une licence open source

Étape 3 :  Archivez votre code et déposez-le dans un registre communautaire afin de faciliter sa citation et sa découverte par d'autres

Les archives ouvertes accueillent les logiciels au même titre que les publications. Elles facilitent leur découverte grâce à des mots-clés spéciaux (métadonnées) pour trier et rechercher plus aisément les logiciels. Il existe des outils pratiques pour gérer ces mots-clés et rendre votre application plus visible.

Déposez vos codes dans Software Heritage et HAL

Étape 4 : Mettez en œuvre des outils et des méthodologies pour assurer la reproductibilité

La reproductibilité scientifique repose sur des outils tels que Guix et Nix, qui enregistrent minutieusement les versions et l'historique de compilation des composants logiciels, y compris les éléments des chaînes de compilation. Ces données permettent de reconstituer précisément les environnements passés, garantissant la validité à long terme des résultats de recherche.

Outils de reproductibilité

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é. 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.

 

Gestionnaire de code source

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

Licences et questions juridiques

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.

Archivage

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.

Diffusion

HAL (Hyper Articles en Ligne)  est une plateforme qui 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 CodeMeta 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.

Support et vidéo du webinaire de la Cellule Data Grenoble Alpes «Tout ce que vous avez toujours voulu savoir sur le signalement des logiciels de recherche grâce à HAL et à Software Heritage»

Reproductibilité

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.

L’Université de Grenoble propose une synthèse intéressante.

Codes sources de la recherche à l’UPPA

Des formations Git et GitLab sont proposées aux doctorants tous les ans (à l’automne) dans le cadre des formations de l’école doctorale.

 

Nous contacter

Pour toute question autour des codes sources de la recherche, vous pouvez déposer une demande d'assistance sur https://portail.univ-pau.fr/helpdesk/stylesheets/ticketAdd.faces

  • Ajouter un ticket -> Service ‘Science Ouverte’ -> Signaler un incident, demander une information ou une amélioration
  • Spécifier le thème « Codes sources » et votre sujet dans l’objet de votre ticket. Exemple : Codes sources - diffusion du code nom_du_code