Maintient la diversité des exemples de personnels tout en metranti en exergue la ivariaté de la durée d'implication
75 KiB
De l'importance des forges
DĂ©velopper un logiciel nĂ©cessite toujours la mise en Ćuvre de bonnes pratiques. En effet, quelles que soient les caractĂ©ristiques du logiciel Ă dĂ©velopper, il est toujours plus facile de dĂ©marrer avec des bonnes pratiques, que d'essayer a posteriori d'en instaurer. Quoiqu'il arrive, la qualitĂ© du logiciel n'en sera que meilleure. Un point important par exemple, mais pas suffisant comme nous le verrons plus tard, est la gestion des Ă©volutions du code source. Elles doivent ĂȘtre systĂ©matiquement tracĂ©es avec un systĂšme de gestion de versions comme par exemple Git, Mercurial ou Subversion.
De nombreuses plateformes web, souvent appelées forges logicielles, comme par exemple BitBucket, Gitea, GitHub, GitLab, Gogs et ForgeJo, simplifient la mise en oeuvre de ces bonnes pratiques et facilitent le développement de logiciels de meilleure qualité, ainsi que la constitution de communautés de contributeurs et d'utilisateurs.
Des instances de ces plateformes peuvent ĂȘtre mises en place localement par des Ă©quipes de recherche, des laboratoires, des dĂ©partements, voire mĂȘme lâĂ©tablissement d'appartenance ou par une infrastructure de recherche, comme Huma-Num pour les sciences humaines et sociales.
Les communautés de chaque plateforme peuvent apporter des bénéfices appréciables et participer à la recherche de bogues, à l'ajout de nouvelles fonctionnalités, à la contribution de documentation, etc.
Pour bĂ©nĂ©ficier de lâapport dâune communautĂ©, il faut investir le temps et lâĂ©nergie nĂ©cessaires pour organiser son fonctionnement : fournir de la documentation sur les moyens et les possibilitĂ©s de contributions, Ă©valuer et gĂ©rer rapidement les suggestions et contributions apportĂ©es, planifier la feuille de route du dĂ©veloppement logiciel, etc.
Voir [@codeetlogiciel] pour une discussion plus détaillée du sujet.
Surveiller l'Ă©volution du code source
Le dĂ©veloppement d'un logiciel, en particulier l'Ă©criture de son code source (qu'on appelle programmation), est une activitĂ© itĂ©rative et incrĂ©mentale. Le code source d'un logiciel est amenĂ© Ă ĂȘtre modifiĂ© tout au long de son cycle de vie, et non pas juste Ă sa crĂ©ation. En effet, un logiciel Ă©volue dans le temps : on parle de maintenance corrective quand il s'agit d'Ă©volution dont l'objet est de corriger des bogues et de maintenance Ă©volutive quand il s'agit de prendre en compte les Ă©volutions de l'environnement d'exĂ©cution â Ă©volution du matĂ©riel support, du systĂšme d'exploitation, des bibliothĂšques utilisĂ©es, etc. â ou d'introduire de nouvelles fonctionnalitĂ©s.
Pour prendre en compte ces évolutions, il est d'usage de s'appuyer sur des outils qui peuvent enregistrer toutes les modifications faites à chaque étape de l'évolution du code : on les appelle des outils de gestion de versions (en anglais « version control systems » ou VCS). L'un des gestionnaires de versions les plus utilisés actuellement est Git.
Le gestionnaire de versions permet donc de suivre finement l'historique d'écriture d'un code, c'est-à -dire chaque contribution (les « commits »), de facilement comparer plusieurs versions du code du logiciel (les « branches »), et de formaliser des versions précises d'un logiciel (les « releases »).
Piloter tout le cycle de vie du logiciel
Le dĂ©veloppement d'un logiciel de qualitĂ© ne s'arrĂȘte pas Ă la phase de rĂ©alisation du logiciel, c'est-Ă -dire la phase d'Ă©criture du code. En effet, le code est certes un artefact important issu du processus de dĂ©veloppement logiciel, mais les spĂ©cifications (aussi appelĂ©es « ensemble des exigences » ou encore « cahier des charges »), les modĂšles de conception, les tests, les documentations concepteur et utilisateur en sont d'autres tout aussi importants si l'on souhaite dĂ©velopper un code de qualitĂ© et pĂ©renne dans le temps, c'est-Ă -dire maintenable, voire rĂ©utilisable.
Le gestionnaire de versions est donc l'un des outils Ă mettre en Ćuvre, mais pas le seul. Pour gĂ©rer tout le cycle de vie d'un logiciel, on a souvent besoin de gĂ©rer en plus les besoins des utilisateurs, de consigner les dĂ©fauts constatĂ©s du logiciel, de produire des versions diffusables du logiciel, de lancer des tests pĂ©riodiquement, de produire de la documentation, etc.
Pour faire tout cela, il est recommandé d'utiliser un ensemble d'outils intégrés au sein d'une plateforme souvent appelée « forge logicielle ».
Les forges peuvent ĂȘtre utilisĂ©es dĂšs la crĂ©ation d'un logiciel, au sein d'un espace de travail privĂ©. Quand le logiciel est prĂȘt Ă ĂȘtre diffusĂ© publiquement, il y a alors deux solutions : soit le projet devient public (et l'on peut consulter l'historique de son dĂ©veloppement), soit un nouveau projet public est crĂ©Ă© (avec un historique du dĂ©veloppement vierge, l'ancien n'Ă©tant pas accessible).
Permettre et faciliter la collaboration
L'intĂ©rĂȘt d'une forge est de favoriser la collaboration autour d'un logiciel, notamment par la collecte des dĂ©fauts rencontrĂ©s dans son utilisation et le recueil des cas d'usage non couverts par le logiciel, mais aussi de permettre la contribution de code. Une personne peut contribuer au code en communicant un correctif ou une amĂ©lioration au projet, soit sous forme de « patch » (fichier contenant les changements apportĂ©s), soit en rĂ©alisant une requĂȘte de fusion des changements (une « pull request », PR, ou « merge request », MR, selon les plateformes). C'est aussi un moyen de conserver une copie du logiciel sur une infrastructure mutualisĂ©e, qui peut ĂȘtre archivĂ©e par Software Heritage quand il s'agit d'un logiciel dont le code source est public.
La forge permet aux auteurs du logiciel de gérer finement ces collaborations en choisissant les personnes autorisées à faire des contributions, via un systÚme de gestion de droits.
Les exemples de logiciels libres de recherche à grand succÚs confirment que faciliter le plus possible les contributions est un levier trÚs important pour permettre l'émergence d'une communauté de contributeurs. Une telle communauté peut alors décharger les créateurs initiaux du logiciel de diverses tùches de maintenance et de développement, et permet au logiciel de prendre son envol. Les obstacles tels que le parrainage ou la modération pour la création de compte peuvent freiner de maniÚre importante (et invisible !) la venue de nouveaux contributeurs.
On trouvera dans [@bazaar] et [@cosssuccessful] par exemple des conseils généraux pour le développement de logiciels libres. Ils soulignent notamment l'importance de la collaboration dans ce contexte.
Construire le logiciel, analyser son code source
Une fonctionnalité que l'on retrouve souvent dans ces forges est l'« intégration continue » (ou « continuous integration », CI), c'est-à -dire la possibilité de construire le logiciel automatiquement à partir de ses sources. Il s'agit en quelque sorte de la garantie que la forge contient toutes les informations nécessaires pour construire le logiciel. Les technologies actuelles permettent de cibler simultanément diverses plateformes (multiples systÚmes d'exploitation et architectures de processeurs).
Pour les développeurs, l'intégration continue permet aussi de tester le fonctionnement du logiciel au fur et à mesure des développements, d'éviter les régressions (perte ou mauvais fonctionnement des fonctionnalités existantes) et de disposer de métriques sur la « qualité » du code développé.
- On peut classer les solutions de forges libres auto-hébergeables par le niveau de fonctionnalités offertes.
-
Typologie de forges
Niveau | Fonctionnalités | Exemples |
---|---|---|
0 | Hébergement de code source versionné (pas de systÚme de tickets ou de CI) | cgit |
1 | Niveau 0 + systĂšme de tickets et de revue de code | Redmine, Gerrit, Trac |
2 | Niveau 1 + systĂšme de pull/merge request | Gitea/Forgejo, Gogs |
3 | Niveau 2 + CI/CD, voire autres modules (GitLab pages, SourceHut pages) | GitLab, SourceHut, Tuleap |
Au delĂ du code source
Si les forges ont été conçues au départ pour gérer le cycle de vie de logiciels, elles sont aujourd'hui utilisées dans un cadre plus large :
- Publication et maintenance de sites web
-
à l'aide d'outils comme GitHub/GitLab/SourceHut pages ;
- RĂ©daction d'articles scientifiques
-
en utilisant des outils de composition de documents tels que LaTeX, en passant éventuellement par un langage semi-structuré comme Markdown, AsciiDoc ou reStructuredText plus simple à appréhender comme source ;
- Partage de données, de modÚles
-
La gestion fine des contributions et la mise en ligne de contenu permet la création de communautés autour du partage de données, de modÚles (voir par exemple la communauté HTR United).
Toutes les remarques suivantes sur le logiciel sont aussi valables pour ces usages.
Ăvolution du public visĂ© par les forges
Il y a vingt ans, les forges étaient le lieu de rencontre entre les utilisateurs et les développeurs d'un logiciel. Basées sur la version libre de la forge sourceforge.net (telle que notamment la forge GForge), on y retrouvait deux fonctionnalités importantes pour les utilisateurs : le téléchargement des différentes versions du logiciel et des forums ou listes de diffusion pour demander de l'aide et interagir avec l'équipe de développement. La gestion du code source du logiciel était une fonctionnalité parmi d'autres. Il existait une séparation claire entre les membres de l'équipe de développement, qui avaient les droits de modification sur le code source, et les autres utilisateurs.
Les logiciels et les pratiques de développement ont évolué. Certains logiciels sont fournis sous forme de services, ce qui fait qu'il n'est plus nécessaire de les télécharger. Les bibliothÚques sont diffusées par des entrepÎts (maven, pip, npm, etc) qui sont couplés à des outils de gestion des dépendances. Des sites d'entraide comme StackOverflow deviennent des sources d'information alternatives aux forums officiels des logiciels.
Avec l'arrivée de GitHub en 2007, le positionnement des forges a changé : le code source est devenu central, c'est la premiÚre chose que l'on voit quand on arrive sur un projet. Toutes les discussions sont contextuelles, liées à des tickets ou des contributions. Avec la possibilité de créer trÚs facilement une divergence (ou « fork «) d'un projet, le code source devient un bien commun, modifiable et diffusable par tous, ce qui favorise les contributions. On constate en parallÚle l'émergence des environnements de développement en ligne, et la généralisation de l'intégration et du déploiement continus. Le public de la forge devient plus spécialisé : il faut déjà connaßtre les pratiques de développement pour s'y retrouver, alors que disparaissent les forums servant à poser des questions et permettre à la communauté d'y répondre.
à ce titre, il convient de noter que GitHub permet de nouveau depuis fin 2020 les échanges entre utilisateurs sans ouvrir de tickets à l'aide de la fonctionnalité « discussion ».
\begin{observation}{}{} La forge devient un rĂ©seau social de dĂ©veloppeurs autour dâun bien commun : le code source. \end{observation}
Cas particulier du logiciel libre de recherche
Le logiciel libre de recherche est souvent issu d'une preuve de concept. Il n'a pas vocation initialement Ă ĂȘtre diffusĂ© en dehors du monde acadĂ©mique, et n'a donc pas Ă©tĂ© conçu pour cela. L'un des enjeux de la science ouverte est de rendre visible cette production logicielle, en permettant aux laboratoires d'intĂ©grer les bonnes pratiques qui leur permettront de rendre visible leur production logicielle Ă moindre effort.
\begin{observation}{}{} Le logiciel libre de recherche est conçu dans des laboratoires qui peuvent avoir des tutelles diverses. Les interactions doivent donc pouvoir se faire entre membres de ces diffĂ©rentes tutelles, ce qui signifie qu'idĂ©alement, les personnels de ces diffĂ©rentes tutelles puissent avoir accĂšs au mĂȘme outil.\
Des logiciels sont parfois dĂ©veloppĂ©s lors de projets collaboratifs qui peuvent inclure des entreprises. Il est important de pouvoir accueillir ce type de projets. Dans ce cadre, l'outil en question ne doit pas ĂȘtre limitĂ© au monde acadĂ©mique.\
Plus généralement, il est aussi important, pour certains projets, de pouvoir interagir avec des utilisateurs hors Enseignement supérieur et Recherche (collecte de retours via des « tickets », contribution de code, de documentation). C'est un facteur décisif pour qu'une communauté d'utilisateurs et de contributeurs puisse se développer autour de ces logiciels. \end{observation}
La modularité et la construction de logiciels par l'intégration de composants (c'est-à -dire d'autres briques logicielles), rendues disponibles grùce au cadre de la science ouverte et une diffusion libre, sont aussi des vecteurs facilitateurs de collaborations, disciplinaires comme interdisciplinaires.
Les logiciels libres de la recherche peuvent aussi servir de sujets d'Ă©tude pour les chercheurs en gĂ©nie logiciel. Les rendre accessibles sur une forge bien identifiĂ©e favoriserait leur rĂ©utilisation dans ce cadre. De plus, en intĂ©grant lâĂ©tat de lâart en matiĂšre de gĂ©nie logiciel (analyse statique de code, tests, assurance qualitĂ©, documentation, etc.), une forge acadĂ©mique permettrait Ă l'ensemble de la communautĂ© de profiter des nouvelles avancĂ©es dans ce domaine.
La facilité de « reproductibilité » offerte par l'intégration continue (via des images d'environnements d'exécution maßtrisés) est aussi un aspect trÚs important en science ouverte.
Favoriser l'utilisation dâoutils standards faciliterait la formation et lâacculturation au sein des laboratoires. L'automatisation de tĂąches Ă l'aide de l'outil informatique est devenue une compĂ©tence importante dans toutes les disciplines acadĂ©miques [@bestpracticesscientificcomputing]. La forge logicielle doit devenir un outil comme un autre dans la boite Ă outils des chercheurs et des ingĂ©nieurs.
Publics de l'ESR visés par les forges
Une forge peut ĂȘtre utilisĂ©e Ă diffĂ©rents moments d'un projet de recherche.
Lors du dĂ©roulement d'un projet, elle peut ĂȘtre utilisĂ©e pour le dĂ©veloppement d'une preuve de concept. Ce travail peut ĂȘtre rĂ©alisĂ© par des personnels ingĂ©nieurs ou chercheurs, qui peuvent ĂȘtre temporaires (stagiaires de recherche ou contractuels: ingĂ©nieurs et chercheurs doctorants ou docteurs) ou permanents. On crĂ©era dans ce cas un projet privĂ©, pour lequel l'historique du gestionnaire de versions constituera un moyen commode de connaĂźtre la contribution de chacun au logiciel produit. C'est une pratique Ă encourager.
Ă un moment donnĂ©, pour tout projet se pose la question de diffuser les rĂ©sultats obtenus, dont les logiciels font partie. Quand il s'agit de diffuser ces rĂ©sultats sous forme de logiciels libres, plusieurs stratĂ©gies peuvent ĂȘtre mises en Ćuvre.
Une stratégie minimaliste est de diffuser le logiciel en l'état, sans favoriser outre mesure l'interaction avec d'autres groupes de recherche ou la société. On peut simplement diffuser le code exécutable du logiciel, par exemple en le rendant disponible sur une page web sous forme de fichier archive (.tar ou .zip). Cependant, un tel mode de diffusion limite l'impact de la mise à disposition, en rendant difficile les contributions.
Une stratégie plus volontariste est de diffuser le logiciel sur une forge, pour permettre des retours d'autres utilisateurs (notamment via un systÚme de tickets). Il est alors préférable de réaliser en amont un effort de documentation sur le fonctionnement et la construction du logiciel, pour éviter des sollicitations fréquentes sur ces sujets. Il s'agit ici d'une véritable approche de valorisation du logiciel. De plus en plus de projets de recherche intÚgrent cet aspect durant le déroulement du projet.
Une stratĂ©gie accomplie est d'ouvrir le dĂ©veloppement mĂȘme du logiciel, pour faciliter les contributions d'autres dĂ©veloppeurs (au travers des MR/PR). Il est alors pertinent de documenter le fonctionnement interne du logiciel pour faciliter la plongĂ©e dans le code, par exemple en rĂ©digeant un « manuel de maintenance ». Il est aussi utile de documenter le processus de contribution : style de code attendu, processus de soumission de MR/PR, de relecture de code, fonctionnement de la CI, accord de cession de droits d'auteur, etc. Les forges permettent gĂ©nĂ©ralement de faciliter ce processus, pour favoriser les contributions. Cela peut ĂȘtre dĂ©cisif dans la prise d'envol d'un projet logiciel, dont la maintenance et le dĂ©veloppement peuvent alors ĂȘtre supportĂ©s par une communautĂ© internationale (bĂ©nĂ©ficiant donc d'une puissance de travail importante), plutĂŽt que la seule Ă©quipe de recherche Ă l'origine du logiciel (avec ses moyens limitĂ©s).
Les forges utilisĂ©es pour le dĂ©roulement du projet et pour la valorisation du logiciel peuvent ĂȘtre diffĂ©rentes, afin de s'adapter aux besoins respectifs de ces deux versants.
\begin{observation}{}{} Il existe actuellement de nombreux logiciels libres issus de la recherche française qui sont développés depuis des années grùce à une communauté active et hébergés sur des forges commerciales. \end{observation}
Paysage des forges de l'ESR
Nous faisons le point dans ce chapitre sur le type de forges utilisées dans l'enseignement supérieur dans le cadre de la recherche. Si ce panorama n'est pas exhaustif, il permet de noter des tendances. Une analyse des raisons qui ont contribué a aboutir à cette situation est aussi proposée.
Utilisation importante des forges commerciales
La plupart des logiciels libres issus de lâEnseignement supĂ©rieur et de la Recherche et dĂ©sireux d'interaction avec la sociĂ©tĂ© utilisent une solution d'hĂ©bergement commerciale ouverte Ă
tous, comme github.com
, gitlab.com
ou sourceforge.net
[@githubinpublications]. Il suffit de regarder les dĂ©pĂŽts oĂč sont hĂ©bergĂ©s les logiciels
récompensés lors du prix science ouverte du logiciel libre pour s'en convaincre :
PremiĂšre Ă©dition (2022) :
- Coq : https://github.com/coq/coq
- Coriolis : https://gitlab.lip6.fr/vlsi-eda/coriolis
- Scikit-learn : https://github.com/scikit-learn/scikit-learn
- Vidjil : https://github.com/vidjil/vidjil
- WebObs : https://github.com/IPGP/webobs
- Faust : https://github.com/grame-cncm/faust
- OpenVibe : https://gitlab.inria.fr/openvibe/meta.git
- Gammapy : https://github.com/gammapy/gammapy
- SPPASÂ : https://sourceforge.net/projects/sppas/
- Gama : https://github.com/gama-platform/gama
Seconde Ă©dition (2023) :
- Brian simulator : https://github.com/brian-team/brian2
- Fink : https://github.com/astrolabsoftware
- Hyphe : https://github.com/medialab/hyphe
- KeOps : https://github.com/getkeops/keops
- NoiseCapture : https://github.com/Universite-Gustave-Eiffel/NoiseCapture/
- OCaml : https://github.com/ocaml/ocaml
- PPanGGOLINÂ : https://github.com/labgem/PPanGGOLiN/
- Smilei : https://github.com/SmileiPIC/Smilei
La plateforme code.gouv.fr rĂ©fĂ©rence, au 11 fĂ©vrier 2023, 9818 dĂ©pĂŽts relevant de lâEnseignement supĂ©rieur et de la Recherche. 29 % de ces dĂ©pĂŽts (2627) sont hĂ©bergĂ©s sur GitHub. Seulement 30 dĂ©pĂŽts sont hĂ©bergĂ©s sur gitlab.com. Les autres solutions commerciales ne sont pas encore comptabilisĂ©es.
La plateforme Software Heritage permet d'avoir une idée du nombre de projets publics globaux trouvés sur les forges commerciales : 156 M pour GitHub, 4 M pour GitLab, 2 M pour Bitbucket, pour les plus utilisées début février 2023. On note que GitHub contient bien plus de projets publics que les autres forges.
Le principal intĂ©rĂȘt de se tourner vers ces solutions pour un projet libre de lâEnseignement supĂ©rieur et de la Recherche est de faciliter les contributions de code ou de documentation en adoptant un modĂšle de « rĂ©seau social de dĂ©veloppeurs ». En effet, pour les nombreux dĂ©veloppeurs ayant un compte sur ces plateformes, contribuer Ă un projet public de ces forges se fait de maniĂšre trĂšs naturelle. C'est la raison pour laquelle des structures communautaires comme Eclipse par exemple ont dĂ©cidĂ© d'intĂ©grer ces forges commerciales, alors qu'elles maintiennent aussi leur propre forge.
Cependant, les forges commerciales ne sont pas des solutions pĂ©rennes pour hĂ©berger des logiciels de la recherche. Ainsi, en aoĂ»t dernier, GitLab prĂ©voyait d'archiver automatiquement les projets non actifs depuis un an [@gitlab2022], alors que certains logiciels matures peuvent avoir un cycle de dĂ©veloppement plus lent et des pĂ©riodes dâinactivitĂ© prolongĂ©es, sans que cela remette en cause leur utilitĂ©. Par le passĂ©, on a pu voir la fermeture de forges commerciales comme Google Code [@googlecode] et mĂȘme de services communautaires comme Gitorious [@gitorious] ou la suppression de centaine de milliers de projets suite Ă la dĂ©cision de BitBucket de ne plus offrir dâhĂ©bergement pour les projets utilisant le systĂšme de contrĂŽle de version Mercurial [@mercurial]. Ces fermetures ont conduit Ă la disparition dâun patrimoine important, concernant les historiques de modifications et les Ă©changes de forums.
Les conditions dâutilisation des forges commerciales peuvent donc poser des problĂšmes dans ce contexte.
Enfin, les forges commerciales ne répondent pas forcément aux besoins de l'ensemble du cycle de vie d'un projet. L'utilisation de forges commerciales pour des projets privés doit se faire dans le respect de la réglementation européenne sur la protection des données, qui préconise que les serveurs soient hébergés sur le sol européen, et ne soient pas soumis à des législations extra-européennes (telles que : CLOUD Act, FISA 702, etc.). Plus d'informations à ce sujet sont disponibles sur le site de la CNIL.
\begin{observation}{}{} Les conditions dâutilisation des forges commerciales doivent ĂȘtre acceptĂ©es de maniĂšre individuelle par les personnels de lâEnseignement supĂ©rieur et de la Recherche pour leur permettre dâaccĂ©der Ă ces plateformes. Cela peut poser des problĂšmes si un personnel nâaccepte pas ces conditions. \end{observation}
Utilisation des forges communautaires libres
Il existe de nombreuses communautés libres, comme la Free Software Foundation (FSF), et son projet GNU, Apache, Eclipse, OW2 et bien d'autres qui, en plus de leurs projets propres, accueillent des projets libres issus du monde de la recherche. Elles permettent de faire émerger des projets, en les accompagnant au delà du simple démarrage. Quand elles sont parties prenantes de ces projets, elles peuvent pérenniser les productions logicielles. Ces communautés peuvent aussi avoir leur propre positionnement concernant la science ouverte ; voir par exemple celui d'OW2.
Cependant, ces forges hĂ©bergent des projets mĂ»rs, professionnels, qui ont vocation Ă ĂȘtre utilisĂ©s de façon large. Ces communautĂ©s dĂ©cident des projets qu'elles hĂ©bergent et soutiennent, selon leurs critĂšres propres. Il peut s'agir de la thĂ©matique du projet, de son niveau de maturitĂ©, de ses processus de dĂ©veloppement ou de gouvernance, de son positionnement dans le monde Ă©conomique ou sociĂ©tal.
\begin{observation}{}{} Les forges communautaires libres sont donc une solution pour des projets académiques qui ont obtenu une certaine visibilité, ou qui ont une stratégie de valorisation bien définie. Elles ne sont pas une solution pour le développement de preuves de concepts dans les laboratoires. \end{observation}
La forge d'OW2 peut cependant ĂȘtre utilisĂ©e comme forge d'expĂ©rimentation, via les « community user » c'est Ă dire les membres individuels, qui peuvent disposer de deux projets en leur nom propre. Ces projets individuels n'entrent pas dans le processus classique de soumission d'un projet communautaire.
Voici quelques exemples de logiciels des fondations OW2, Eclipse et du Projet GNU issus de la recherche publique :
- ASM (licence BSD)Â : https://asm.ow2.io/
- MPFR (licence GNU LGPL)Â : https://www.mpfr.org/
- OM2M (licence EPL)Â : https://www.eclipse.org/om2m/
- Papyrus (licence EPL)Â : https://www.eclipse.org/papyrus/
- Sat4j (licence GNU LGPL/EPL)Â : https://www.sat4j.org/
- SensiNact (licence EPL)Â : https://projects.eclipse.org/projects/technology.sensinact
- Spoon (licence CeCILL-C/MIT)Â : https://spoon.gforge.inria.fr
La forge nationale SourceSup
La forge SourceSup (https://sourcesup.renater.fr) a Ă©tĂ© mise en service en 2004 par RENATER. Il s'agissait Ă l'Ă©poque d'une instance de GForge. Ce service a basculĂ© sous FusionForge en 2009, quand la solution GForge a cessĂ© d'ĂȘtre libre. Cependant, la solution FusionForge n'est plus dĂ©veloppĂ©e depuis quelques annĂ©es (la derniĂšre version majeure date de 2018). Des briques fonctionnelles supplĂ©mentaires ont Ă©tĂ© rajoutĂ©es en 2015 : MantisBT pour la gestion de tickets, Testlink pour la gestion des campagnes de tests, Sonarqube pour l'assurance qualitĂ©, Nexus pour la gestion d'artefacts, Jenkins pour l'intĂ©gration continue, et Nuxeo pour la gestion documentaire. L'infrastructure est virtualisĂ©e, selon un principe de sĂ©paration des applications gourmandes en ressources. Une personne assure la maintenance et le support de « niveau 2 » des briques logicielles. Le support de « niveau 1 » est mutualisĂ© avec les autres applications RENATER.
En décembre 2022, la forge SourceSup contenait 762 projets publics sur plus de 5200 projets au total, et comptabilise plus de 13 000 utilisateurs.
Quelques exemples de projets hébergés sur SourceSup :
- AGATTEÂ :
- Progiciel de gestion des congĂ©s, utilisĂ© dans beaucoup d'Ă©tablissements de lâEnseignement supĂ©rieur et de la Recherche
- WIMSÂ :
- Logiciel d'enseignement interactif
- OTAWAÂ :
- Cadriciel C++ pour déterminer le temps d'exécution au pire de cas de programmes.
La forge accepte des projets publics ou privĂ©s. Tout personnel de lâEnseignement supĂ©rieur et de la Recherche peut demander la crĂ©ation d'un projet. Cependant, les projets Ă©tudiants ne sont pas acceptĂ©s.
\begin{observation}{}{} L'évolution technique et fonctionnelle de SourceSup est décidée par le comité de direction de RENATER. Aucune évolution majeure de SourceSup n'est prévue à ce jour. \end{observation}
La solution SourceSup est actuellement assez diffĂ©rente des autres forges que l'on peut trouver dans lâEnseignement supĂ©rieur et la Recherche. Tout d'abord, elle a gardĂ© son positionnement orientĂ© utilisateur, avec ses listes de diffusion et ses forums (Ă la SourceForge). De plus, elle maintient un support de Subversion. En effet, de nombreux projets ont commencĂ© avec ce gestionnaire de versions centralisĂ©, qui Ă©tait le plus utilisĂ© avant l'apparition de Git. Si SourceSup permet d'utiliser Git comme gestionnaire de versions, comme les autres forges, il propose aussi d'utiliser Subversion.
SourceSup a fait le choix d'utiliser des outils de différentes provenances pour fournir tous les services nécessaires au développement de logiciels. Cette démarche détone par rapport à l'évolution des forges commerciales comme GitHub ou GitLab.com, mais aussi des forges auto-hébergées qui offrent désormais la plupart de ces outils au sein d'une seule et unique solution, afin de faciliter leur appropriation par les utilisateurs et leur maintenance par les établissements.
Le choix d'outils distincts permet une certaine forme de souveraineté, en maßtrisant finement les logiciels utilisés pour chaque besoin. Cependant, c'est aussi un frein à l'adoption de la forge par de nouveaux utilisateurs, qui ne retrouvent pas les outils qu'ils ont désormais l'habitude d'utiliser.
\begin{autre*}{la forge nationale Ă©ducative} RĂ©cemment, le ministĂšre de lâĂ©ducation nationale et de la jeunesse a annoncĂ© la crĂ©ation dâune nouvelle forge nationale, dite « forge des communs numĂ©riques Ă©ducatifs » :\
\textit{Par ailleurs, les communautĂ©s dâenseignants (et dâautres acteurs de lâĂ©ducation) peuvent Ă©galement ĂȘtre des lieux de construction de nouveaux outils. Des professeurs, notamment de NSI ou de SNT, sont en attente dâune « forge » qui leur permettrait de collaborer entre pairs et de partager du code informatique. Le ministĂšre rĂ©pond dorĂ©navant Ă ce besoin avec la mise Ă disposition dâune forge technologiquement souveraine et mutualisĂ©e Ă lâĂ©chelle nationale.}\
Cette forge est depuis l'automne 2023 déployée à l'adresse \url{https://forge.apps.education.fr/}. \end{autre*} Source : Stratégie du numérique pour l'éducation 2023-2027 (MENJ), page 25 [@strategiemenj]
\nbforgestotal forges publiques auto-hĂ©bergĂ©es dans lâESR
En 2023, on compte au moins \nbforgestotal forges auto-hĂ©bergĂ©es publiques dans les Ă©tablissements de lâEnseignement supĂ©rieur et de la Recherche, sans compter les forges Ă usage strictement interne des Ă©tablissements.
La liste des forges rĂ©pertoriĂ©es, disponible en annexe A, ne se veut pas exhaustive. Elle est issue, dâune part, des dĂ©clarations qui alimentent la plateforme code.gouv.fr
et, dâautre part, du rĂ©seau de connaissance des membres du groupe de travail Ă lâorigine de ce rapport Ă qui a Ă©tĂ© envoyĂ© le questionnaire en annexe C. Il faut la considĂ©rer comme un recensement prĂ©liminaire qui, bien qu'incomplet, fournit d'ores et dĂ©jĂ des informations intĂ©ressantes pour le prĂ©sent rapport. Bien qu'il puisse ĂȘtre intĂ©ressant de la complĂ©ter, il faut garder en tĂȘte les difficultĂ©s sous-jacentes Ă un tel recensement exhaustif. Il est par nature difficile de rĂ©pertorier toutes les installations de forges, car celles-ci peuvent ĂȘtre opĂ©rĂ©es Ă divers niveaux : groupe de recherche, laboratoire, Ă©tablissement, etc. Certaines de ces instances sont exclusivement dĂ©diĂ©es aux usages internes dâun Ă©tablissement de l'Enseignement supĂ©rieur et de la Recherche (celle de lâuniversitĂ© dâArtois, par exemple), et ne sont donc pas rĂ©pertoriĂ©es ici.
On peut noter, à la lecture de cette liste, que :
- les grands organismes de recherche nationaux disposent de leur propre forge ou sont sur le point dâen disposer ;
- des universitĂ©s ou Ă©coles proposent leurs forges, en sĂ©parant Ă©ventuellement lâenseignement et la recherche (comme pour CentraleSupĂ©lec par exemple) ou sur une granularitĂ© plus fine encore (l'universitĂ© de Lille propose sa propre instance GitLab, le laboratoire CRIStAL la sienne et le dĂ©partement informatique de la facultĂ© des sciences et technologies une autre).
\begin{observation}{}{} Beaucoup de forges auto-hébergées sont des instances de GitLab. Bien que GitLab soit un logiciel libre auquel chaque personne peut contribuer, il convient de s'interroger sur la dépendance que cela implique par rapport à la société GitLab Inc. qui, en pratique, en dirige le développement. \end{observation}
Analyse de la situation
Frise chronologique des forges mentionnées dans ce document
En avant propos, pour comprendre la situation actuelle, il est important d'avoir en tĂȘte les quelques dates clĂ©s liĂ©es aux forges logicielles que nous considĂ©rons :
- 1999Â :Â apparition de SourceForge, la premiĂšre forge de logiciels libres
- 2002 : apparition de GForge, l'alternative libre à SourceForge pour l'auto-hébergement
- 2004Â :Â apparition de Git (logiciel libre de gestion de versions)
- 2007 : apparition de GitHub (forge commerciale basée sur git)
- 2011 : apparition de GitLab (logiciel libre fonctionnellement similaire à GitHub pour l'auto-hébergement de projets privés)
- 2012 : apparition de GitLab.com (forge commerciale basée sur le logiciel GitLab, projets privés)
- 2014 : GitLab.com auto-héberge son développement, devenant ainsi une alternative à GitHub
L'apparition d'une version libre du logiciel de SourceForge a permis la création des premiÚres forges auto-hébergées. Quand la licence de diffusion en est devenue propriétaire, des forks issus de la communauté ont vu le jour (SourceForge/GForge/FusionForge par exemple). Des changements de technologie apparaissent réguliÚrement. La forge sourceforge.net
utilise désormais le logiciel libre Apache Allura.
On peut noter, à la fin des années 2010, le passage de la technologie GForge/FusionForge vers GitLab pour l'auto-hébergement au sein de plusieurs structures. Les premiÚres versions de GitLab ne permettaient que l'hébergement de projets privés. C'est en octobre 2013 (GitLab 6.2) que GitLab a introduit la notion de projet public, et qu'il est devenu une véritable alternative à GForge/FusionForge. En janvier 2014, le développement collaboratif de GitLab se fait à l'aide de GitLab.
Pourquoi tant de forges auto-hébergées ?
Il est difficile de répondre à cette question car il existe sans doute de nombreuses raisons à cet état de fait. Il est néanmoins possible d'avancer quelques éléments susceptibles d'expliquer cette situation.
Tout d'abord, on peut noter que la quasi-totalitĂ© des forges rĂ©pertoriĂ©es sont des instances de GitLab. Ce logiciel est trĂšs simple Ă installer et Ă maintenir, et n'est pas gourmand en ressources informatiques. Il peut donc ĂȘtre facilement dĂ©ployĂ© dans un Ă©tablissement Ă moindre coĂ»t, humain et financier.
Notamment, dans les universités ou les écoles d'ingénieurs possédant une spécialité informatique, ces forges sont nécessaires pour permettre l'apprentissage de leur utilisation dans un cadre pédagogique. Si dans certains établissements il existe une distinction entre forges d'enseignement et de recherche, ce n'est pas le cas dans d'autres.
Des forges sont également souvent déployées dans les laboratoires d'informatique, ces derniers ayant à la fois les compétences techniques pour mettre en place ces solutions et la connaissance des limites des solutions commerciales.
Le principal intĂ©rĂȘt d'utiliser une forge auto-hĂ©bergĂ©e est de maĂźtriser la localisation des serveurs, et donc de respecter la lĂ©gislation europĂ©enne sur le traitement des donnĂ©es Ă caractĂšre personnel (le RGPD) et de prendre en compte si nĂ©cessaire les enjeux de souverainetĂ© (pour les projets privĂ©s ou pour les partenariats avec des industriels par exemple).
Un autre intĂ©rĂȘt de l'auto-hĂ©bergement est de pouvoir maĂźtriser l'accĂšs Ă ce service, son usage, les rĂšgles de diffusion des logiciels, etc. Cela permet Ă l'Ă©tablissement de mettre en Ćuvre une politique propre concernant les logiciels de la recherche.
Enfin, d'un point de vue pratique, disposer de sa propre forge permet de centraliser soit le développement des logiciels, soit d'exposer l'ensemble de sa production logicielle en y installant systématiquement un miroir des projets hébergés sur d'autres forges. L'établissement peut ainsi avoir une vision globale de sa production logicielle.
On peut se demander pourquoi tant d'Ă©tablissements du supĂ©rieur ont installĂ© leur propre forge alors qu'une forge nationale, SourceSup, existe. Parmi les arguments qui peuvent ĂȘtre avancĂ©s, on peut citer son Ă©volution technique hĂ©tĂ©rogĂšne, lâabsence de voix des utilisateurs dans le comite de pilotage, ou encore lâabsence dâune stratĂ©gie de communication dans les deux sens (de SourceSup vers les utilisateurs, et des parties prenantes vers SourceSup). Cette trajectoire peut ĂȘtre mise en regard de l'histoire des autres forges, comme Inria dans l'Enseignement supĂ©rieur et la Recherche, ou OW2 et Eclipse dans les communautĂ©s libres. Ă Inria, aprĂšs quâune nouvelle forge basĂ©e sur GitLab a Ă©tĂ© mise en place, la forge Inria basĂ©e sur GForge a Ă©tĂ© arrĂȘtĂ©e en dĂ©cembre 2020, aprĂšs une pĂ©riode de « tuilage » visant Ă assurer la migration des projets. Depuis janvier 2023, Inria dispose de deux instances de GitLab : une instance pour ses projets collaboratifs publics et une autre pour ses projets internes. Il en est de mĂȘme pour OW2 : sa forge historique basĂ©e sur GForge a Ă©tĂ© remplacĂ©e par une instance de GitLab en 2018. Plus rĂ©cemment, Eclipse a dĂ©cidĂ© de migrer vers GitLab sa plateforme technique Ă©prouvĂ©e combinant Git, Gerrit et BugZilla. Denis Roy, de la fondation Eclipse [@eclipsegitlab], a justifiĂ© cette migration par les arguments suivants :
Kids born in 2005 are turning 17 years old this year. They've likely been using Eclipse at school. They've been using Eclipse at home to learn to code. They've been using Eclipse to hack Minecraft mods. And they use GitHub to pull code from. Some may even know how to fork a repo and submit a Pull Request.
If Eclipse projects want any hope of drawing those fresh young minds into their open source world, and turning casual explorers into productive contributors, it needs to be as simple as pulling a Minecraft mod. It needs to be on GitHub, or on a modern stack that works just like it, such as GitLab.
Pour rĂ©sumer, les pratiques de dĂ©veloppement ont Ă©voluĂ© de façon significative, avec le passage rapide en quelques annĂ©es des forges orientĂ©es utilisateurs aux forges orientĂ©es dĂ©veloppeurs qui ont mis au centre de lâattention le code source et facilitĂ© lâadoption massive de lâapproche de contribution via les forks et les pull requests ou merge requests.
\begin{observation}{}{} Un dĂ©fi majeur pour une forge nationale est donc de surveiller activement les Ă©volutions des usages et des solutions techniques, et dâengager les transformations nĂ©cessaires pour permettre dâoffrir Ă tous les utilisateurs un environnement familier et cohĂ©rent avec les outils quâils utilisent lorsqu'ils collaborent sur dâautres projets logiciels. \end{observation}
Câest une tĂąche difficile, parce que, comme il a Ă©tĂ© dit, le dĂ©veloppement logiciel est une activitĂ© qui dĂ©passe largement la sphĂšre de l'Enseignement supĂ©rieur et de la Recherche : les Ă©volutions peuvent survenir Ă tout moment et les technologies Ă©voluent vite.
En lâabsence dâune stratĂ©gie ambitieuse dans ce sens, et au vu de la facilitĂ© dâinstaller des forges auto-hĂ©bergĂ©es rĂ©centes, on aboutit Ă la situation de fragmentation actuelle, caractĂ©risĂ©e par une multitude de forges Ă©parpillĂ©es dans les diffĂ©rents Ă©tablissements.
Difficulté d'interaction avec la société
La principale limitation des forges disponibles actuellement dans l'Enseignement supĂ©rieur et de la Recherche est le fait que le public de ces forges (c'est-Ă -dire les personnes pouvant crĂ©er un compte) est limitĂ©Â : la plupart des instances de forges disponibles ne permettent pas Ă une personne extĂ©rieure Ă l'Enseignement supĂ©rieur et de la Recherche de crĂ©er elle-mĂȘme un compte sur ces plateformes. Il existe donc un frein Ă l'interaction avec la sociĂ©tĂ©.
Si certaines de ces forges permettent la crĂ©ation de comptes externes, elles sont souvent difficiles dâaccĂšs (par exemple, pour gitlab.inria.fr
, un compte externe doit ĂȘtre « parrainĂ© » par une personne membre dâune Ă©quipe-projet Inria) et limitĂ©es (le compte externe GitLab ne permet pas de crĂ©er ses propres projets). Il est donc souvent impossible, ou Ă tout le moins trĂšs difficile, de proposer des changements avec ce genre de compte, car cela nĂ©cessite d'effectuer un fork du projet original, et donc de crĂ©er un projet propre sur la forge. Rapporter un bogue nĂ©cessite dâavoir obtenu un compte au prĂ©alable, ce qui peut ĂȘtre rĂ©dhibitoire.
Cela peut aussi avoir des consĂ©quences fĂącheuses avec d'autres communautĂ©s du logiciel libre de recherche. Par exemple, le Journal of Open Source Software, un journal qui Ă©value et publie environ 400 papiers courts et les logiciels correspondants par an nĂ©cessite que le logiciel soumis "soit hĂ©bergĂ© Ă un endroit oĂč les utilisateurs peuvent crĂ©er des tickets et proposer des changements de code sans validation manuelle ou paiement pour la crĂ©ation de compte". Cette politique a Ă©tĂ© mise en place car JOSS est intĂ©ressĂ© par la mise en avant de logiciels qui peuvent ĂȘtre utilisĂ©s et maintenus par une large communautĂ©. Un de ses critĂšres d'Ă©valuation concerne les lignes directrices de la communautĂ©, et cela inclus "il doit y avoir des rĂšgles claires pour des tiers qui souhaiteraient : contribuer au logiciel ; remonter des dysfonctionnements ; demander de l'aide". Ces activitĂ©s ne peuvent se faire si la forge ne permet pas une inscription automatique gratuite et ouverte Ă tous.
Par ailleurs, des projets tels que l'« Extreme-scale Scientific Software Stack » (E4S) intÚgrent dans leur politique la nécessité de pouvoir soumettre des contributions: « Public Repository: Each E4S member package will have a public repository, for example at GitHub or Bitbucket, where the development version of the package is available and pull requests can be submitted ». Le PEPR NumPEx envisage de s'inspirer de cette exigence pour faciliter l'intégration de sa pile logicielle, et considÚre notamment que gitlab.inria.fr
n'est pour le moment pas assez ouvert pour ses besoins.
L'approche d'OW2 est pragmatique : elle permet à chacun de créer un compte sur sa plateforme, mais limite par défaut à deux le nombre de créations de nouveaux projets. Cela permet à un utilisateur d'un logiciel OW2 d'interagir facilement avec le systÚme de tickets et de pouvoir proposer une contribution de code. Les gestionnaires de la forge ont pu constater que cette ouverture par défaut n'est pas une source de création de comptes fantÎmes. OW2 délÚgue cependant la création de comptes à son annuaire, et pas directement à sa forge.
RENATER propose la création d'un compte réseau universel (CRU) pour permettre aux personnes extérieures à l'Enseignement supérieur et de la Recherche d'accéder à ces services en acceptant ce fournisseur virtuel d'identité. Certaines forges permettent l'authentification à l'aide du compte CRU.
\begin{observation}{}{} En gĂ©nĂ©ral, les logiciels de forge tels que GitLab ne permettent pas de limiter la crĂ©ation de projets Ă de simples contributions (c'est-Ă -dire Ă des \textit{forks} de projets de la plateforme). Il n'y a pas non plus de moyen d'empĂȘcher un utilisateur de dĂ©poser des photos ou vidĂ©os sur son espace de projet.
Or, permettre la création de projets à des personnes extérieures à l'établissement peut poser des problÚmes juridiques, tels que de respect de \href{https://www.legifrance.gouv.fr/jorf/id/JORFTEXT000042031970}{la loi du 24 juin 2020 relative à la lutte contre les contenus haineux sur Internet}. \end{observation}
Une approche parfois mise en Ćuvre est l'authentification distribuĂ©e EduGAIN / Shibboleth, qui automatise la crĂ©ation de comptes et Ă©vite de multiplier les Ă©tapes d'authentification. Il faut cependant que l'institution qui gĂšre l'authentification fournisse les informations nĂ©cessaires Ă la crĂ©ation du compte (identifiant utilisateur, adresse courriel). Certaines institutions utilisent une liste blanche de tiers autorisĂ©s : leurs utilisateurs doivent alors explicitement demander l'ajout Ă cette liste pour pouvoir utiliser cette authentification. Sans cela, un message d'erreur plus ou moins cryptique sera retournĂ© (« Empty uid », « Email can't be blank », « Email is invalid », voire « 500 Whoops, something went wrong on our end »), dĂ©routant complĂštement l'utilisateur. Il vaut mieux que l'institution utilise une page de consentement permettant Ă l'utilisateur de confirmer la demande immĂ©diatement plutĂŽt que d'avoir Ă deviner qu'il doit demander Ă sa DSI locale de l'ajouter Ă la liste blanche.
En fĂ©vrier 2023, le support de Shibboleth a Ă©tĂ© supprimĂ© de GitLab 15.9 car le composant Ruby fournissant cette fonctionnalitĂ© n'Ă©tait plus maintenu. Cela empĂȘche en pratique les montĂ©es de versions de nombreuses forges de l'Enseignement supĂ©rieur et de la Recherche Ă moins de modifier le code de l'application. Un appel Ă la communautĂ© a Ă©tĂ© lancĂ© pour mettre Ă jour ce composant. Une solution de contournement est de dĂ©lĂ©guer la gestion de Shibboleth Ă un systĂšme d'authentification unique. Le support de Shibboleth a Ă©tĂ© rĂ©tabli en juin 2023, dans GitLab 16.1, grĂące Ă la communautĂ©.
La limitation d'accÚs à une communauté complique aussi la gestion de comptes utilisateurs vis-à -vis de l'évolution de leur statut (départ de ou arrivée dans l'Enseignement supérieur et de la Recherche, l'institution ou le laboratoire).
La forge GitLab portée par l'infrastructure HumaNum étend cette approche « EduGAIN / Shibboleth » en permettant, grùce à son systÚme d'HumanID, de s'authentifier, en plus d'eduGAIN, par son compte ORCID, HAL, Twitter, LinkedIN ou Google.
Un autre point compliqué à gérer, du fait de la possibilité de s'inscrire sur la plateforme sans validation, est celui des spams, qui sont mis en ligne via les fonctionnalités d'exemples de code et de tickets pour les projets publics.
En pratique, OW2 indique ne pas souffrir de spam sur son instance, car cette plateforme recourt à une création de compte indépendante de GitLab. Pour la fondation Eclipse, la situation est plus compliquée, notamment concernant leur service Wiki.
\begin{observation}{}{} Pour rĂ©sumer, sur les multiples forges existantes dans l'Enseignement supĂ©rieur et de la Recherche, tant pour lâinteraction entre personnels qu'avec la sociĂ©tĂ©, un problĂšme essentiel Ă rĂ©soudre est la dĂ©finition dâune politique dâaccĂšs cohĂ©rente qui maximise les interactions sans mettre en danger les infrastructures. \end{observation}
Niveau de support et besoin de confiance
Il peut exister une diffĂ©rence entre le niveau de support attendu d'une forge et le niveau de support fourni, notamment parce que ce support sera forcĂ©ment comparĂ© Ă celui des forges commerciales. Si dans la majoritĂ© des cas, le support fourni correspond au besoin, il peut arriver que des Ă©volutions techniques doivent ĂȘtre mises en place pour rĂ©tablir des fonctionnalitĂ©s face Ă l'Ă©volution permanente de l'environnement technique.
Par exemple, sur les forges GitLab, lâintĂ©gration continue basĂ©e sur des images Docker est impactĂ©e par les changements de politique des registres d'images Docker (Docker Hub, registre d'images GitLab) qui limitent le nombre d'accĂšs par machine et par jour. Par consĂ©quent, chaque jour, au bout d'un certain nombre d'appels au registre Docker par l'intĂ©gration continue, les connexions peuvent ĂȘtre refusĂ©es et les intĂ©grations continues Ă©chouer. Pour contourner ce problĂšme, les mainteneurs de chaque instance doivent installer un registre local, qui sert de cache et rĂ©duit les appels aux registres publics Ă accĂšs limitĂ©s. Cependant, ces solutions ne sont pas mises en place de maniĂšre systĂ©matique. Pour l'utilisateur, pas forcĂ©ment au courant de ces subtilitĂ©s techniques, il en rĂ©sulte une impossibilitĂ© de travailler sereinement.
\begin{observation}{}{} Plus généralement, il existe un besoin de confiance dans une plateforme qui soit robuste et pérenne, sur laquelle les usagers puissent compter dans le temps pour diffuser leurs travaux de recherche, quelle qu'en soit la forme. \end{observation}
Licence libre ou propriétaire ?
Les solutions disponibles pour l'auto-hĂ©bergement peuvent ĂȘtre diffusĂ©es sous licence libre ou sous licence propriĂ©taire, dans ce dernier cas gĂ©nĂ©ralement avec plus de fonctionnalitĂ©s ou de support. On peut citer par exemple la version « Ultimate » de GitLab, diffusĂ©e sous licence propriĂ©taire, qui offre des fonctionnalitĂ©s supplĂ©mentaires par rapport Ă la version diffusĂ©e sous licence libre.
La question du choix de la licence peut alors se poser : est-il avantageux d'utiliser la solution sous une licence non-libre pour bénéficier de plus de fonctionnalités ?
\begin{observation}{}{} Choisir un logiciel de forge sous licence propriétaire est un frein à l'ouverture de la forge. En effet, les licences d'utilisation non-libres sont généralement porteuses de certaines restrictions, telles qu'un nombre de comptes maximal et un périmÚtre d'utilisation limité. \end{observation}
Le choix dâune version payante peut cependant rĂ©sulter de la volontĂ© assumĂ©e de fournir aux entitĂ©s Ă©ditrices de ces outils les moyens de poursuivre leur activitĂ©, gage de pĂ©rennitĂ© des solutions quâelles proposent et donc des forges qui les utilisent. La fourniture sous licences fermĂ©es de certains de leurs codes et les modĂšles Ă©conomiques « freemium » mis en place sont en effet pour ces entitĂ©s le moyen de disposer de revenus rĂ©currents Ă mĂȘme de garantir les emplois de leurs dĂ©veloppeurs.
La suite de ce chapitre va s'attacher Ă analyser lâusage courant de ces forges en mettant en avant trois grandes difficultĂ©s rencontrĂ©es dans leur mise en Ćuvre, Ă savoir lâorganisation de la forge et de son cycle de vie, son pĂ©rimĂštre et la gestion du droit dâauteur et des licences.
Points d'attention sur les forges
Lors de notre étude, nous avons noté un certain nombre de points d'attention lorsque l'on met en place une forge. Il n'y a pas de bonne ou de mauvaise façon d'utiliser une forge. Il s'agit plutÎt de mettre en cohérence le fonctionnement des forges et leurs objectifs.
Vitrine ou simple outil ?
Il y a deux façons orthogonales de considérer le fonctionnement de ces forges.
La premiÚre est de considérer qu'il s'agit principalement d'outils, qui sont mis à disposition de la communauté. Il s'agit en l'espÚce de favoriser les bonnes pratiques en donnant accÚs à des outils de qualité pour la gestion des projets. Cette vision semble correspondre à celle de la majorité des forges de l'Enseignement supérieur et de la Recherche.
La seconde, non exclusive, est de considérer que les projets publics sont la vitrine de la communauté, et que cette derniÚre a donc le droit et le pouvoir de décider ce qui est rendu public. Cette vision se retrouve essentiellement au sein des communautés libres (Apache, Eclipse, OW21).
Cependant, au sein de nombreuses forges, la création de projets publics n'est pas « validée ». On y retrouve donc des projets publics allant de « hello word » à une grosse application maintenue depuis des années. Cette hétérogénéité constitue un problÚme tant vis-à -vis de l'objectif de proposer une vitrine mettant en avant des projets d'une certaine « qualité », que de celui de lister la production logicielle d'une communauté. En revanche, ce n'en est pas forcément un si l'objectif principal est de favoriser l'usage d'un outil et des méthodes associées.
\begin{observation}{}{} L'absence de contrĂŽle (ou le faible contrĂŽle) des crĂ©ations de projets peut rendre leur gestion compliquĂ©e. Il est difficile, voire impossible, pour les administrateurs de dĂ©terminer quels projets doivent ĂȘtre conservĂ©s ou pas. \end{observation}
Pour gĂ©rer plus finement les contenus d'une forge, il semble nĂ©cessaire de dĂ©finir un processus et un cycle de vie des projets, par exemple en dĂ©finissant un niveau de maturitĂ© (comme le Market Readiness Level proposĂ© par OW2 par exemple). Chez Eclipse ou Apache, il existe la notion de « projet en incubation » pour les logiciels qui Ă©voluent beaucoup. Eclipse propose Ă©galement la notion de « train » qui inclut des briques a priori matures. Cette forge met Ă©galement en Ćuvre la notion de « mentor », dont le rĂŽle est de valider la crĂ©ation d'un projet.
Par ailleurs, et sans trancher entre la notion de simple outil ou de vitrine, il convient de noter que les forges, en regroupant les développements d'une communauté, d'une unité de recherche ou d'une tutelle, aident à suivre et à pérenniser l'activité de production logicielle de celles-ci. Les constructions de sites de référencement comme code.gouv.fr ou de l'archive universelle des logiciels Software Heritage se sont appuyées sur la fonctionnalité d'indexation offerte par les forges.
L'université de Strasbourg propose une approche intermédiaire sur son instance GitLab en permettant à tous les usagers de créer des projets publics mais en localisant dans un groupe particulier (community) les développements « officiels » de l'université.
Organisation des projets
\begin{observation}{}{} L'une des principales difficultĂ©s dans la gestion d'une forge est de savoir comment organiser les projets. Une solution peut ĂȘtre de crĂ©er un espace dĂ©diĂ© pour chaque sous-structure (projet de recherche, Ă©quipe ou laboratoire), qui aurait la charge de la crĂ©ation de ses projets dans cet espace. Cette solution induit deux autres problĂšmes : oĂč placer les projets communs aux sous-structures ? Comment gĂ©rer le cas des sous-structures qui n'ont pas de compĂ©tences ou de ressources internes pour assurer cette mission ? \end{observation}
Par exemple, au niveau de l'IRD, la gestion s'effectue en premier lieu par UMR, celles-ci dĂ©clarent ensuite des sous-projets. Sur demande argumentĂ©e, des racines peuvent ĂȘtre dĂ©clarĂ©es pour des projets de longue durĂ©e inter-UMR. Les projets sont accessibles par dĂ©faut aux utilisateurs connectĂ©s. L'IRD tend vers un principe d'ouverture aux personnes connectĂ©es dĂšs le dĂ©marrage des projets afin de susciter des collaborations le plus en amont possible. Cette politique est en cours de rĂ©alisation mais intĂ©grera probablement ces aspects.
Gestion du droit d'auteur
Si les dĂ©veloppeurs du logiciel ont tous le mĂȘme employeur, ou appartiennent tous Ă la mĂȘme structure multi-tutelles, il n'existe pas de problĂšme particulier pour la gestion des droits d'auteur.2
à l'inverse, dÚs que l'on intÚgre du code qui vient d'un développeur extérieur, il convient de se préoccuper de la gestion de ses droits d'auteur. Cela s'effectue généralement de deux maniÚres : de façon légÚre, au moyen des Developer Certificate of Origin (DCO), ou de façon plus encadrée, au moyen des Contributor License Agreement (CLA). Indépendamment de la solution choisie, se pose la question du moment auquel le faire. Il faut que la situation soit claire au moment de la contribution du code, car cette information constitue un élément de décision pour l'intégration ou pas du code dans le logiciel.
Le demander à l'inscription sur la forge risque de décourager des personnes qui souhaitent simplement signaler un défaut. De plus, il faut vérifier réguliÚrement que le document choisi est toujours valable (notamment, parce que l'employeur du contributeur peut changer). Chez Eclipse, les contributeurs doivent revalider réguliÚrement leur Eclipse CLA.
Le demander avant une premiÚre contribution, par exemple pour pouvoir créer une MR/PR, peut faire peur à un développeur qui n'est pas habitué à ce procédé.
Le demander avant d'intĂ©grer le code dans le projet est une pratique courante : le dĂ©veloppeur sait Ă ce moment-lĂ que son code est prĂȘt Ă ĂȘtre intĂ©grĂ©, et qu'il manque seulement pour cela le versant « administratif » du processus. Lorsque la contribution est extrĂȘmement petite, ce processus peut ĂȘtre contournĂ©, et la correction effectuĂ©e par les dĂ©veloppeurs principaux, en mentionnant le contributeur dans le texte du commit.
GĂ©rer un projet sur plusieurs forges
Il est possible de synchroniser des forges auto-hĂ©bergĂ©es (de lâEnseignement supĂ©rieur et de la Recherche) avec des forges commerciales (gitlab.com ou github.com). Cependant, on perd alors la centralisation des informations. Il est alors pertinent de dĂ©sactiver le systĂšme de tickets publics, afin de conserver les tickets sur la forge locale, si la forge locale permet lâinscription libres de contributeurs externes (qui peuvent crĂ©er des tickets, mais pas proposer de contributions de code). Cette solution nâest cependant pas pratique pour les contributeurs, qui doivent utiliser deux comptes : un pour les alertes (tickets, rapports de bogues, et suggestions) et lâautre pour les contributions (de code, de documentations). Il est dâautant plus difficile de sâastreindre Ă cette discipline lorsquâil existe un renouvellement important des contributeurs dans les projets de recherche.
La fondation Eclipse utilise plusieurs forges (l'une auto-hĂ©bergĂ©e, d'autres commerciales). MĂȘme si un miroir est mis en place entre les forges, chaque projet est gĂ©rĂ© sur une seule forge, pour Ă©viter les problĂšmes Ă©voquĂ©s.
Pour faire face Ă cette limitation, il faut noter des initiatives en cours visant la fĂ©dĂ©ration des forges. Par exemple, on peut citer les travaux rĂ©alisĂ©s dans le cadre du projet open-source Forgejo, une alternative communautaire Ă GitLab et GitHub, visant Ă spĂ©cialiser le protocole ActivityPub issu des travaux plus gĂ©nĂ©riques autour de la fĂ©dĂ©ration des univers Fediverse avec ForgeFed. Une implĂ©mentation de ce standard dans Forgejo devrait voir le jour en 2024. Le support de ce protocole est aussi en cours d'implĂ©mentation dans GitLab. Lâinitiative ForgeFriends va Ă©galement dans ce sens.
Nous ne pouvons pas conclure ce chapitre sans souligner un besoin montant qui devient de plus en plus prĂ©sent et important, lâintĂ©gration continue.
Toujours plus de services en intégration continue
La gestion d'un projet logiciel n'est pas la seule fonctionnalité attendue d'une forge. Offrir une documentation à jour est important, et disposer de moyens de publication de sites web à partir d'une forge est un atout supplémentaire (par exemple, le service « GitHub/GitLab/SourceHut Pages »). De plus, de nombreux outils basés sur l'analyse du contenu des dépÎts peuvent s'avérer importants pour la maintenance du logiciel :
- analyse de la compatibilité juridique des licences du logiciel et de ses composants ;
- détection de composants possédant des vulnérabilités connues ;
- détection de vulnérabilités dans le code produit ;
- détection de mauvaises pratiques de développement dans le projet ;
- etc.
La plupart de ces fonctionnalités sont basées sur la possibilité de faire de l'intégration continue, c'est-à -dire de déclencher l'exécution de programmes en fonction de certains événements ou sous certaines conditions, comme par exemple à chaque mise à jour du code.
Le besoin de sobriĂ©tĂ© Ă©nergĂ©tique du numĂ©rique implique que cette intĂ©gration continue soit configurĂ©e de maniĂšre Ă limiter les dĂ©clenchements inutiles. Des tests rapides sont gĂ©nĂ©ralement exĂ©cutĂ©s Ă chaque changement, et des traitements par lots peuvent ĂȘtre exĂ©cutĂ©s Ă des temporalitĂ©s diffĂ©rentes selon les outils utilisĂ©s : chaque nuit ou chaque semaine par exemple, voire chaque mois. Un filtrage des tests lancĂ©s peut Ă©galement ĂȘtre opĂ©rĂ© selon les fichiers effectivement modifiĂ©s.
Il faut noter que les machines utilisĂ©es pour gĂ©rer l'intĂ©gration continue partagĂ©e d'une instance GitLab de l'Enseignement supĂ©rieur et de la Recherche sont gĂ©nĂ©ralement plus puissantes que celles utilisĂ©es par l'instance GitLab elle-mĂȘme. En effet, si une modification de code va mobiliser le serveur GitLab quelques secondes au maximum, son intĂ©gration continue peut nĂ©cessiter plusieurs minutes, voire plusieurs heures, d'exĂ©cution. C'est donc une fonctionnalitĂ© qui passe difficilement Ă l'Ă©chelle sans une architecture adĂ©quate, permettant d'adapter les ressources disponibles Ă la demande, et donc demande des moyens consĂ©quents.
De plus, mettre en Ćuvre du dĂ©ploiement continu, c'est Ă dire la mise en production automatique du logiciel dans un environnement donnĂ©, nĂ©cessite une architecture plus sophistiquĂ©e, qui permet d'accĂ©der de maniĂšre sĂ©curisĂ©e Ă ces diffĂ©rents environnements dynamiques.
La solution préconisée à l'heure actuelle se base généralement sur l'utilisation de conteneurs qui permettent de déployer des ressources d'intégration continue à la demande, et d'en faciliter la mise à niveau.
Des questions techniques supplĂ©mentaires doivent ĂȘtre traitĂ©es, telles que la signature des logiciels pour permettre leur installation sur des systĂšmes d'exploitation rĂ©cents sans avoir Ă changer leur niveau de sĂ©curitĂ©. Mutualiser cet effort permettrait de diffuser plus facilement dans la sociĂ©tĂ© des logiciels issus de la recherche.
\begin{observation}{}{} Ătre capable de maintenir une telle architecture sur la durĂ©e nĂ©cessite des ressources et des compĂ©tences particuliĂšres, qu'il est pertinent de mutualiser. \end{observation}
Proposer des ressources dâexĂ©cution, souvent appelĂ©es runners, pour l'intĂ©gration continue pose des questions de sĂ©curitĂ© et de risque de mĂ©susage. Les forges commerciales ont rĂ©duit ou simplement dĂ©sactivĂ© les comptes qui permettent d'utiliser gratuitement du temps CPU sur des runners.
RĂ©capitulatif des solutions
Les matrices SWOT suivantes résument les forces et faiblesses des différents types de forges actuellement disponibles pour diffuser du logiciel libre ou tout autre artefact issu de la recherche, du point de vue de l'usager de ces forges.
Forges externes commerciales
On considĂšre ici les forges telles que github.com, gitlab.com, bitbucket.org, sr.ht, etc.
\tcbset{arc=0mm,width=\linewidth/2, before=,after=\hfill,fonttitle=\bfseries,box align=top} \newtcolorbox{myforces}{coltitle=black,colback=bar-color2!15!white,colframe=bar-color2,adjusted title=Forces} \newtcolorbox{myfaiblesses}{colback=bar-color1!15!white,colframe=bar-color1!80!black,adjusted title=Faiblesses} \newtcolorbox{myopportunités}{coltitle=black,colback=box-color1!15!white,colframe=box-color1,adjusted title=Opportunités} \newtcolorbox{mymenaces}{coltitle=black,colback=box-color2!15!white,colframe=box-color2,adjusted title=Menaces}
\begin{myforces}
\begin{itemize}[leftmargin=0in]
\item Intégration des fonctionnalités «tout en un»
\item Gratuité d'un ensemble de fonctionnalités de base
\item Disponibilité acceptable pour la plupart des projets
\item Pour GitHub~: une ergonomie devenue familiĂšre
\item Pour sr.ht~: un support humain trÚs réactif
\item Visibilité internationale
\item Communauté internationale
\end{itemize}
\end{myforces}
\begin{myfaiblesses}
\begin{itemize}[leftmargin=0in]
\item Dépendance à l'égard de la politique commerciale de la société
\item Pas de contrÎle sur les ressources allouées aux fonctionnalités
\item Pas de possibilitĂ© d'ĂȘtre associĂ© aux dĂ©cisions stratĂ©giques
\item Non souveraineté
\item Pas de garantie de pérennité
\end{itemize}
\end{myfaiblesses}
\begin{myopportunités}
\begin{itemize}
\item Nombreuses ressources disponibles pour la formation Ă ces outils
\end{itemize}
\end{myopportunités}
\begin{mymenaces}
\begin{itemize}[leftmargin=0in]
\item Dépendance à la réglementation du pays ou siÚgent ces sociétés
\end{itemize}
\end{mymenaces}
\newpage
Forges externes communautaires
On considĂšre ici les forges de fondations comme Apache, Eclipse, OW2 ou la FSF.
\begin{myforces} \begin{itemize}[leftmargin=0in] \item FonctionnalitĂ©s \item DisponibilitĂ© \item Support \item PĂ©rennitĂ© \item VisibilitĂ© au niveau de la communautĂ© \item La communautĂ© elle mĂȘme \end{itemize} \end{myforces} \begin{myfaiblesses} \begin{itemize}[leftmargin=0in] \item NĂ©cessitĂ© d'acceptation du projet par la communautĂ© \item Non couverture de toutes les thĂ©matiques par les communautĂ©s de logiciels libres \end{itemize} \end{myfaiblesses} \begin{myopportunitĂ©s} \begin{itemize}[leftmargin=0in] \item Promotion de son projet dans un Ă©cosystĂšme \item BĂ©nĂ©fice d'un accompagnement mĂ©thodologique \item BĂ©nĂ©fice de la confiance accordĂ©e Ă la communautĂ© pour son propre projet \end{itemize} \end{myopportunitĂ©s} \begin{mymenaces} \begin{itemize}[leftmargin=0in] \item DĂ©pendance Ă la rĂ©glementation du pays ou siĂšgent ces fondations/associations \end{itemize} \end{mymenaces}
Forges auto-hébergées à l'échelon local
\begin{myforces} \begin{itemize}[leftmargin=0in] \item FonctionnalitĂ©s sur mesure \item DisponibilitĂ© sur mesure \item SouverainetĂ© \item RĂ©silience \item Support (dĂ©pend des instances) \item PĂ©rennitĂ© (dĂ©pend des instances) \item (ProximitĂ©) \item VisibilitĂ© au niveau de l'institution \item CommunautĂ© au niveau de l'institution \end{itemize} \end{myforces} \begin{myfaiblesses} \begin{itemize}[leftmargin=0in] \item DisponibilitĂ©s (dĂ©pend des instances) \item Support (dĂ©pend des instances) \item MultiplicitĂ© des solutions disponibles \item DifficultĂ© d'accĂšs en dehors de l'institution porteuse \end{itemize} \end{myfaiblesses} \begin{myopportunitĂ©s} \begin{itemize}[leftmargin=0in] \item De facto, catalogue institutionnel de logiciels \item Mise en Ćuvre d'une politique institutionnelle de dĂ©veloppement des logiciels de recherche \item Expertise maintenue au niveau de l'institution \item Diffusion de bonnes pratiques \end{itemize} \end{myopportunitĂ©s} \begin{mymenaces} \begin{itemize}[leftmargin=0in] \item Evolution de la solution choisie (pĂ©rimĂštre des fonctionnalitĂ©s sous licence libre vs fonctionnalitĂ©s devenant payantes) \item Expertise difficile Ă trouver nĂ©cessaire pour maintenir la solution au niveau de l'institution \end{itemize} \end{mymenaces}
Forge auto-hébergée à l'échelon national
\begin{myforces} \begin{itemize}[leftmargin=0in] \item FonctionnalitĂ©s \item DisponibilitĂ© \item Support \item SouverainetĂ© (projets publics) \item PĂ©rennitĂ© \item SobriĂ©tĂ© \item VisibilitĂ© nationale \item CommunautĂ© nationale \end{itemize} \end{myforces} \begin{myfaiblesses} \begin{itemize}[leftmargin=0in] \item SouverainetĂ© (projets privĂ©s) \item Ouverture en dehors du cadre national \end{itemize} \end{myfaiblesses} \begin{myopportunitĂ©s} \begin{itemize}[leftmargin=0in] \item De facto, catalogue national de logiciels \item Mise en Ćuvre de prĂ©conisations nationales pour le dĂ©veloppement de logiciels de recherche \item Mutualisation de l'effort de maintenance \item Soutien par une politique publique globale \end{itemize} \end{myopportunitĂ©s} \begin{mymenaces} \begin{itemize}[leftmargin=0in] \item Evolution de la solution choisie (pĂ©rimĂštre des fonctionnalitĂ©s sous licence libre vs fonctionnalitĂ©s devenant payantes) \end{itemize} \end{mymenaces}
\newpage
Conclusion
Les pratiques de dĂ©veloppement logiciel ont profondĂ©ment Ă©voluĂ©, avec la gĂ©nĂ©ralisation de l'usage d'outils qui permettent de fluidifier grandement la collaboration sur des projets logiciels. Cela a progressivement conduit Ă transformer les forges en rĂ©seaux sociaux de dĂ©veloppeurs, et la facilitĂ© d'intĂ©grer la contribution de collaborateurs, mĂȘme occasionnels, est devenue un facteur clĂ© pour accompagner l'essor des logiciels libres et la crĂ©ation de communautĂ©s autour d'eux. Au delĂ du logiciel, les forges sont aussi utilisĂ©es pour la rĂ©daction d'articles ou la gestion communautaires de donnĂ©es ou de modĂšles.
Dans ce contexte, le monde de la recherche a besoin dâune forge a minima ouverte sur lâensemble de l'Enseignement supĂ©rieur et de la Recherche, et idĂ©alement ouverte sur la sociĂ©tĂ© toute entiĂšre.
Sâil existe bien une forge nationale pour l'Enseignement supĂ©rieur et la Recherche, SourceSup, son Ă©volution fonctionnelle a divergĂ© des pratiques dâune bonne partie des dĂ©veloppeurs de l'Enseignement supĂ©rieur et de la Recherche, et aucune Ă©volution majeure n'est prĂ©vue Ă ce jour ; sous sa forme actuelle, elle ne rĂ©pond donc plus aux besoins exprimĂ©s.
La disponibilitĂ© de solutions sous licences libres pour installer des forges qui intĂšgrent les fonctionnalitĂ©s attendues, et leur facilitĂ© d'installation et de maintenance, ont fait qu'il existe actuellement au sein de lâEnseignement supĂ©rieur et de la Recherche de multiples forges maintenues par des individus, des Ă©quipes, des laboratoires ou des Ă©tablissements. Sur ces forges, tant pour lâinteraction entre personnel de lâEnseignement supĂ©rieur et de la Recherche quâavec la sociĂ©tĂ©, un des problĂšmes essentiels Ă rĂ©soudre est la dĂ©finition dâune politique dâaccĂšs cohĂ©rente qui maximise les interactions sans mettre en danger les infrastructures.
Pour résoudre ces difficultés, de nombreux logiciels libres issus de la recherche française ont dû migrer ailleurs. Pour des projets académiques qui ont obtenu une certaine visibilité, ou qui ont une stratégie de valorisation bien définie, une alternative est offerte par les forges maintenues par des communautés de logiciels libres, mais cette piste n'est pas exploitable pour des logiciels qui sont à l'état de preuves de concepts dans les laboratoires.
Beaucoup de projets se retrouvent donc sur des forges commerciales, qui permettent la crĂ©ation de projets sans restriction, mais leur usage nĂ©cessite que des personnels de lâEnseignement supĂ©rieur et de la Recherche acceptent individuellement leurs conditions d'utilisation, pratique qui peut poser problĂšme, d'autant que les forges commerciales n'offrent aucune garantie de pĂ©rennitĂ©.
Tous ces enjeux doivent ĂȘtre pris en compte de façon globale.
D'un cotĂ©, s'expriment les besoins des personnels de lâEnseignement supĂ©rieur et de la Recherche qui dĂ©veloppent des logiciels de recherche :
- une forge dans laquelle ils puissent avoir confiance : robuste et pĂ©renne, sur laquelle il doit ĂȘtre possible de compter dans le temps pour diffuser ses travaux de recherche, quelle qu'en soit la forme ;
- une forge qui Ă©volue avec l'Ă©tat de l'art : il doit ĂȘtre possible d'y retrouver des outils d'un niveau comparable Ă ceux mis Ă disposition des dĂ©veloppeurs sur d'autres forges ;
- une forge qui permette de construire et faire croĂźtre facilement la communautĂ© de contributeurs : lâinscription et la crĂ©ation de projets doit ĂȘtre facile, et son usage simple et ergonomique ;
- une gestion simplifiée des démarches liées à la propriété intellectuelle.
De l'autre, se posent les défis à relever par qui doit fournir ces services :
- lâabsence de contrĂŽle (ou le faible contrĂŽle) des crĂ©ations de comptes et de projets sur une forge est importante pour la crĂ©ation de communautĂ©s, mais peut rendre leur gestion compliquĂ©e, et induit des risques techniques et juridiques pour les infrastructures. Il devient difficile, voire impossible, pour les administrateurs de dĂ©terminer quels projets doivent ĂȘtre conservĂ©s ou pas, et faire le tri entre usages normaux et abusifs peut demander des ressources consĂ©quentes ;
- le suivi de l'évolution technologique, et des usages, nécessite une activité de veille, et la capacité opérationnelle de déployer des nouvelles solutions, y compris à titre expérimental, tout en maintenant les anciennes en production, y compris dans le cadre de « tuilages » ;
- fournir un service Ă une communautĂ© trĂšs large nĂ©cessite de rĂ©flĂ©chir Ă lâorganisation des projets sur cette forge, en particulier pour des projets multi-tutelles, et Ă la mise en Ćuvre pratique d'une telle politique dans des laboratoires ayant des compĂ©tences hĂ©tĂ©rogĂšnes ;
- faciliter les collaborations entre Ă©tablissements de lâEnseignement supĂ©rieur et de la Recherche pourrait nĂ©cessiter la mise en place d'une gestion des droits mutualisĂ©e au sein d'une fĂ©dĂ©ration d'identitĂ©s.
Enfin, ce sujet possĂšde des enjeux stratĂ©giques majeurs : les forges logicielles commerciales n'apportent pas de garantie de pĂ©rennitĂ©, et les plus populaires d'entre elles sont soumises Ă des juridictions extra-europĂ©ennes. Chaque base de code qui est dĂ©posĂ©e sur une forge commerciale offre un aperçu trĂšs en amont sur les activitĂ©s de recherche et industrielles des personnels des pays dĂ©posants (dans le cadre des projets privĂ©s), vient enrichir les donnĂ©es sur lesquelles la plateforme s'appuie pour l'apprentissage des outils d'aide Ă l'Ă©criture de code (OpenAI Codex/GitHub copilot, GitLab suggestions, etc.), et donc contribue Ă la domination des GAFAM sur le numĂ©rique. La maĂźtrise de lâusage du code issu de nos laboratoires constitue en cela un enjeu majeur de souverainetĂ©.
Il est urgent d'apporter une rĂ©ponse rĂ©flĂ©chie et coordonnĂ©e Ă l'ensemble des besoins et dĂ©fis exprimĂ©s. DĂ©ployer une forge auto-hĂ©bergĂ©e est relativement facile, mais la maintenir Ă lâĂ©tat de lâart sur la durĂ©e en termes dâinfrastructure et de fonctionnalitĂ©s, mettre en place des politiques d'accĂšs et d'organisation des projets, suivre et accompagner les usages, et Ă©viter les abus nĂ©cessite des ressources et des compĂ©tences particuliĂšres, qu'il est nĂ©cessaire de mutualiser.
-
OW2 permet cependant la crĂ©ation de deux projets personnels publics pour chaque utilisateur. â©ïž
-
On suppose ici que lâemployeur bĂ©nĂ©ficie du transfert de la titularitĂ© des droits des diffĂ©rents contributeurs, et que les employĂ©s sont autorisĂ©s Ă publier en open source le code qu'ils produisent. â©ïž