Réflexions autour des
Plate-formes pour ledéveloppement collaboratifdes logiciels libres« forges » logicielles
Olivier Berger, TELECOM & Management SudParis (ex. GET/INT) - Département INF<olivier.berger@itsudparis.eu>
Vendredi 9 mai 20084ème GNU/Linux days (ENSALinux)Agadir (Maroc)
O. BergerPage 2 / 74 Agadir GNU/Linux days 2008
Le logiciel libre c'est super !
O. BergerPage 3 / 74 Agadir GNU/Linux days 2008
Mais tant qu'il y a quelqu'un pour le développer ;-)
Comment il est développé ?
O. BergerPage 4 / 74 Agadir GNU/Linux days 2008
Présentation personnelle
Ingénieur de Recherche au département INF à TELECOM & Management SudParis (ex GET/INT) à Evry (France)
Ancien V.P. d'APRIL (http://www.april.org/)Récent contributeur de la distribution DebianRecherche :
• plate-formes de dév. collaboratif (forges)• Développeur PicoForge http://www.picoforge.org/• Projets de recherche sur le logiciel libre
(Commission Européenne FP6 IST CALIBRE)Google est mon ami, mais plus de détails sur :
• http://www-public.it-sudparis.eu/~berger_o/• http://www-public.it-sudparis.eu/~berger_o/weblog/
O. BergerPage 5 / 74 Agadir GNU/Linux days 2008
Plusieurs visites au Maroc
Plusieurs conférences à Casablanca
Plusieurs séjours en touriste ;-)
Bonheur de compléter ma connaissance du pays à Agadir :-)
O. BergerPage 6 / 74 Agadir GNU/Linux days 2008
Objectif de cette conférence
Donner une idée des enjeux liés à la collaboration dans les projets libres
Rappel quelques fondamentaux du modèle libre
« Démythifier » un modèle loin d'être magique
Donner un aperçu (très rapide) des outils Inciter à s'engager dans le développement des
logiciels libres, et à contribuer autant que possible
Agadir GNU/Linux days 2008
Contenu
Introduction générale
Agadir GNU/Linux days 2008
Introduction générale sur le libre
PrincipesGéopolitique de l'Industrie logicielleHistorique
O. BergerPage 9 / 74 Agadir GNU/Linux days 2008
Définition du logiciel libre
« La liberté d'exécuter le programme, pour tous les usages (liberté 0).
La liberté d'étudier le fonctionnement du programme, et de l'adapter à vos besoins (liberté 1). Pour ceci l'accès au code source est une condition requise.
La liberté de redistribuer des copies, donc d'aider votre voisin, (liberté 2).
La liberté d'améliorer le programme et de publier vos améliorations, pour en faire profiter toute la communauté (liberté 3). Pour ceci l'accès au code source est une condition requise. »
Définition de la Free Software Foundation (FSF)
O. BergerPage 10 / 74 Agadir GNU/Linux days 2008
IntroductionPrincipesGéopolitique de l'Industrie logicielleHistorique
O. BergerPage 11 / 74 Agadir GNU/Linux days 2008
Software Wars
O. BergerPage 12 / 74 Agadir GNU/Linux days 2008
Immense élan vers le libre
Réduire les coûts (commoditisation)Effets de réseaux pour établir des standardsMutualiser la R&D« Co-opétition » :
• coopération• compétition
Prendre position dans le libre pour maîtriser son évolution
Modèles économiques ?
O. BergerPage 13 / 74 Agadir GNU/Linux days 2008
« Commoditisation » du logiciel
O. BergerPage 14 / 74 Agadir GNU/Linux days 2008
Valeur du libre ?
Exemple: Debian 2.2 GNU/Linux (2001)Lignes de code source :
• 55 201 526 • dont noyau Linux < 6%
Si applique métriques traditionnelles du développement en entreprise :• Effort estimé : 14 005 hommes x années• Délai estimé : 6,04 ans (équipe de 2 318 p.) • Coût développement : US$ 1 891 990 000
(Source: "Counting potatoes" par Gonzalez-Barahona et al)
Cf. http://ohloh.net pour d'autres chiffres
O. BergerPage 15 / 74 Agadir GNU/Linux days 2008
ValeurS : mouvement logiciel libre
Philosophie : Liberté, Egalité, Fraternité• Liberté : faire des copies, améliorer, distribuer• Égalité : mêmes droits pour tout le monde • Fraternité : Co-opération pour construire des
biens communsMouvement « politique »
• Éthique, philosophie, activisme politique• Richard M. Stallman et la FSF (Free Software
Foundation : http://www.fsf.org) • APRIL, en france http://www.april.org/
O. BergerPage 16 / 74 Agadir GNU/Linux days 2008
IntroductionPrincipesGéopolitique de l'Industrie logicielleHistorique
O. BergerPage 17 / 74 Agadir GNU/Linux days 2008
Chronologie
Au début était le code source (< 80) Unix, BSD (> 80)
GNU project & Free Software Foundation créés par Richard M. Stallman (> 84)
Noyau Linux créé par Linus Torvalds (> 91) Distributions GNU/Linux ( > 95) IBM entre en jeu (2001) Sun rachète StarOffice et création de
OpenOffice.org (2002)Google sponsoriseJava sous GPLAndroid, OpenMoko...
O. BergerPage 18 / 74 Agadir GNU/Linux days 2008
Aujourd'hui incontournable
20/25 ans plus tardLa partie est en voie d'être gagnée (?)
Mais au fait, comment ça marche !?!
Soutenabilité du modèle ?
O. BergerPage 19 / 74 Agadir GNU/Linux days 2008
Qui sont les développeurs de logiciels libres ?
O. BergerPage 20 / 74 Agadir GNU/Linux days 2008
Qui participe au développement ?
Bénévoles• Parfois très isolés (lonesome coder)• Parfois de façon organisée (Apache, GNU
project, etc.)Entreprises
• De plus en plus !Pas un seul profil d'activités :
• Utilisation, tests, rapports de bugs • Support communautaire (forums, listes, etc.) • Ecrire du code• Vendre du libre• etc.
O. BergerPage 21 / 74 Agadir GNU/Linux days 2008
Le libre est global
O. BergerPage 22 / 74 Agadir GNU/Linux days 2008
Où vivent ces développeurs ?
Par pays (SourceForge) :
Rang Pays Developpeurs1. United States 4256202. Germany 958003. United Kingdom 607684. Canada 491095. France 445876. China 36517... ... ...
(source : Gregorio Robles and Jesús M. González Barahona - 2006)
O. BergerPage 23 / 74 Agadir GNU/Linux days 2008
Où vivent ces développeurs ? (2)
Par continent :
Continent DéveloppeursAfrica 12 560Asia 127 275EU 401 845Europe 466 792North America 485 679Oceania 46 422South America 36 330
(source : Gregorio Robles and Jesús M. González Barahona – 2006)
Agadir GNU/Linux days 2008
Pourquoi développent-ils des logiciels libres ?
Agadir GNU/Linux days 2008
Motivations
Nombreuses et diversesBeaucoup d'études sociologiquesBesoin (résoudre un problème)Plaisir (technique et relations humaines)TravailApprendreConstruire une réputation ...
Agadir GNU/Linux days 2008
Avec quel mode d'organisation ?
O. BergerPage 27 / 74 Agadir GNU/Linux days 2008
Comment le libre est-il développé ?
Initialement, caricature :• old-style traditional model : Cathedral • new unexpected style : Bazaar"The Cathedral and the Bazaar" (Eric Raymond)
Aujourd'hui analyses plus précisesPas qu'un seul modèleEvolution dans la vie du projet
En ligneMais importance de rencontres physiques
O. BergerPage 28 / 74 Agadir GNU/Linux days 2008
Communautés, résaux sociaux
Linux 1.0 (1994)Developers linked by common authorship to same filessource [Robles]
O. BergerPage 29 / 74 Agadir GNU/Linux days 2008
Bon sang, mais c'est le bazar !
Classical analysis of Apache modules feb. 2004 (source [Robles])
O. BergerPage 30 / 74 Agadir GNU/Linux days 2008
Amélioration de la visualisation
Reshaped with Girvan-Newman algorithm (source [Robles])
O. BergerPage 31 / 74 Agadir GNU/Linux days 2008
Apache 01/01/1999
O. BergerPage 32 / 74 Agadir GNU/Linux days 2008
Apache 01/01/2000
O. BergerPage 33 / 74 Agadir GNU/Linux days 2008
Apache 01/09/2000
O. BergerPage 34 / 74 Agadir GNU/Linux days 2008
Apache 01/01/2002
O. BergerPage 35 / 74 Agadir GNU/Linux days 2008
Apache 01/02/2004
Agadir GNU/Linux days 2008
Logiciel libre vs. projet libre
Logiciel libre : 4 libertés = licence libre
Projet ouvert : communauté, règles ?
O. BergerPage 37 / 74 Agadir GNU/Linux days 2008
Pas que la licence à condidérer
Communauté• développement• utilisatrice
PersonnesActeurs économiquesBut, objectifs partagés ?Méthodologie (explicite ?)Qualités propres du code
O. BergerPage 38 / 74 Agadir GNU/Linux days 2008
Règles de vie en communauté
Bénévoles (motivations)ProfessionnelsContractualisation ?RoadmapStratégie de stabilisation de versionsSystème d'Assurance QualitéLeadership
O. BergerPage 39 / 74 Agadir GNU/Linux days 2008
Enjeux sociaux plus que techniques
Comprendre les règles du jeu Identifier les éléments influentsMotiver des bénévolesFaire accepter ses contributions Impact sur les décisionsProuver son implicationSe faire (re-)connaîtreAnticiper les alea
Fondamental : confiance
O. BergerPage 40 / 74 Agadir GNU/Linux days 2008
Prendre part à une nouvelle communauté
Rencontrer des hommes (et des femmes), pas seulement des compagnies ou des services marketing
Construire un projet où différents modèles peuvent cohabiter
Apprendre les règles des communautésDe nombreux mode d'organisation socialeComme dans la « vie réelle » c'est souvent plus
subtil que ce qu'on en dit dans les présentations ou les publicités !
Se comprendre (anglais, ...)
Agadir GNU/Linux days 2008
Processus de production
Agadir GNU/Linux days 2008
Du producteur au consommateur
Code source dans l'éditeur du programmeurGestionnaire de versions partagéTarball (archives) à télécharger
Paquetages dans un miroir (binaire)
Paquetages installés sur l'ordinateur de l'utilisateur
Bugs dans les binaires installés ;-)
O. BergerPage 43 / 74 Agadir GNU/Linux days 2008
Rapide panorama d'un écosystème
Développeursamont
(“upstream”)
OpenSuse
DebianDebian
RedHatRedHat
distributions
versions
versions
versions
bugs
bugs
bugs
Utilisateurs
SSIIÉditeurs
packages
bugs
Agadir GNU/Linux days 2008
Agadir GNU/Linux days 2008
Quels outils
Plate-forme de collaboration
Systèmes d'assurance qualité
Fabrication de paquetagesSuivi des bugsTests automatisés
Synchronisation ??
Agents humains + robots
Agadir GNU/Linux days 2008
Exemple : « repackaging »
O. BergerPage 47 / 74 Agadir GNU/Linux days 2008
Repackager i810switch
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=374638#15
O. BergerPage 48 / 74 Agadir GNU/Linux days 2008
Repackager i810switch (suite)$ apt-get source i810switchLecture des listes de paquets... FaitConstruction de l'arbre des dépendances Lecture des informations d'état... FaitNécessité de prendre 32,3ko dans les sources.Réception de : 1 http://ftp.fr.debian.org testing/main i810switch 0.6.5-3 (dsc) [593B]Réception de : 2 http://ftp.fr.debian.org testing/main i810switch 0.6.5-3 (tar) [24,3kB]Réception de : 3 http://ftp.fr.debian.org testing/main i810switch 0.6.5-3 (diff) [7376B]32,3ko réceptionnés en 0s (271ko/s)gpg: Signature made ven 22 déc 2006 00:06:16 CET using DSA key ID 0917A9E4gpg: Can't check signature: public key not founddpkg-source : extraction de i810switch dans i810switch-0.6.5dpkg-source : extraction de i810switch_0.6.5.orig.tar.gzdpkg-source : mise en place de ./i810switch_0.6.5-3.diff.gz
$ cd i810switch-0.6.5/
$ wget "http://bugs.debian.org/cgi-bin/bugreport.cgi?msg=15;filename=i810switch_macbook_support.patch;att=1;bug=374638"
$ patch -p1 <i810switch_macbook_support.patchpatching file debian/changelogpatching file i810switch.c
$ dpkg-buildpackage -rfakerootdpkg-buildpackage: source package i810switchdpkg-buildpackage: source version 0.6.5-4dpkg-buildpackage: source changed by Thomas Perl <[email protected]>dpkg-buildpackage: host architecture i386 fakeroot debian/rules cleandh_testdirdh_testroot
...
dpkg-deb : construction du paquet « i810switch » dans « ../i810switch_0.6.5-4_i386.deb ».
Agadir GNU/Linux days 2008
Facile, mais pas immédiat
O. BergerPage 50 / 74 Agadir GNU/Linux days 2008
C'est l'histoire d'un bug * From: Olivier Berger < [email protected]> * To: " [email protected]" < [email protected]> * Subject: [sympa-dev] Re: Re: authenticateAndRun for createList not working in SOAP server in 5.3.3 ? * Date: Fri, 21 Sep 2007 16:58:26 +0200
Le vendredi 21 septembre 2007 à 16:29 +0200, Olivier Berger a écrit :> >> > I'm using the soap client in Perl in which I did something like :> > $reponse => > $soap->authenticateAndRun($user_email,$md5,'createList',['essai5','essai5','picoforge_publicproject_members','List> > essai4 of project essai4','essai4'])> > &print_result($reponse);> > called with the listmaster user...> >
Having a look at the createList() code in sympasoap.pm, I see :
...unless ($reject){&Log::do_log('info', 'create_list%s@%sfrom %s refused, missing parameter(s) %s', $listname,$robot,$sender,$reject);die SOAP::Fault->faultcode('Server')->faultstring('Missing parameter')->faultdetail("Missing required parameter(s) : $reject");}
Wouldn't it be :*IF* ($reject){&Log::do_log('info', 'create_list%s@%sfrom %s refused, missing parameter(s) %s', $listname,$robot,$sender,$reject);die SOAP::Fault->faultcode('Server')->faultstring('Missing parameter')->faultdetail("Missing required parameter(s) : $reject");}instead of unless ?
O. BergerPage 51 / 74 Agadir GNU/Linux days 2008
Bug Sympa dans Debian
J+5
O. BergerPage 52 / 74 Agadir GNU/Linux days 2008J+6
O. BergerPage 53 / 74 Agadir GNU/Linux days 2008
Committed upstream (branch in SVN)
J+6
O. BergerPage 54 / 74 Agadir GNU/Linux days 2008
Migration vers Debian
Accepted sympa 5.3.3-5 (source i386)
Date: Fri, 26 Oct 2007 11:56:09 +0200Source: sympaBinary: sympaArchitecture: source i386Version: 5.3.3-5Distribution: unstableUrgency: lowMaintainer: Stefan Hornburg (Racke) <[email protected]>Changed-By: Stefan Hornburg (Racke) <[email protected]>Description: sympa - Modern mailing list managerCloses: 443802 444188 444304 447721 447945Changes: sympa (5.3.3-5) unstable; urgency=low . * fix createList not invoked from authenticateAndRun on SOAP server (Closes: #444188)
J+7
J+35
O. BergerPage 55 / 74 Agadir GNU/Linux days 2008
Agadir GNU/Linux days 2008
Contenu
« Forges » logicielles
Agadir GNU/Linux days 2008
Plate-forme « intégrée »
Outils de travail collaboratif : • CVS, SubVersion, mailing-lists, IRC
Services « Forges » publiques : hébergement• SourceForge• Savannah• ...
Installation forge « privée » :• Gforge,• LibreSource,• PicoForge• Trac
Agadir GNU/Linux days 2008
Intérêt des forges
Héberger • le code• la vie d'une communauté• ce qui complète le code (bugs, doc, etc.)
Point d'entrée unique, référentiel uniqueTravail « distribué » (géographiquement)Travail asynchrone
Contraintes : accès internet solide
Agadir GNU/Linux days 2008
Retour d'expérience : projet PicoForge
Projet « logiciel libre » développé• Initialement à l'ENST Bretagne (2001 >)• Puis à l'INT
Développement peu ouvertUtilisé principalement à l'Institut TELECOM (ex.
GET)Connaître les mécanismes du libre en les
pratiquantProjet déployé en interne en se basant sur
l'intégration de composants externesProblématique de la maintenabilité : nécessité
de contribution
Agadir GNU/Linux days 2008
Plate-forme « Forge »
Assemblage logiciels libresContruire une « forge » pour développement
collaboratif de logiciels• Projets = espaces de travail sur Net
(phpGroupware)• Mailing-lists (Sympa)• Wikis (TWiki)• Repositories CVS/SVN• Bugtracker (à venir)• ...
Packaging Debian pour installation aisée
Agadir GNU/Linux days 2008
SSH
Architecture de PicoForge
Apache2 + dav
openLDAP
MySQL
Sympa
CVS
phpGoupWare
SVN
TWiki
Mantis
picoForgeAPI
Pico Modules
Pico Backend
Agadir GNU/Linux days 2008
Portail interne projet
O. BergerPage 63 / 74 Agadir GNU/Linux days 2008
Gestionnaire de tickets (bugs)
Page 64 / 74 Agadir GNU/Linux days 2008
Wiki : base de connaissances
O. BergerPage 65 / 74 Agadir GNU/Linux days 2008
Interface Web référentiel versions
O. BergerPage 66 / 74 Agadir GNU/Linux days 2008
Forges de nouvelle génération
Infrastructure décentralisée (P2P)Structure de projets modulableSupervisation des processus Intégration continueAutomatisation
Projet HELIOS (pôle de compétitivité System@tic, financement public) – début en 09/2008
O. BergerPage 67 / 74 Agadir GNU/Linux days 2008
Conduite de projets informatiques basés sur du libre
O. BergerPage 68 / 74 Agadir GNU/Linux days 2008
Conduite de projetAnalyse des besoins
Spécification
Architecture
Conception détaillée
Codage
Tests
Déploiement
?
O. BergerPage 69 / 74 Agadir GNU/Linux days 2008
Maintien en condition opérationnelle
Réactivité pour les mises à jour
Stabilisation coûteuse• Mises à jour de sécurité permanentes• Répétition des mises à jour
Automatisation souhaitable• Diminuer la taille du code spécifique
O. BergerPage 70 / 74 Agadir GNU/Linux days 2008
Reverser au projet
Rendre générique les éléments spécifiquesMaintenus à l'extérieurAméliorés à l'extérieurPas besoin de les repackager
Plus facile à dire qu'à faire
O. BergerPage 71 / 74 Agadir GNU/Linux days 2008
Contribuer : une nécessité
Cercle vertueux des contributionsQuasi-obligation du fait des licencesExternalisation de la maintenanceSe faire plaisir et apprendre en vraie grandeurSe faire connaître et reconnaître Influer sur le pilotage d'un projet
O. BergerPage 72 / 74 Agadir GNU/Linux days 2008
ConclusionTrop rapide, et loin de l'exhaustivité
Le libre est un changement extrèmement positifPlein d'oportunités
Pas un seul modèle : mais quelques bonnes pratiques à adopter
Importance (relative) des outils : forges
Contribuer est nécessaire pour la survie du modèle, mais aussi concrètement dans les effets utiles aux projets locaux.
O. BergerPage 73 / 74 Agadir GNU/Linux days 2008
ChoukranMerci de votre attention
Merci aux organisateurs de m'avoir invité.
O. BergerPage 74 / 74 Agadir GNU/Linux days 2008
À propos de cette conférence
Conférence « compensée carbone »• Suis venu en avion depuis Paris (retour)• Ai rejeté env. 1083 kgEqCO2
• Ai fait un don pour soutenir les projets d'http://actioncarbone.org/ (reboisement, etc.)
Suppport Copyright 2008 : Olivier BERGER / Institut TELECOMSous licence Creatice Commons (sharealike)
Top Related