Le projet Coclico se situe dans le domaine des forges open source et cible la convergence progressive de forges dérivées de SourceForge et évoluant aujourd'hui dans des directions similaires pour retrouver une dynamique forge OSS et structurer un écosystème libre pour lequel il existe une masse critique en France.
Le projet a choisi de se concentrer sur la famille des forges libres issues de SourceForge car elles représentent beaucoup de déploiements et parce que beaucoup d'adaptations ont été réalisées pour leur intégration avec des Systèmes d'Information d'entreprise comme avec d'autres outils.
Par ailleurs, l'adhérence pour tous les projets hébergés sur ces environnements entraine des difficultés à migrer vers d'autres forges de « nouvelle génération ». Ainsi le projet a choisi une démarche d'adaptation progressive de ces forges en tirant parti de l'effet de levier lié à l'action concertée des acteurs du domaine.
Sommaire |
Gforge (et ses dérivées comme Novaforge), tout comme Codendi, sont des descendants du code de SourceForge, la forge initialement utilisée pour développer et héberger un certain nombre de projets Open Source en ligne. Lorsque le fournisseur (VA Software) a décidé de ne plus publier le code sous licence Open Source, un « fork » du projet a été réalisé produisant ainsi la première version de GForge, en 2001, puis ses dérivés. Parallèlement Xerox initia Codex, également basé sur le code de Sourceforge, qui deviendra Codendi en 2008.
Gforge est un environnement mature et riche en fonctionnalités. Les services sont conditionnés par des outils agrégés de façon centralisée et présentés au travers d'une interface simple.
L'architecture de ces forges définit un modèle de composants pour l'ajout de fonctionnalités à la plate-forme, au moyen d'un mécanisme de plugin. L'usage de ce mécanisme permet d'intégrer de manière modulaire des fonctions extérieures ou même de remplacer les fonctions existantes par de nouvelles.
Illustration 1: Arbre généalogique des forges libres
BerliOS et Codendi sont des forges libres dérivées de la souche SourceForge. Morfeo, QualiPSo, NovaForge sont dérivées de versions de GForge.
BerliOS est développée par Fraunhaufer Fokus en Allemagne. Morfeo est développé par l'université Rey Juan Carlos en Espagne.
Le projet Coclico réunit les développeurs moteurs de la communauté GForge/FusionForge ainsi que les acteurs impliqués dans les autres forges dérivées: Codendi, QualiPSo, NovaForge, Picoforge.
Cette section décrit l'état de l'art des différentes forges cibles et les avancées envisagées par rapport aux axes de travail du projet. Plus de détails sur l'état de l'art des forges Codendi, QualiPSo, NovaForge, Picoforge et QualiPSo sont présentés en annexe.
Les fonctions de gestion des utilisateurs et des sessions, les notions de projets et de groupes, les problématiques de permissions et de contrôle d'accès, de suivi des accès (logging) et de statistiques parfois existent, parfois n'existent pas actuellement dans les forges et sont souvent instanciées de façons différentes et parfois mal définies.
Coclico propose d'homogénéiser ces notions en se basant sur un mécanisme de fédération d'identités pour permettre l'implémentation de politiques de sécurité avancées et flexibles dans une forge et améliorer la capacité d'intégration d'outils hétérogènes, entre eux et avec un SI existant. Cette solution permettra également le support de "fédérations d'identités" pour des forges distribués au sein de grandes organisations et l' unification de l'accès d'une même personne à différents projets hébergés dans différentes forges.
Les forges existantes sont architecturées selon un principe relativement monolithique, et bien que fournissant des fonctionnalités puissantes pour les projets hébergés, elles manquent de fonctions d'administration permettant l'import, l'export, la migration de projets et d'équipes entre forges. L'effort d'administration pour procéder à de telles opérations est substantiel et requiert des compétences pointues, qui ne sont que rarement disponibles dans les équipes qui opèrent les forges, ou dans les projets hébergés.
Coclico propose donc de définir un format d'échange standardisé, ouvert, capable de représenter avec une sémantique commune l'ensemble des données d'un projet, d'une communauté, et de proposer des implémentations minimales pour au moins deux forges afin de valider techniquement cette proposition.
Aujourd'hui, les forges fournissent les outils nécessaires au développement: gestion de code source, outils de suivi, outils de communication, mais ne précisent pas un cadre précis pour l'utilisation de ces outils. C'est aux chefs de projet de personnaliser leur environnement pour répondre aux besoins de leur projet, et de l'adapter, quand c'est possible, à la méthodologie utilisée par leur équipe.
Coclico propose des solutions permettant de faciliter l'adaptation des outils en fonction de méthodologies de développement par la mise en oeuvre de modèles dans la forge (modèles de projets, d'outils de suivi, de documents, etc). Des implémentations de modèle pour SCRUM et CMMI seront également proposées.
Les principes d'architecture d'un environnement forge sont basés sur un dépôt central contenant l'ensemble des artefacts projet. Bien que cette architecture favorise la navigation entre les artefacts projets, l'intégration des différents outils (outil de suivi, tâche, code source, livraisons, wiki, discussions) est aujourd'hui insuffisamment élaborée pour permettre la traçabilité des exigences au code source, en passant par les cas de tests, demandes de changement et livraisons.
Coclico propose d'améliorer la traçabilité entre tous les artefacts projets des exigences au code source en permettant de modélisant les exigences, de les associer à des artefacts de la forge et en élaborant un tableau de bord des livraisons dans un contexte de développement en mode integration continue.
Les premières utilisations des forges s'arrêtaient aux aspects collaboratifs du développement de logiciel: partage d'information, communication entre les membres d'un projet, dépôt central des fichiers et du code. Le développement du code lui-même se faisait hors de la forge, en utilisant les outils propres au développeur.
La standardisation de ces outils, à travers des environnements de développement intégrés libres et, par là-même, partageables et largement utilisés, a ouvert la voie à une meilleure intégration de ces deux mondes, au niveau du poste client.
Des premiers pas ont été faits avec la fonction Mylyn de Eclipse mais ils sont encore limités à l'accès depuis le poste du développeur aux environnements de gestion d'anomalies.
Coclico propose d'étendre l'intégration entre l'environnement de développement et la forge en permettant au développeur d'accéder aux fonctions offertes par la forge, notamment les fonctions de gestion de projet nécessaires à l'activité du développeur (gestion de mes tâches, de leur avancement, de mon planning, ...), sans devoir changer de poste client.
Les principaux verrous technologique que le projet se propose de lever concernent:
Pour atteindre ces objectifs et lever les verrous liés à l'interopérabilité dynamique entre forges, la recherche et l'indexation d'informations distribuées et la synchronisation des données dans les méta-projets distribués sur plusieurs forges, Coclico va industrialiser les résultats de recherches sur les modèles sémantiques sur la base de briques techniques et de prototypes avancés existants.