Forges

Un article de PlanetForge.

Jump to: navigation, search

Document de travail importé du wiki overcrowded.anoptique.org

MERCI DE NE PAS MODIFIER CET ARTICLE, INITIALEMENT SOUS LICENCE ART LIBRE, REPRODUIT ICI, SANS PLUS DE CONSENSUS DE LA PART DE SES REDACTEURS INITIAUX : DISCUSSION DANS Discuter:Forges (OlivierBerger)

Version française / English version below

Sommaire

Forges / Forges

Description / Description

Le développement collaboratif de logiciels a été popularisé par le monde du logiciel libre. Utiliser les effets de réseau, assurer la diffusion et le développement en réseau (donc avoir de nombreux contributeurs et permettre une certaine auto-organisation), permettre une coopération à grande échelle, telles sont les possibilités offertes par les plates-formes de travail collaboratif (en particulier celles appelées « forges » souvent utilisées pour le développement de logiciels libres).

Ces outils existent et répondent de façon satisfaisante à de nombreux besoins, mais certaines limites se font jour. D'abord, ils sont actuellement avant tout destinés aux développeurs informatiques, et pas à d'autres acteurs comme les simples utilisateurs des logiciels, ou à d'autres disciplines comme les sciences, le graphisme, la traduction, etc.. Ensuite ils manquent d'une certaine ouverture de et vers l'extérieur, en permettant très peu d'exportation ou d'importation d'informations vers d'autres sites ou d'autres logiciels (via des interfaces de communication, des services Web). Il est possible d'étendre les capacités collaboratives de ces outils, pour permettre un travail plus efficace, pour toucher un public plus large (approche pluridisciplinaire) et favoriser de nouveaux usages, tant au niveau des développeurs qu'au niveau d'autres types d'utilisateurs.

Objectifs / Objectives

Nous souhaitons étendre les capacités et les fonctionnalités d'une ou plusieurs forges libres existantes suivant les axes suivants : We'd like to extend the capabilities and functionalities from one or several existant free software forges, according the following goals:

Renforcer l'approche pluridisciplinaire / A more multidisciplinary approach

Passer de forges conçues par et pour des développeurs : From forges designed and used only by developers:

Modèle:Attacher file="forges developpeurs.png" desc="Des forges pour les développeurs" class="center"

À des forges multidisciplinaires (sciences, le graphisme, la traduction, etc.) : To multidisciplinary forges (science, graphism, translation, etc.):

Modèle:Attacher file="forges multidisciplinaire.png" desc="Des forges multidisciplinaires" class="center"

Cela pourrait permettre de découvrir de nouvelles voies pour le travail collaboratif par l'étude des usages et des interactions. It could lead to discover new ways for collaborative work by studying uses and interactions.

(quelques remarques à virer et/ou remanier, --YannLeGuennec) Still untranslated remarks

Aujourd'hui, l'accès à une forge de développement logiciel requiert des niveaux d'expertise et de technicité informatiques très avancés. Hors il est de plus en plus démontré (théorie du metadesign - à développer, citer des sources..) qu'un logiciel n'aura des effets importants dans le développement global, et éventuellement durable, que dans la mesure ou ses utilisateurs potentiels en seront aussi ses concepteurs, ce à un niveau ou à un autre du processus de conception et réalisation , (lesquels s'imbriquent intimement dans le cadre d'un développement itératif continuel - voir développement soutenable ? ). Il est donc important, voire stratégique, d'ouvrir ces interfaces de développement au plus grand nombre, d'en simplifier l'accès et les potentialités contributives. Cette évolution requiert dans l'état actuel des choses une implication mutuelle des développeurs et des acteurs les plus divers, mais aussi et surtout un contexte technologique où cette convergence des intérêts mutuels puisse s'exprimer. Le présent projet cible cet objectif de mise en oeuvre de ce contexte.

Ce projet s'inscrit ainsi également dans une logique fondamentale qui tend a rapprocher les langages informatique des langages dits naturels. Ainsi par exemple; HTML fut créé pour être utlisé par des non-informaticiens, mais dans le même mouvement, les langages C et par la suite C++, sont des tentatives de rapprochement du langage binaire vers les langues et logiques orales et écrites plus spontanément manipulables par un plus grand nombre de personnes qui partagent des fondamentaux culturels similaires.

