14 KiB
title: "Forges de lâEnseignement supĂ©rieur et de la Recherche" subtitle: DĂ©finition, usages, limitations rencontrĂ©es et analyse des besoins author: "CollĂšge Codes sources et logiciels du ComitĂ© pour la science ouverte" date: Mai 2023 logo: ouvrirlasciencelogo.jpg
cspell:disable
mainfont: Marianne
cspell:enable
toc-title: Sommaire
titlepage-background: "fond_ouvrir_la_science.jpg
{=latex}"
titlepage-text-color: 5A28C8
titlepage-rule-color: 5A28C8
section-color: 5A28C8
caption-color: 5A28C8
table-use-row-colors: true
logo-width: 12cm
colorlinks: true
book: true
classoption: oneside
draft: Document de travail
cspell:disable
header-includes: | \usepackage{tcolorbox} \tcbuselibrary{theorems} \definecolor{box-color1}{HTML}{bbfae9} \newtcbtheorem{observation}{Observation}{left=.3cm,right=.3cm,toptitle=.3cm,bottom=.3cm,middle=.1cm,colback=box-color1,colframe=box-color1,coltitle=black,fonttitle=\bfseries}{th} \definecolor{box-color2}{HTML}{eaeaea} \newtcbtheorem{autre}{à noter aussi }{left=.3cm,right=.3cm,toptitle=.3cm,bottom=.3cm,middle=.1cm,colback=box-color2,colframe=box-color2,coltitle=black,fonttitle=\bfseries}{th} \usepackage[labelfont={color=box-color1,bf},textfont={color=box-color1}]{caption} \definecolor{bar-color1}{HTML}{7846ff} \definecolor{bar-color2}{HTML}{ffe552} \definecolor{coso-title-color}{HTML}{5A28C8} \usepackage{enumitem} \usepackage{titlesec} \usepackage{moresize} \newcommand{\hsp}{\hspace{20pt}} \titleformat{name=\chapter}[hang]{\Huge\bfseries}{\thechapter\hsp|\hsp}{0pt}{\Huge\bfseries} \titlespacing*{\chapter}{-1.5cm}{10pt}{10pt} \titleformat{name=\chapter,numberless}[hang]{\color{coso-title-color}\HUGE\bfseries}{}{0pt}{\color{coso-title-color}\HUGE\bfseries} \titlespacing*{\chapter}{-1.5cm}{10pt}{10pt} \usepackage{wrapfig} \usepackage{afterpage} \usepackage{authoraftertitle} \hyphenation{ac-ti-vi-té ac-ti-vi-tés} \hyphenation{an-cien-nes} \hyphenation{DevLog GitLab OpenAI} \hyphenation{col-la-bo-ra-tion col-la-bo-ra-tions} \hyphenation{comp-ta-bi-li-sé comp-ta-bi-li-sés comp-ta-bi-li-sée comp-ta-bi-li-sées} \hyphenation{de-ve-nue} \hyphenation{Dis-co-ve-ry} \hyphenation{dis-po-ni-bles} \hyphenation{En-sei-gne-ment} \hyphenation{évo-luent} \hyphenation{exem-ple exem-ples} \hyphenation{exi-gen-ce exi-gen-ces} \hyphenation{exis-te exis-tent} \hyphenation{fa-ci-li-té} \hyphenation{fonc-tion-na-li-té fonc-tion-na-li-tés} \hyphenation{gé-né-ra-li-sa-tion} \hyphenation{in-con-tour-na-ble in-con-tour-na-bles} \hyphenation{ins-tan-ce ins-tan-ces} \hyphenation{ins-tau-rer} \hyphenation{ins-ti-tu-tion} \hyphenation{li-mi-té li-mi-tés} \hyphenation{maxi-mum} \hyphenation{orien-tées} \hyphenation{par-ta-gea-ble} \hyphenation{per-mettre per-mettant} \hyphenation{pro-blÚ-me pro-blÚ-mes} \hyphenation{pu-blic} \hyphenation{qua-li-té} \hyphenation{re-la-ti-ve-ment} \hyphenation{respect} \hyphenation{réa-li-sant} \hyphenation{ti-cket ti-ckets} \hyphenation{tui-la-ge} \hyphenation{usa-ge} \hyphenation{uti-li-sa-teur uti-li-sa-teurs} \hyphenation{uti-li-sées} \newcommand{\nbforgestotal}{81} \newcommand{\nbforgesgitlab}{72}
cspell:enable
include-before: | \newpage \newgeometry{margin=0.5in} \color{coso-title-color}{\HUGE\thetitle}
\color{coso-title-color}{\Huge Définition, usages, limitations rencontrées et analyse des besoins}
\color{black} \Large \par\noindent\rule{1.5cm}{1.5pt} CollÚge codes sources et logiciels du Comité pour la science ouverte \par\noindent\rule{1.5cm}{1.5pt} GT 2: Outils et bonnes pratiques techniques et sociales
Daniel LE BERRE (co-pilote GT2)
Université d'Artois/CNRS
Jean-Yves JEANNAS (co-pilote GT2)
Université de Lille/AFUL
Roberto DI COSMO (co-pilote du collĂšge)
Inria/Université Paris Cité
François PELLEGRINI (co-pilote du collÚge)
Université de Bordeaux/CNRS/CNIL
\par\noindent\rule{1.5cm}{1.5pt}
\MyDate
\par\noindent\rule{1.5cm}{1.5pt} \vfill DOI : 10.52949/34 \vfill \normalsize Conception graphique : opixido
\noindent\begin{minipage}{0.2\textwidth} \includegraphics{ccby.png} \end{minipage} \begin{minipage}{0.75\textwidth}\raggedright Except where otherwise noted, this work is licensed under https://creativecommons.org/licenses/by-nd/4.0/deed.fr \end{minipage} \vfill \clearpage \restoregeometry
Résumé
LancĂ©e en 1999, la premiĂšre forge logicielle, SourceForge, a Ă©tĂ© conçue pour permettre aux dĂ©veloppeurs de logiciels libres de construire leurs logiciels de maniĂšre collaborative et de les diffuser auprĂšs de leurs utilisateurs. Depuis, les forges logicielles sont devenues un outil incontournable pour tous les dĂ©veloppeurs de logiciels. Elles intĂšgrent les outils de dĂ©veloppement collaboratif (pour le suivi des modifications du code, la gestion des demandes et des rĂ©ponses dâutilisateurs - tickets -, la gestion des contributions, la gestion du projet), lâindustrialisation du processus de crĂ©ation du logiciel Ă partir de son code source (compilation, tests automatiques, assurance qualitĂ©, diffusion des livrables) et des outils de communication comme des forums.
Une forge logicielle, câest aussi un rĂ©seau social de dĂ©veloppeurs. DĂšs que lâon souhaite favoriser lâutilisation et les contributions autour dâun logiciel, se pose la question de choisir la forge en fonction du public, du rĂ©seau visĂ©. On peut viser un public de dĂ©veloppeurs de lâEnseignement supĂ©rieur et de la Recherche français ou international. Il existe des fĂ©dĂ©rations dâidentitĂ© comme RENATER ou eduGAIN qui permettent depuis longtemps ces collaborations. Plusieurs forges de lâEnseignement supĂ©rieur et de la Recherche donnent accĂšs Ă ces rĂ©seaux de collaboration. Si lâon souhaite ouvrir et partager les codes sources issus de la recherche avec la sociĂ©tĂ© dans son ensemble, deux alternatives existent : les forges communautaires libres ou les forges commerciales. Les forges communautaires libres permettent de diffuser au sein dâune communautĂ© un logiciel libre qui a Ă©tĂ© cooptĂ© par cette communautĂ©. La difficultĂ© est donc de trouver une communautĂ© adaptĂ©e au logiciel que lâon dĂ©veloppe. Les forges commerciales offrent de nombreuses fonctionnalitĂ©s, avec trĂšs peu de contraintes, et souvent de nombreux services quand les logiciels dĂ©veloppĂ©s sont diffusĂ©s sous une licence libre. Parmi ces forges commerciales GitHub, propriĂ©tĂ© de Microsoft est la plus utilisĂ©e, suivi de BitBucket, propriĂ©tĂ© dâAtlassian, et de GitLab, propriĂ©tĂ© de GitLab Inc.
Certaines forges, communautaires ou commerciales comme GitLab, peuvent ĂȘtre auto-hĂ©bergĂ©es par des Ă©tablissements de lâEnseignement supĂ©rieur et de la Recherche, certains disposant ainsi de leur propre forge publique. Cet Ă©tat des lieux en comptabilise \nbforgestotal auxquelles sâajoutent les forges Ă usage interne. Ces forges auto-hĂ©bergĂ©es sont souvent simples Ă installer : dâun simple exĂ©cutable pour des solutions comme Gogs, Gitea ou Forgejo, Ă un ensemble de logiciels prĂ©configurĂ©s intĂ©grĂ©s Ă une distribution Linux pour GitLab par exemple. GitLab est en effet une forge commerciale (gitlab.com) basĂ©e sur un logiciel libre de forge que lâon peut installer sur ses propres serveurs. Le modĂšle Ă©conomique de GitLab Inc. est basĂ© sur la vente de licences pour apporter des fonctionnalitĂ©s supplĂ©mentaires aux utilisateurs du service en ligne ou des administrateurs des forges auto-hĂ©bergĂ©es.
De fait, lâinstallation dâune forge auto-hĂ©bergĂ©e pour du dĂ©veloppement collaboratif interne nĂ©cessite peu de moyens humains ou matĂ©riels, et offre une large palette de solutions. Par contre, dĂšs que lâon souhaite sâouvrir sur lâextĂ©rieur, intĂ©grer des solutions dâindustrialisation du dĂ©veloppement logiciel, mettre en place des bonnes pratiques de dĂ©veloppement, un effort plus consĂ©quent est nĂ©cessaire et le choix de la solution peut ĂȘtre guidĂ© par des critĂšres diffĂ©rents : popularitĂ© de la plateforme, fonctionnalitĂ©s offertes, robustesse.
Dans lâenseignement supĂ©rieur et la recherche, les dĂ©veloppeurs de logiciels soutiens ou issus de travaux de recherche ont le choix entre diverses forges pour hĂ©berger leur production logicielle. Si leur Ă©tablissement dispose dâune forge, câest la solution la plus simple, surtout si aucune interaction en dehors de lâĂ©tablissement nâest nĂ©cessaire.
Quand un besoin dâinteraction plus important est nĂ©cessaire, les communautĂ©s qui dĂ©veloppent des logiciels de recherche se tournent frĂ©quemment vers les forges commerciales en ligne, comme en tĂ©moignent les laurĂ©ats du premier prix science ouverte du logiciel libre de recherche : 9 projets hĂ©bergĂ©s sur GitHub et un projet hĂ©bergĂ© sur SourceForge. Lâeffet rĂ©seau social « on va ou il y a le plus de monde », et la portĂ©e internationale des projets justifient ce choix. Il faut cependant se souvenir quâune forge commerciale peut disparaĂźtre en peu de temps : ce fĂ»t le cas pour la forge de google, Google Code, dont lâactivitĂ© a cessĂ© au bout de neuf annĂ©es dâexistence, en quelques mois. La mĂȘme mĂ©saventure est arrivĂ©e Ă la solution dâhĂ©bergement Gitorious. De plus, ces forges ont des conditions dâutilisation que chaque membre doit accepter Ă titre individuel et non au titre de son Ă©tablissement.
Les forges auto-hĂ©bergĂ©es sont un moyen de minimiser ce genre de problĂšme. Il peut cependant aussi arriver que la solution choisie ne soit plus maintenue, ou dĂ©veloppĂ©e sous une licence libre : câest arrivĂ© avec le code de SourceForge, maintenu dans une version communautaire sous le nom de GForge, qui a lui mĂȘme changĂ© de licence, pour ĂȘtre maintenu dans une version communautaire sous le nom de FusionForge, pour arriver Ă un logiciel peu dĂ©veloppĂ© maintenant (la derniĂšre version du logiciel date de 2018).
Le choix de lâauto-hĂ©bergement, et de la forge utilisĂ©e, nâest donc pas anodin. Sur les \nbforgestotal forges rĂ©pertoriĂ©es, \nbforgesgitlab sont des instances de GitLab (les autres forges utilisent FusionForge, Gitea, Gogs, Redmine, Trac ou Tuleap). On peut expliquer cette domination de GitLab par sa simplicitĂ© dâinstallation et de maintenance et la richesse des fonctionnalitĂ©s offertes.
LâintĂ©rĂȘt de disposer dâune forge spĂ©cifique Ă lâEnseignement supĂ©rieur et de la Recherche, quelle que soit lâĂ©chelle (Ă©tablissement, nationale, europĂ©enne, internationale) se pose donc. Les forges dâĂ©tablissement apportent une rĂ©ponse quand le dĂ©veloppement est interne Ă lâĂ©tablissement et quâune forge dâĂ©tablissement existe. On maĂźtrise dans ce cas les fonctionnalitĂ©s offertes, et lâaccĂšs aux donnĂ©es, par contre cela n'autorise que trĂšs peu ou pas le dĂ©veloppement entre plusieurs Ă©tablissements. Quand une forge d'Ă©tablissement n'existe pas ou n'offre pas aux porteurs de projets d'inviter des contributeurs externes, une forge nationale ou europĂ©enne permettrait dâoffrir une alternative Ă lâutilisation des forges commerciales.
Au milieu des annĂ©es 2000, une forge nationale, SourceSup, a Ă©tĂ© mise en place par RENATER pour dĂ©passer ces restrictions dâinteraction. Cependant, cette forge, qui reprĂ©sentait lâĂ©tat de lâart lors de sa crĂ©ation, propose dĂ©sormais Ă ses utilisateurs une collection dâoutils qui sort des standards de dĂ©veloppement actuels.
Cet Ă©tat des lieux dresse le panorama des forges et pratiques existantes et met en avant un certain nombre dâobservations et de points de vigilance sur la situation actuelle.
...
Introduction
Ce rapport porte sur les forges logicielles utilisĂ©es dans les Ă©tablissements de lâenseignement supĂ©rieur et de la recherche (ESR). En particulier, il s'intĂ©resse aux pratiques et aux besoins, en terme de gĂ©nie logiciel, pour valoriser au mieux les productions logicielles issues de la science ouverte. Lâobjectif de ce document est de faire un premier Ă©tat des lieux des forges logicielles utilisĂ©es dans lâEnseignement supĂ©rieur et la recherche français et dâidentifier les moyens de rendre plus visibles les productions logicielles issues de la science ouverte.
Les forges logicielles sont principalement conçues pour gĂ©rer sur tout leur cycle de vie les diffĂ©rents artĂ©facts associĂ©s aux activitĂ©s de gĂ©nie logiciel, comme le code source, les fichiers binaires ou encore les documentations. Les forges peuvent aussi ĂȘtre utilisĂ©es pour la rĂ©daction collaborative dâarticles scientifiques ou de documentation, ou encore de pages web, Ă lâaide dâoutils de transformation de fichiers textes faiblement structurĂ©s (par exemple, Markdown et AsciiDoc). Ces activitĂ©s nĂ©cessitent de plus une intĂ©gration continue avec les outils de transformation, de dĂ©ploiement et de publication ouverte du code source, de la documentation. Ce document nâest donc pas strictement limitĂ© au logiciel proprement dit, son code source et ses binaires, mais Ă la gestion de tous les artefacts produits et Ă©changĂ©s pour produire un logiciel de qualitĂ©, partageable et rĂ©utilisable. Les forges logicielles sont aussi utilisĂ©es pour partager des donnĂ©es, des modĂšles, de maniĂšre collaborative. Leur usage impacte donc les trois piliers de la science ouverte.
Notons que cette analyse ne concerne que les besoins de lâactivitĂ© recherche de lâEnseignement supĂ©rieur et de la Recherche. Elle ne concerne pas les besoins de forges en enseignement, ni ceux des outils de systĂšme dâinformation pour le fonctionnement des Ă©tablissements. Il sâagit en premier lieu de faire un Ă©tat des lieux des pratiques actuelles et des propositions dâactions afin de favoriser de bonnes pratiques de dĂ©veloppement et de valorisation de la production logicielle. Cette proposition dâaction sâappuie sur une analyse des limitations actuelles, et une premiĂšre estimation des besoins communs.
Ce document structurĂ© autour de trois chapitres prĂ©cise pour tous le rĂŽle des forges logicielles et dresse pour les publics avertis en dĂ©veloppement logiciel un premier Ă©tat des lieux des forges de lâEnseignement supĂ©rieur et de la Recherche et de leurs usages. Sur la base de lâanalyse des limitations rencontrĂ©es par les Ă©tablissements de lâEnseignement supĂ©rieur et de la Recherche, des premiĂšres pistes dâaction sont suggĂ©rĂ©es.