Forges de l’ESR – Définition, usages, limitations rencontrées et analyse des besoins
Daniel Le Berre (Université d’Artois/CNRS)
Jean-Yves Jeannas (Université de Lille/AFUL)
Roberto Di Cosmo (Inria/Université Paris Cité)
François Pellegrini (Université deBordeaux/CNRS/CNIL)
Mai 2023
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 39 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 humain ou matériel, 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ée 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 peut 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 39 forges répertoriées, 37 sont des instances de GitLab (les Forges de l’Enseignement supérieur et de la Recherche deux autres forges utilisent respectivement Tuleap et Gogs). 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.
Sommaire
Résumé Historique 1. Introduction 2. De l’importance des forges2.1. Surveiller l’évolution du code source
2.2. Piloter tout le cycle de vie du logiciel
2.3. Permettre et faciliter la collaboration
2.4. Construire le logiciel, analyser son code source
2.5. Au delà du code source
2.6. Évolution du public visé par les forges
2.7. Cas particulier du logiciel libre de recherche
2.8. Publics de l’ESR visés par les forges
3. Paysage des forges de l’ESR3.1. Utilisation importante des forges commerciales
3.2. Utilisation des forges communautaires libres
3.3. La forge nationale SourceSup
3.4. 39 forges publiques auto-hébergées dans l’ESR
3.5. Analyse de la situation
3.5.1. Frise chronologique des forges mentionnées dans ce document
3.5.2. Pourquoi tant de forges auto-hébergées ?
3.5.3. Difficulté d’interaction avec la société
3.5.4. Niveau de support et besoin de confiance
3.5.5. Licence libre ou propriétaire ?
4. Points d’attention sur les forges4.1. Vitrine ou simple outil ?
4.2. Organisation des projets
4.3. Gestion du droit d’auteur
4.4. Gérer un projet sur plusieurs forges
4.5. Toujours plus de services en intégration continue
5. Récapitulatif des solutions5.1. Forges externes commerciales
5.2. Forges externes communautaires
5.3. Forges auto-hébergées à l’échelon local
5.4. Forge auto-hébergée à l’échelon national
6. Conclusion