How "ComputationalMachine (CM)" have been used and how "RelationalMachine (RM)" may be used ?


CM                        |     RM
Interactivity             |   Interoperability
Tools                     |   Functionalities
Ingredients               |   Recipes
What ?                    |   How ?

Rendre les plates-formes type forges plus ouvertes / More opened forges

Passer de forges un peu fermées : From not so-opened forges:

Modèle:Attacher file="forges fermees.png" desc="Des forges un peu fermées" class="center"

À des forges plus ouvertes : To more opened forges:

Modèle:Attacher file="forges ouvertes.png" desc="Des forges ouvertes" class="center"

L'idée est offrir de nouvelles possibilités d'interactions entre les forges elles-mêmes, entre les forges et le reste d'Internet, entre les forges et l'environnement de travail local des utilisateurs. The goal is to bring new interaction opportunities between forges themselves, between forges and the rest of Internet, between forges and the desktop.

Renforcer l'écosystème des forges / Reinforce forges ecosystem

Passer de forges isolées : From isolated forges:

Modèle:Attacher file="forges isolees.png" desc="Des forges isolées" class="center"

À des forges en réseau : To connected forges:

Modèle:Attacher file="forges en reseau.png" desc="Des forges en réseau" class="center"

(quelques remarques - initialement contribuées par EricCousin, augmentées par OlivierBerger) Still untranslated remarks Mettre des forges en réseau est une idée proche de ce qui a été imaginé au GET dans le cadre des projets PeCoRes. Comme on peut le lire sur la page d'accueil de notre PicoLibre ( http://www.picolibre.org/index.fr.html ) : PicoLibre est développée dans le cadre du projet PeCoRes ( http://picolibre.enst-bretagne.fr/projects/pecores/ ). Dans l'avenir, PicoLibre respectera le protocole d'interconnexion de plateformes de développement CoopX en cours de définition (cf http://coopx.eu.org ).

Le projet CoopX n'a jamais réussi à décoller en tant que tel, même si les discussions ont duré un certain temps. Le temps et les pannes et autres manips malheureuses ont eu raison de http://coopx.eu.org. J'ai essayé de rescuciter un max de choses dans : CoopX

Ces travaux n'ont en fait pas pu être menés à terme, mais l'idée est là, et quelques réflexions avaient été conduites et concrétisées :

  1. Un réseau de serveurs permet d'allier l'avantage d'un grand périmètre total de projets hébergés, tout en favorisant la proximité. Par ex, une entreprise pourra souhaiter disposer de sa forge en local (et donc contrôler sa disponibilité), mais aussi garder des liens étroits avec des projets d'une autre entreprise, de la communauté ou même d'un autre site de la même entreprise. .
  2. Il est utile de pouvoir migrer facilement un projet d'une plateforme à une autre. Par exemple, on commence par des dev internes (sur une plateforme interne) , puis quand le projet prend une certaine ampleur, on souhaite l'ouvrir, et donc le migrer vers une forge ouverte à l'extérieur. Ca permet aussi de changer de type de plateforme
  3. Le réseau de forges, c'est un atout dans la disponibilité, l'extensibilité (scalability). C'est plus de souplesse dans la vie des projets.

Faciliter l'auditabilité des projets hébergés

Les forges permettent d'héberger des projets en faisant apparaître simultanément l'historique des interactions entre contributeurs, et les différentes étapes de l'élaboration des artefacts produits. Par la disponibilité de ces éléments, qui favorise l'ouverture des projets, la compréhension des mécanismes à l'oeuvre, les forges permettent à la communauté scientifique d'observer, en vraie grandeur, les mécanismes à l'oeuvre. Il est alors possible de comparer les projets, de mieux comprendre les mécanismes de fonctionnement des communautés, plein d'études pluridisciplinaires intéressantes. Il est aussi possible d'envisager que ces mêmes métriques observées par les chercheurs s'intéressant à la dynamique des projets, puissent intéresser les participants des projets eux-même. Il est donc souhaitable que les nouvelles plate-formes intègrent des API et autres mécanismes permettant (dans le respect des règles de confidentialité convenues) d'exporter un ensemble de données sur la vie des projets (dans des formats standards), qui seront alors disponibles pour tous ceux qui cherchent à faire des études dessus. Exemple de projets conduisant ce genre de "mining" systématiques sur les projets libres des forges : FLOSSMole : http://ossmole.sourceforge.net/

