diff --git a/cspell.json b/cspell.json index fd894a8..28a2824 100644 --- a/cspell.json +++ b/cspell.json @@ -202,7 +202,8 @@ "toptitle", "faci", "ciennes", - "lativement" + "lativement", + "artéfacts" ], // flagWords - list of words to be always considered incorrect // This is useful for offensive words and common spelling errors. diff --git a/end.md b/end.md index 563fec3..9690c0f 100644 --- a/end.md +++ b/end.md @@ -3,4 +3,4 @@ # Bibliographie indicative {.unnumbered} ::: {#refs} -::: \ No newline at end of file +::: diff --git a/etatdeslieux.md b/etatdeslieux.md index 0e1f254..de13a21 100644 --- a/etatdeslieux.md +++ b/etatdeslieux.md @@ -22,7 +22,7 @@ Le gestionnaire de versions permet donc de suivre finement l'historique d'écrit ## 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 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. @@ -36,7 +36,7 @@ L'intérêt d'une forge est de favoriser la collaboration autour d'un logiciel, 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. +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. @@ -77,12 +77,12 @@ Toutes les remarques suivantes sur le logiciel sont aussi valables pour ces usag ## É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. +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](https://stackoverflow.com) 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. +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 ». @@ -103,13 +103,13 @@ Il est important de pouvoir accueillir ce type de projets. Dans ce cadre, l'outi 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. +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 devenu une compétence importante dans toutes les disciplines académiques [@bestpracticesscientificcomputing]. +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 @@ -140,7 +140,7 @@ 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 à +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 premier prix science ouverte du logiciel libre pour s'en convaincre : @@ -175,9 +175,9 @@ Les conditions d’utilisation des forges commerciales doivent être acceptées ## 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](https://openscience.ow2.org/). +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](https://openscience.ow2.org/). -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. +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. @@ -229,10 +229,10 @@ Le choix d'outils distincts permet une certaine forme de souveraineté, en maît \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 +\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.} \end{autre*} Source : Stratégie du numérique pour l'éducation 2023-2027 (MENJ), page 25 [@strategiemenj] @@ -292,7 +292,7 @@ Un autre intérêt de l'auto-hébergement est de pouvoir maîtriser l'accès à 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 +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 : @@ -301,10 +301,10 @@ Plus récemment, Eclipse a décidé de migrer vers GitLab sa plateforme techniqu > *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*. +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. +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. @@ -351,7 +351,7 @@ Pour résumer, sur les multiples forges existantes dans l'Enseignement supérieu 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 limite le nombre d'accès par machine et par jour. Par conséquence, 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, il faut que les mainteneurs de chaque instance installent un registre local qui sert de cache pour réduire le nombre d'accès aux registres publics à accès limités. Cependant, ces solutions ne sont pas forcément toujours 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. +> 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. @@ -396,7 +396,7 @@ L'absence de contrôle (ou le faible contrôle) des créations de projets peut r > 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](https://www.ow2.org/view/MRL/) 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](https://code.gouv.fr/#/repos) ou de l'archive universelle des logiciels [Software Heritage](https://www.softwareheritage.org/) se sont appuyées sur la fonctionnalité d'indexation offerte par les forges. +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](https://code.gouv.fr/#/repos) ou de l'archive universelle des logiciels [Software Heritage](https://www.softwareheritage.org/) se sont appuyées sur la fonctionnalité d'indexation offerte par les forges. ## Organisation des projets @@ -426,9 +426,9 @@ Il est possible de synchroniser des forges auto-hébergées (de l’Enseignement > 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](https://forgejo.org/), 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](https://en.wikipedia.org/wiki/Fediverse). L’initiative [ForgeFriends](https://forgefriends.org) va également dans ce sens. +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](https://forgejo.org/), 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](https://en.wikipedia.org/wiki/Fediverse). L’initiative [ForgeFriends](https://forgefriends.org) va également dans ce sens. -Nous ne pouvons pas conclure ce chapitre sans souligner un besoin montant qui devient de plus en plus présents et importants, l’intégration continue. +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 @@ -440,9 +440,9 @@ La gestion d'un projet logiciel n'est pas la seule fonctionnalité attendue d'un - 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 certain événement ou sous certaines conditions, comme par exemple à chaque mise à jour du code. +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 +> 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. @@ -509,7 +509,7 @@ On considère ici les forges telles que github.com, gitlab.com, bitbucket.org, s \end{mymenaces} \newpage -## Forges externes communautaires +## Forges externes communautaires On considère ici les forges de fondations comme Apache, Eclipse, OW2 ou la FSF. @@ -629,11 +629,11 @@ pour la rédaction d'articles ou la gestion communautaires de données ou de mod 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. +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, +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 @@ -655,7 +655,7 @@ 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 +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. @@ -676,7 +676,7 @@ 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 + 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 @@ -695,7 +695,7 @@ De l'autre, se posent les défis à relever par qui doit fournir ces services : 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 +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](https://openai.com/blog/openai-codex)/[GitHub copilot](https://github.com/features/copilot), @@ -703,7 +703,7 @@ vient enrichir les données sur lesquelles la plateforme s'appuie pour l'apprent 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. +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 diff --git a/glossaire.md b/glossaire.md index 2287a79..1df30a5 100644 --- a/glossaire.md +++ b/glossaire.md @@ -110,5 +110,3 @@ ticket ### Z {.unnumbered .unlisted} --> - - diff --git a/historique.md b/historique.md index dc7235f..010bf98 100644 --- a/historique.md +++ b/historique.md @@ -5,7 +5,7 @@ | 1 | 02/05/23 | Version initiale du collège codes sources et logiciels du Comité pour la science ouverte | -Ce document est diffusé sous licence créative commons attribution (CC BY 4.0). +Ce document est diffusé sous licence creative commons attribution (CC BY 4.0). Vous pouvez contribuer à l'évolution de ce document disponible en version source [sur la forge publique de IN2P3](https://gitlab.in2p3.fr/coso-college-codes-sources-et-logiciels/forges-esr). diff --git a/intro-etatdeslieux.md b/intro-etatdeslieux.md index 9c6c2aa..33b8da8 100644 --- a/intro-etatdeslieux.md +++ b/intro-etatdeslieux.md @@ -44,7 +44,7 @@ header-includes: | \hyphenation{re-lativement} include-before: | \newpage - \newgeometry{margin=0.5in} + \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} @@ -55,23 +55,23 @@ include-before: | 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) + + Daniel LE BERRE (co-pilote GT2) Université d'Artois/CNRS - - Jean-Yves JEANNAS (co-pilote GT2) + + Jean-Yves JEANNAS (co-pilote GT2) Université de Lille/AFUL - - Roberto DI COSMO (co-pilote du collège) + + Roberto DI COSMO (co-pilote du collège) Inria/Université Paris Cité - François PELLEGRINI (co-pilote du collège) + 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 @@ -89,30 +89,30 @@ include-before: | \vfill \clearpage \restoregeometry - + # Résumé {.unnumbered} - + 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. - + 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. - + 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 39 forges répertoriées, 37 sont des instances de GitLab (les 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. - + 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. @@ -122,9 +122,9 @@ include-before: | 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 artefacts 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. +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. +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. diff --git a/listedesforges.md b/listedesforges.md index 3652da9..dcb20d8 100644 --- a/listedesforges.md +++ b/listedesforges.md @@ -1,6 +1,6 @@ \newpage \appendix -\newgeometry{margin=1in} +\newgeometry{margin=1in} # Liste des forges « publiques » auto-hébergées de l'ESR diff --git a/questionnairegroupes.md b/questionnairegroupes.md index 45b76c3..77b5fcb 100644 --- a/questionnairegroupes.md +++ b/questionnairegroupes.md @@ -11,7 +11,7 @@ Cette information permettra d’identifier de manière unique la forge dont il s ## Par qui est proposée/maintenue cette forge ? - + Veuillez sélectionner une réponse ci-dessous @@ -28,7 +28,7 @@ Une forge est considérée comme publique si la totalité ou même une partie de Une forge privée (ou interne) nécessite d’être identifié pour pouvoir accéder aux projets. -Si vous donnez des informations sur une forge privée via ce questionnaire, elles ne seront pas publiées dans l'état des lieux, mais elles nous permettront d'avoir une idée du nombre et des fonctionnalités des forges privées. +Si vous donnez des informations sur une forge privée via ce questionnaire, elles ne seront pas publiées dans l'état des lieux, mais elles nous permettront d'avoir une idée du nombre et des fonctionnalités des forges privées. - Oui - Non @@ -79,4 +79,4 @@ Vous avez l'occasion de décrire ici librement la façon dont sont organisés le ## Commentaire libre -Commentaire libre sur le document de travail. \ No newline at end of file +Commentaire libre sur le document de travail.