Préambule
Ce document décrit une initiative pour lancer un projet de mise en place d'une forge pour héberger les développements des laboratoires de recherche et des universités, appelée pour l'instant Forge ESR (Enseignement Supérieur - Recherche), le périmètre précis restant à définir. D'autres documents suivront plus détaillés et concrets.
Il a été rédigé par Véronique Baudin (LAAS, DEVLOG et PLUME), Violaine Louvet (ICJ, Groupe calcul et PLUME), Dominique Boutigny (CCIN2P3), Jean-Luc Archimbaud (UREC et PLUME).
Une version PDF de ce document datée du 3/2/2010 est disponible.
Introduction
Les rédacteurs de ce document font le constat qu'une forge Ens Sup - Recherche est réclamée depuis plusieurs années via plusieurs canaux :
- Le projet PLUME avec son projet connexe RELIER qui a démarré en 2007 permet de regrouper un ensemble de développeurs de logiciels de laboratoires ou d'universités, qu'on peut évaluer actuellement à près de 250 chercheurs ou ingénieurs. Ces personnes ont rédigé des fiches PLUME qui décrivent leurs développements dont certains sont diffusés, utilisés par d'autres sites, signes reconnaissant leur utilité et leur qualité. Les codes développés sont ainsi hébergés un peu partout : sur le site du laboratoire, sur une forge aux Etats-Unis, parfois sur une forge de leur tutelle (INRIA, INRA, ..)... Ces développeurs mentionnent régulièrement depuis le début du projet PLUME le manque d'un outil national pour héberger, gérer et diffuser leurs codes : ils revendiquent l'existence d'une forge adaptée à leur besoin de développements collaboratifs.
- Ce besoin a été aussi exprimé par l'ensemble des personnels informaticiens du CNRS (BAP E) dans le document "Etude sur les métiers de l'informatique en appui à la recherche" . C'est une des 5 priorités citées par ce document.
- Le groupe calcul a émis fortement ce besoin
- Le futur réseau national DEVLOG des développeurs qui est en cours de définition auprès de la MRCT met aussi le besoin de forge comme un de ses axes de travail
- Certains laboratoires ont mis en place leur propre forge , par exemple:
-
Laboratoire d'Informatique de Grenoble: LIGforge
- Laboratoire d'Informatique et de Mathématiques de l'Université de la Réunion : projets LIM
- Telecomm et Management Sud Paris (Evry): PicoForge platform
- Un institut, l'IN2P3, vient de démarrer un service de forge en test
- Et plus globalement de nombreux responsables du monde du logiciel en France s'étonnent qu'il n'y ait pas une forge qui regroupe les développements logiciels des laboratoires de recherche, en particulier du CNRS
Durant l'année 2009 nous (JL Archimbaud avec G Romier ou V Louvet) avons rencontré les administrateurs des forges : INRIA, SourceSup, ADULACT, OSOR (cf paragraphe forges existantes ci-dessous). Le constat est qu'aucune n'a l'ouverture ou la capacité d'héberger les développements des laboratoires de recherche de toutes les thématiques scientifiques. La forge opérationnelle dans le monde de la recherche avec des permanents dédiés, une garantie de service est celle de l'INRIA. Mais celle-ci est réservée aux projets de cet Institut.
Qu'est ce qu'une forge ?
Source: http://www.projet-plume.org/ressource/faq-forge
Une forge ou plate-forme d'hébergement de projets logiciels désigne un environnement Web constitué d'un ensemble d'outils du travail coopératif et du génie logiciel pour le développement collaboratif et distribué de logiciels.
L'objectif est d'offrir un espace d’échange permanent et de collaboration en ligne aux développeurs de logiciels, et un espace de distribution (versions publiques des logiciels développés : paquets sources, pages web) pour les utilisateurs (pour tout un chacun si la forge est publique). Une forge permet ainsi de rassembler des projets et des développeurs, mais aussi d'autres personnes travaillant sur ces projets (utilisateurs, traducteurs…).
Les outils offerts par une forge sont principalement :
- un système de gestion des versions,
- un gestionnaire de listes de discussion (et/ou de forums),
- un outil de suivi des bugs,
- un gestionnaire de documentation (souvent sur le principe du wiki),
- un gestionnaire de tâches,
- un gestionnaire des traductions en ligne.
La forge rassemble ces outils en un seul ensemble cohérent facilement accessible. Elle peut aussi permettre de présenter les projets grâce à des outils tels que des copies d'écrans, des listes de diffusion de nouvelles, la mise à disposition d'un hébergement ou de quelques pages descriptives (présentation du projet, licence, technologies utilisées, compatibilité…).
Les forges existantes et utilisables dans la communauté ESR
Source : http://www.projet-plume.org/ressource/faq-forge
Il existe aujourd'hui un certain nombre de forges proposant au moins une partie des services attendus. On peut identifier différents types de forges accessibles avec des règles et des contraintes propres à chacune d'entre elles. Nous citerons seulement ici quelques exemples.
Les forges généralistes (pour le domaine ESR)
en France
- SourceSup : destinée aux établissements d'enseignement supérieur (universités, écoles d'ingénieurs, …) et aux organismes de recherche français.
- Adullact.net : destinée aux administrations et collectivités françaises. Toute personne peut ouvrir un compte, et proposer un projet, si celui-ci présente un intérêt pour la sphère du domaine public au sens large, c'est-à-dire principalement les administrations centrales ou territoriales.
Dans ces deux cas, les logiciels développés ont vocation à être libre. Pour la forge Adullact.net, les logiciels hébergés sont des logiciels métiers en lien avec les administrations et collectivités françaises.
en Europe
- OSOR : destinée aux administrations européennes (Open Source Observatory and Repository). OSOR.eu est une sorte de méta-forge de forges nationales en Europe, créant ainsi une fédération européenne de référentiel de logiciels open-source financés par des fonds publics.Cette forge est ouverte aux projets de logiciels libres open-source à destination des administrations publiques européennes.La forge OSOR.eu et l'ensemble de ses services sont exclusivement réservés aux échanges et collaborations sur des logiciels libres et open-source liés aux Systèmes d'Information des administrations.
à l'international
- Sourceforge : Open source international. Cette forge accueille tout projet de développement. Elle est certainement la plus connue au niveau international. Les développements sont exclusivement OpenSource.
Les forges liées à un organisme ou une tutelle Recherche en France
- INRIAGForge : l'objectif de InriaGForge est de fournir à toutes les personnes travaillant à l'INRIA une infrastructure pour leurs collaborations scientifiques avec les partenaires internes ou extérieurs à l'institut.
- Mulcyber : destinée aux membres du département MIA (Mathématiques et Informatique Appliquée) de l’INRA (Institut National de la Recherche Agronomique) et à leurs collaborateurs.
Dans ces deux cas, tout projet hébergé doit être ouvert par un membre de la communauté ciblée.
Les besoins et les apports
Ne sont cités ici que les besoins et apports que nous connaissons. Compte-tenu de la très grande diversité des types de développements (méthodes, outils, langages, contraintes diverses) une enquête menée auprès des développeurs de différents organismes ESR est nécessaire pour obtenir une liste quasi exhaustive des besoins mais également des attentes. Cette enquête est un des points de notre proposition dans le chapitre suivant.
Parmi ces acteurs d'une forge nous pouvons identifier trois catégories :
- les développeurs, amenés à écrire du code, mais également des spécifications, à gérer l'avancement du projet, les différentes versions, le suivi du code, les tickets …..
- les utilisateurs, amenés à utiliser les logiciels proposés et donc à signaler des erreurs, des manques, à effectuer des retours d'expérience, à proposer des modifications, des améliorations, ….
- les laboratoires, les établissements, les instituts, les tutelles qui pilotent indirectement l'activité de développement
En terme de besoins et d'apports, nous pouvons dans un premier temps lister les points généraux suivant :
pour les développeurs
- lieu d'archivage/stockage de codes logiciels
- nécessité de disposer d'outils de gestion, de suivi de projets, de diffusion, de suivi de bugs …
- espace de travail coopératif en particulier pour les développements logiciels (libres ou non) de projets de recherche
pour les utilisateurs
- lieu d'échanges avec les développeurs et d'autres utilisateurs
- source d'information permettant la réutilisation de codes: en atteignant une masse critique , une forge permettrait d'avoir une vue plus large des codes réalisés en dehors du domaine d'activité habituel du développeur
- opportunité de se positionner comme utilisateur d'un service et non fournisseur au niveau d'un laboratoire
- masse critique : un petit labo ne pourra pas mettre en oeuvre un service de forge
- possibilité de profiter d'une veille technologique sur les outils/fonctionnalités fournis par la forge
pour les laboratoires/établissements/instituts/tutelles
- outil d'observation de l'activité de développement par laboratoire, établissement, institut, tutelle, thème scientifique, …..
- outil pour pérenniser les développements (souvent perdus quand le thésard part)
- outil pour améliorer les méthodes et la qualité des développements
En couplant cette forge avec la plate-forme PLUME (très visible et disponible), la production logicielle des laboratoires, instituts et tutelles peut être rendue très visible facilitant ainsi la valorisation de cette production
Enfin, de façon plus large, l'association forge-projet PLUME peut constituer une vitrine dont les objectifs principaux seront d'assurer une meilleure connaissance/diffusion de la production logicielle ESR, et donc d'offrir des opportunités de coopération plus importantes.
Notre proposition
Une forge est un service “lourd” qui nécessite des moyens humains et matériels conséquents pour répondre au mieux aux attentes des utilisateurs en termes de fonctionnalités proposées et en termes de contraintes de services. Notre proposition est qu'avant de se lancer dans la mise en place d'un service de forge, il est nécessaire de :
- Identifier les utilisateurs potentiels de cette forge, individuellement mais aussi en terme d'entités administratives : le périmètre.
- Recueillir les besoins et les attentes de ces utilisateurs pour choisir le(s) logiciel(s) de forge à mettre en oeuvre si nécessaire et le niveau de service souhaité.
- Contacter les responsables des forges existantes pour s'insérer dans le paysage en cohérence avec l'existant.
- Identifier un centre de service prêt à assurer ce service et définir avec lui les moyens nécessaires.
- Identifier les options techniques possibles en terme de produits et d'organisation, et proposer une solution. En particulier il peut être nécessaire d'avoir 2 forges : une publique (pour la distribution publique et l'autre interne (pour les projets non libres, les projets qui nécessitent de la sécurité et pour la création collaborative de documentation).
Ensuite rédiger un projet, le proposer à tous les organismes-établissements ESR potentiellement intéressés, en particulier le CNRS. Si un certain nombre est d'accord, démarrer rapidement la mise en place du service forge avec un noyau de départ (les organismes et établissements partants), mais extensible aux autres membres de l'Ens Sup – Recherche.
Premières phases
- Mettre en place un comité de pilotage stratégique provisoire (qui sera remplacé par les représentants officiels des différentes structures impliquées, le noyau de départ, quand elles seront identifiées). Nous proposons au départ : Véronique Baudin (LAAS, DEVLOG et PLUME), Violaine Louvet (ICJ, Réseau Calcul et PLUME), Loïc Gouarin (LAGA, porteur du projet DEVLOG, Réseau Calcul et PLUME), Dominique Boutigny (CC IN2P3) et Jean-Luc Archimbaud (UREC et PLUME). Dans la phase actuelle, ce comité pilotera le projet et les contacts officiels avec les différents organismes-établissement et forges.
- Nommer un responsable de projet. Nous proposons un binôme : Véronique Baudin et Violaine Louvet
- Monter un comité technique, à définir par Véronique et Violaine, se focalisant sur le recueil des besoins, l'étude de l'existant et l'étude des solutions techniques dans un premier temps.
Proposition de calendrier pour 2010
- Mi février 2010 : Constitution des comités de pilotage et technique
- Fin février 2010 : Finalisation et mise en ligne d'une enquête sur les besoins de la communauté (à diffuser largement)
- Fin avril 2010 :
Bilan de l'enquête.
Le comité technique fournit une première analyse sur les outils de déploiement de forges.
- Juin 2010 : Le comité de pilotage provisoire et le comité technique rendent leurs recommandations.
- Juillet 2010 : Sur la base des recommandations, sélection d'un outil à mettre en oeuvre et d'un site d'exploitation
- Septembre 2010 : Proposition de mise en place de service forge auprès des Instituts, Etablissements... et constitution du noyau de départ.
- Octobre 2010: mise en service pour un petit nombre d'utilisateurs d'une forge pilote
Identifier quelques utilisateurs pour obtenir une population représentative des besoins exprimés dans l'enquête
- Décembre 2010: retours d'expérience (analyse, avis, critiques, ......)
- 2011 : définition et mise en place d'un service définitif