État de l'art / State of the art

Introduction / Introduction

Une forge ou plate-forme d'hébergement de projets logiciels est un ensemble réunissant les technologies du travail coopératif et du génie logiciel pour permettre le développement coordonné de logiciels en équipe. Les services de base d'une telle plate-forme sont axés sur le partage de fichiers (code source, données et exécutables) et l'animation du groupe. Ils permettent la rédaction et la programmation collaborative, et facilitent la communication dans le groupe grâce à des outils associés aux projets tels que des gestionnaires de listes de messagerie, des logiciels de suivi des tâches et de gestion des rapports d'anomalies. L'utilisation d'une plate-forme de ce type améliore la qualité des réalisations en accélérant les processus d'échange entre développeurs et les cycles de version des logiciels, tout en facilitant l'implication des utilisateurs dans la détection des erreurs ou la mise en lumière des fonctionnalités pertinentes des logiciels.

L'utilisation intensive des forges, de même que l'existence de réalisations plus récentes ou en gestation (pensons à LibreSource par exemple) montre l'intérêt que ces outils éveillent dans la communauté des développeurs (notamment celle des logiciels libres), mais pas seulement, puisqu'aujourd'hui de grands centres de recherche sont déjà équipé de déclinaisons de ce type de plate-formes, pour leurs usages internes.

Fonctionnalités présentes sur tout ou partie des forges : 1) Globalement au niveau de la forge

  • catégorisation des projets
  • recherche parmi les projets
  • statistiques globales de la forge (statistiques générales, projets les plus actifs, projets les plus téléchargés, etc.)
  • bibliothèque de bouts de code réutilisables
  • fonctions de personnalisation par utilisateur
  • nouvelles/dépêches/annonces
  • liste des derniers projets créés
  • recherche parmi les développeurs et possibilité d'inviter des développeurs
  • évaluation des développeurs

2) Au niveau de chaque projet

  • infos sur le projet : résumé, état courant, public(s) visé(s), plateforme(s) visée(s), licence, langage(s) utilisé(s), catégorie, liste des participants, date de création
  • nouvelles/dépêches/annonces
  • téléchargement des versions publiées
  • gestion de versions (CVS, Subversion, etc.)
  • forums de discussion
  • listes de diffusion
  • captures d'écran
  • base de données
  • gestion d'un site web/lien vers un site web externe
  • système de suivi (demandes d'aide, correctifs, bogues, nouvelles fonctionnalités, etc.)
  • gestion des tâches
  • compilation du code
  • statistiques du projet
  • sondages
  • wiki
  • FAQ
  • outil de création de rapports
  • gestion de documents
  • recherche sur le suivi, les tâches, etc.
  • accès à un interpréteur de commandes

Axes d'évolution / Evolutions

Sourceforge : près de 1900 demandes d'évolution en attente, souvent des choses mineures (comme rajouter un élément dans une liste de choix de licences, de pays, de langue, etc.). Parfois des demandes de « vraies » nouvelles fonctionnalités, type diffusion des fichiers via BitTorrent par exemple.

GForge : quelques dizaines de demandes d'évolution en attente. J'ai relevé des demandes anciennes de support Webdav, SOAP, etc.

Savane : quelques dizaines de demandes d'évolution en attente, surtout des choses mineures.

Libresource : un bugtracker accessible publiquement pour proposer, et une discussion ouverte sur le stand d'Artenum lors de Solutions Linux 2007.

En vrac pour le moment :

  • Traduction en ligne : offrir la possibiilté de traduire en ligne sur les forges, donc édition des fichiers PO d'un projet de manière conviviale, avec création d'une base de traduction au niveau de la forge, avec possibilité éventuelle d'import/export vers d'autres forges.
  • Contrôle d'accès : les forges destinées à l'usage interne pour les entreprises ont besoin de plus de contrôle d'accès que les forges communautaires disponibles sur internet (trivialité) ; les forges libres étant plutôt du second type, elles ont en général des fonctionalités limitées niveau contrôle d'accès, c'est-à-dire ne permettent pas une gestion fine des droits
  • RSS de toutes les nouveautés, quelle que soit la catégorie (modifications des sources, des entrées du système de suivi, publication d'annonces, nouveaux fichiers, etc.)
  • Diminuer le nombre de clics nécessaire pour chaque opération (AJAX est une piste pour cela).
  • Intégration aux IDE : exemple pouvoir sortir une version au niveau IDE qui créé le .tar et le .asc GPG, commit les sources et les tague avec le numéro de version, télécharge le .tar et le .asc sur la forge, créé automatiquement une annonce de nouvelle version à partir du Changlog, etc.
  • Permettre l'édition LaTeX / MathML / *ML de manière générale
  • API d'accès aux informations
  • Permettre des liens bidirectionnels entre la documentation (algorithmes notamment) et le code (genre tel algo est codé là, et tel code est expliqué ici).
  • Fournir des statistiques sur la fréquentation du projet (stats web, etc.), voire des infos sur la navigation au sein d'un projet, notamment pour analyser les usages
  • Gèrer des trucs & astuces pour un projet donné
  • Permettre (voir inciter à) une association entre les fichiers binaires téléchargeables et le tag dans le gestionnaire de sources
  • Gestion d'un calendrier (annonces de confs, de coding parties, de bug sqashing parties, de rencontres avec les utilisateurs, de dates prévisionnelles de sortie, etc.)
  • Recherche : permettre une recherche sur toute la forge ou sur un projet, sur tout ou partie des différentes catégories de données
  • Synchroniser les sorties de version avec les sites d'annonce (Freshmeat, kde-apps, etc.)
  • Gestion des TODO (reconnaissance des tags TODO dans le code, mise en valeur dans la doc générée, recherche possible sur les TODO, etc.)
  • Pousser à la signature numérique des fichiers (faire prendre conscience aux utilisateurs de l'importance de la signature, particulièrement avec les systèmes de miroir et de diffusion en P2P de fichiers qui pourraient permettre d'insérer des fichiers contrefaits).
  • Permettre des liens inter-catégories : une entrée du suivi qui pointe vers la doc, la doc qui pointe vers du code, de la doc vers des fichiers (par exemple les fichiers annexes d'une doc), etc.
  • Bibliographie : liens ISBN type Mediawiki, citeseer, bibTeX. Import/export/accès aux références
  • Import/export des données inter-forge
  • Génération automatique de la documentation via Doxygen

Évolutions envisagées sur GForge dans le cadre de Morfeo :

  • Mejoras de usabilidad del interfaz web mediante análisis psicomotrices y señaletica.
  • Améliorer l'utilisabilité de l'interface web à l'aide d'analyses psychomotrices et de la signalétique
  • Herramientas de verificación de estándares de derecho libres de patententes y pago de royalties que los distintos proyectos pueden usar para estar conforme a los mismos
  • Vérification des standards juridiques libres de tout brevet et paiement des redevances que les divers projets peuvent devoir utiliser pour les respecter
  • Herramientas certificación de calidad para uso de los proyectos
  • Certifications qualité à utiliser dans les projets
  • Incorporación de herramientas avanzadas de análisis estadísticos
  • Incorporation d'outils avancés d'analyse statistique
    • Monitorización de proyectos
    • Monitoring des projets
    • Previsión de necesidades
    • Prévisions des besoins
    • Cuadros de mando
    • Tableaux de bord
  • Mejora de la gestión de documentación, edición en colaboración y conversión de formatos
  • Amélioration de la gestion documentaire, édition collaborative et conversion de formats
  • Mejoras en la accesibilidad (WAI) del interfaz web
  • Amélioration de l'accessibilité de l'interface Web ([www.w3.org/WAI WAI])
  • Adaptación al modelo empresarial. Funcionalidad de financiación de proyectos:
  • Adaptation au modèle de l'entreprise. Fonctionnalités de financement (suivi budgetaire ?) des projets :
    • Gestión web de donaciones/ingresos/pagos
    • Gestion web des donations, revenus, paiements
    • Gestión web de contratación, intermediación y notaría
    • Gestion web des locations, intermédiations et notaires (???)
    • Supervisión de hitos
    • Supervision des échéances
  • Mayor integración de herramientas de mensajería instantánea:
  • Meilleure intégration des développements de messagerie instantanée
    • salas permanentes por proyectos
    • Salles permanentes pour chaque projet
    • presencia virtual web de los colaboradores en línea
    • Présence virtuelle web des collaborateurs en ligne
  • Integración de una herramienta de pizarra de trabajo colaborativa (o wiki gráfico)
  • Intégration d'un tableau blanc de travail collaboratif (ou wiki graphique)
  • Integración de una herramienta de gestión de elementos multimedia
  • Intégration de la gestion d'éléments multimedia
    • imágenes y vídeos, para organizar capturas de pantalla del software de los proyectos, mostrar demos, etc.
    • images et vidéos, pour organiser des captures d'écran du logiciel des projets, montrer des démos, etc.
  • Mejoras en la unión (sindicada) con otras iniciativas gforge similares
  • Améliorer la collaboration avec d'autres initiatives gforge similaires
  • Integración de un 'orkut' libre, para facilitar la creación de redes sociales de comunicación entre proyectos, desarrolladores y coordinadores
  • Intégration d'un 'orkut' libre, pour faciliter la création de réseaux sociaux de communication entre les projets, les développeurs et coordinateurs
  • Integración de un Sistema de Gestión de Contenidos (CMS) instalable a petición de los administradores en la parte web de los proyectos, con una gestión web y incluida la gestión del aspecto gráfico. De esta forma es posible tener un web por proyecto altamente dinámico de una forma rápida
  • Intégration d'un système de gestion de contenus (CMS), installable sur demande par les administrateurs dans le partie web des projets, avec une gestion web y compris de l'aspect graphique. De cette façon, il est possible d'obtenir rapidement pour chaque projet un web hautement dynamique.

Next generation forges at BarCampParis

Références / References

Liste de quelques services de forges existants, proposant l'hébergement de projets, certains en accès ouvert, d'autres semi-restreints : Some existant forge services, with project hosting, with open or semi-open access:

Chercher des forges dans les projets libres ? : http://swik.net/forge

Quelques logiciels libres de forge : / Some free forge software:

  • GForge (licence GPL, issu de la même base de code que Sourceforge / GPL license, fork from Sourceforge software )
  • LibreSource plateforme logicielle libre (licence QPL) dédiée au développement logiciel et à la gestion de communautés distribuées. Développée dans le cadre d'un projet RNTL / free forge plateform (QPL license), related to software development and distributed community management. Developed as a RNTL project
  • Savane (licence GPL, issu de la même base de code que Sourceforge / GPL license, fork from Sourceforge software )
  • Trac (licence BSD modifiée / modified BSD license )
  • VHFFS
  • SiteForge (licence GPL / GPL license )
  • PicoLibre (licence GPL, avec notamment PHPGroupware, Sympa, CVS, OpenLDAP / GPL license, with PHPGroupware, Sympa, CVS, OpenLDAP, ...). http://proget.int-evry.fr/portail/TwikiPage&wikiweb=Pftcr.Picolibre&wikipage=WebHome
  • KForge (licence GPL / GPL license )
  • Berlios Developer (licence GPL, issu de la même base de code que Sourceforge / GPL license, fork from Sourceforge 2.5 software )
  • ...

Quelques logiciels propriétaires de forge : / Some proprietary forge software

Logiciels libres web pour la traduction collaborative : / Online free collaborative translation:

Suivi des bugs : / Bug tracking:

Relations inter-forges : / Interforge relations

Publications scientifiques : / Scientist publications

Qualité des développments en logiciel libre : / Quality in free software development

Héphaïstos Conference: première conférence mondiale sur les plateformes de développement collaborative libres à Paris les 16 et 17 novembre 2006/ First International Conference on Open Source Collaborative Development Platforms - 16..17th of November 2006, Paris, France (comptes-rendus / reports: http://www-inf.int-evry.fr/~olberger/weblog/2006/11/21/report-from-the-hephaistos-conference/)

Schémas XML utiles : /Useful XML schemas:

Recherche dans le code source : / Code search:

  • Codase http://codase.com/
  • Google CodeSearch http://www.google.com/codesearch
  • Koders http://www.koders.com/
  • Krugle http://www.krugle.com/
  • CIA : http://cia.navi.cx : "CIA is a system for tracking open-source projects in real-time. People all over the world are constantly collaborating and creating software, creating a constant flow of new code and new ideas. CIA provides an easy way for people to observe this flow. Developers can see the latest changes to their code immediately, users can subscribe to see the latest bugfixes in their favorite programs. Everyone can take a chance to step back and look at open source development as a whole."