Slideshow transcript
Slide 1: Réflexions autour des Plate-formes pour le développement collaboratif des logiciels libres « forges » logicielles Olivier Berger, TELECOM & Management SudParis (ex. GET/INT) - Département INF <olivier.berger@itsudparis.eu> Vendredi 9 mai 2008 4ème GNU/Linux days (ENSALinux) Agadir (Maroc)
Slide 2: Le logiciel libre c'est super ! Page 2 / 74 Agadir GNU/Linux days 2008 O. Berger
Slide 3: Mais tant qu'il y a quelqu'un pour le développer ;-) Comment il est développé ? Page 3 / 74 Agadir GNU/Linux days 2008 O. Berger
Slide 4: 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 Debian Recherche : • 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/ Page 4 / 74 Agadir GNU/Linux days 2008 O. Berger
Slide 5: Plusieurs visites au Maroc Plusieurs conférences à Casablanca Plusieurs séjours en touriste ;-) Bonheurde compléter ma connaissance du pays à Agadir :-) Page 5 / 74 Agadir GNU/Linux days 2008 O. Berger
Slide 6: 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 Page 6 / 74 Agadir GNU/Linux days 2008 O. Berger
Slide 7: Contenu Introduction générale Agadir GNU/Linux days 2008
Slide 8: Introduction générale sur le libre Principes Géopolitique de l'Industrie logicielle Historique Agadir GNU/Linux days 2008
Slide 9: 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) Page 9 / 74 Agadir GNU/Linux days 2008 O. Berger
Slide 10: Introduction Principes Géopolitique de l'Industrie logicielle Historique Page 10 / 74 Agadir GNU/Linux days 2008 O. Berger
Slide 11: Software Wars Page 11 / 74 Agadir GNU/Linux days 2008 O. Berger
Slide 12: Immense élan vers le libre Réduire les coûts (commoditisation) Effets de réseaux pour établir des standards Mutualiser la R&D « Co-opétition » : • coopération • compétition Prendre position dans le libre pour maîtriser son évolution Modèles économiques ? Page 12 / 74 Agadir GNU/Linux days 2008 O. Berger
Slide 13: « Commoditisation » du logiciel Page 13 / 74 Agadir GNU/Linux days 2008 O. Berger
Slide 14: 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 Page 14 / 74 Agadir GNU/Linux days 2008 O. Berger
Slide 15: 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 communs Mouvement « 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/ Page 15 / 74 Agadir GNU/Linux days 2008 O. Berger
Slide 16: Introduction Principes Géopolitique de l'Industrie logicielle Historique Page 16 / 74 Agadir GNU/Linux days 2008 O. Berger
Slide 17: 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 sponsorise Java sous GPL Android, OpenMoko... Page 17 / 74 Agadir GNU/Linux days 2008 O. Berger
Slide 18: Aujourd'hui incontournable 20/25ans plus tard La partie est en voie d'être gagnée (?) Mais au fait, comment ça marche !?! Soutenabilité du modèle ? Page 18 / 74 Agadir GNU/Linux days 2008 O. Berger
Slide 19: Qui sont les développeurs de logiciels libres ? Page 19 / 74 Agadir GNU/Linux days 2008 O. Berger
Slide 20: 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. Page 20 / 74 Agadir GNU/Linux days 2008 O. Berger
Slide 21: Le libre est global Page 21 / 74 Agadir GNU/Linux days 2008 O. Berger
Slide 22: Où vivent ces développeurs ? Par pays (SourceForge) : Rang Pays Developpeurs 1. United States 425620 2. Germany 95800 3. United Kingdom 60768 4. Canada 49109 5. France 44587 6. China 36517 ... ... ... (source : Gregorio Robles and Jesús M. González Barahona - 2006) Page 22 / 74 Agadir GNU/Linux days 2008 O. Berger
Slide 23: Où vivent ces développeurs ? (2) Par continent : Continent Développeurs Africa 12 560 Asia 127 275 EU 401 845 Europe 466 792 North America 485 679 Oceania 46 422 South America 36 330 (source : Gregorio Robles and Jesús M. González Barahona – 2006) Page 23 / 74 Agadir GNU/Linux days 2008 O. Berger
Slide 24: Pourquoi développent-ils des logiciels libres ? Agadir GNU/Linux days 2008
Slide 25: Motivations Nombreuses et diverses Beaucoup d'études sociologiques Besoin (résoudre un problème) Plaisir (technique et relations humaines) Travail Apprendre Construire une réputation ... Agadir GNU/Linux days 2008
Slide 26: Avec quel mode d'organisation ? Agadir GNU/Linux days 2008
Slide 27: 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écises Pas qu'un seul modèle Evolution dans la vie du projet En ligne Mais importance de rencontres physiques Page 27 / 74 Agadir GNU/Linux days 2008 O. Berger
Slide 28: Communautés, résaux sociaux Linux 1.0 (1994) Developers linked by common authorship to same files source [Robles] Page 28 / 74 Agadir GNU/Linux days 2008 O. Berger
Slide 29: Bon sang, mais c'est le bazar ! Classical analysis of Apache modules feb. 2004 (source [Robles]) Page 29 / 74 Agadir GNU/Linux days 2008 O. Berger
Slide 30: Amélioration de la visualisation Reshaped with Girvan-Newman algorithm (source [Robles]) Page 30 / 74 Agadir GNU/Linux days 2008 O. Berger
Slide 31: Apache 01/01/1999 Page 31 / 74 Agadir GNU/Linux days 2008 O. Berger
Slide 32: Apache 01/01/2000 Page 32 / 74 Agadir GNU/Linux days 2008 O. Berger
Slide 33: Apache 01/09/2000 Page 33 / 74 Agadir GNU/Linux days 2008 O. Berger
Slide 34: Apache 01/01/2002 Page 34 / 74 Agadir GNU/Linux days 2008 O. Berger
Slide 35: Apache 01/02/2004 Page 35 / 74 Agadir GNU/Linux days 2008 O. Berger
Slide 36: Logiciel libre vs. projet libre Logiciel libre : 4 libertés = licence libre Projet ouvert : communauté, règles ? Agadir GNU/Linux days 2008
Slide 37: Pas que la licence à condidérer Communauté • développement • utilisatrice Personnes Acteurs économiques But, objectifs partagés ? Méthodologie (explicite ?) Qualités propres du code Page 37 / 74 Agadir GNU/Linux days 2008 O. Berger
Slide 38: Règles de vie en communauté Bénévoles (motivations) Professionnels Contractualisation ? Roadmap Stratégie de stabilisation de versions Système d'Assurance Qualité Leadership Page 38 / 74 Agadir GNU/Linux days 2008 O. Berger
Slide 39: Enjeux sociaux plus que techniques Comprendre les règles du jeu Identifier les éléments influents Motiver des bénévoles Faire accepter ses contributions Impact sur les décisions Prouver son implication Se faire (re-)connaître Anticiper les alea Fondamental : confiance Page 39 / 74 Agadir GNU/Linux days 2008 O. Berger
Slide 40: 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és De nombreux mode d'organisation sociale Comme 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, ...) Page 40 / 74 Agadir GNU/Linux days 2008 O. Berger
Slide 41: Processus de production Agadir GNU/Linux days 2008
Slide 42: Du producteur au consommateur Code source dans l'éditeur du programmeur Gestionnaire 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 ;-) Agadir GNU/Linux days 2008
Slide 43: Rapide panorama d'un écosystème Debian Debian s rs ion ve gs packages bu Développeurs versions Utilisateurs amont RedHat RedHat bugs (“upstream”) bugs ve rsi bu ons gs OpenSuse Éditeurs SSII distributions Page 43 / 74 Agadir GNU/Linux days 2008 O. Berger
Slide 44: Agadir GNU/Linux days 2008
Slide 45: Quels outils Plate-forme de collaboration Systèmes d'assurance qualité Fabrication de paquetages Suivi des bugs Tests automatisés Synchronisation ?? Agents humains + robots Agadir GNU/Linux days 2008
Slide 46: Exemple : « repackaging » Agadir GNU/Linux days 2008
Slide 47: Repackager i810switch Page 47 / 74 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=374638#15 Agadir GNU/Linux days 2008 O. Berger
Slide 48: Repackager i810switch (suite) $ apt-get source i810switch Lecture des listes de paquets... Fait Construction de l'arbre des dépendances Lecture des informations d'état... Fait Né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 0917A9E4 gpg: Can't check signature: public key not found dpkg-source : extraction de i810switch dans i810switch-0.6.5 dpkg-source : extraction de i810switch_0.6.5.orig.tar.gz dpkg-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.patch patching file debian/changelog patching file i810switch.c $ dpkg-buildpackage -rfakeroot dpkg-buildpackage: source package i810switch dpkg-buildpackage: source version 0.6.5-4 dpkg-buildpackage: source changed by Thomas Perl <thp@perli.net> dpkg-buildpackage: host architecture i386 fakeroot debian/rules clean dh_testdir dh_testroot ... dpkg-deb : construction du paquet « i810switch » dans « ../i810switch_0.6.5-4_i386.deb ». Page 48 / 74 Agadir GNU/Linux days 2008 O. Berger
Slide 49: Facile, mais pas immédiat Agadir GNU/Linux days 2008
Slide 50: C'est l'histoire d'un bug * From: Olivier Berger < olivier.berger@int-edu.eu> * To: \" Sympa-dev@cru.fr\" < Sympa-dev@cru.fr> * 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@%s from %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@%s from %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 ? Page 50 / 74 Agadir GNU/Linux days 2008 O. Berger
Slide 51: Bug Sympa dans Debian Page 51 / 74 Agadir GNU/Linux days 2008 O. Berger J+5
Slide 52: Page 52 / 74 Agadir GNU/Linux days 2008 O. Berger J+6
Slide 53: Committed upstream (branch in SVN) Page 53 / 74 Agadir GNU/Linux days 2008 O. Berger J+6
Slide 54: Migration vers Debian J+7 Accepted sympa 5.3.3-5 (source i386) Date: Fri, 26 Oct 2007 11:56:09 +0200 Source: sympa Binary: sympa Architecture: source i386 Version: 5.3.3-5 Distribution: unstable Urgency: low Maintainer: Stefan Hornburg (Racke) <racke@linuxia.de> Changed-By: Stefan Hornburg (Racke) <racke@linuxia.de> Description: sympa - Modern mailing list manager Closes: 443802 444188 444304 447721 447945 Changes: sympa (5.3.3-5) unstable; urgency=low . * fix createList not invoked from authenticateAndRun on SOAP server (Closes: #444188) J+35 Page 54 / 74 Agadir GNU/Linux days 2008 O. Berger
Slide 55: Page 55 / 74 Agadir GNU/Linux days 2008 O. Berger
Slide 56: Contenu « Forges » logicielles Agadir GNU/Linux days 2008
Slide 57: 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
Slide 58: 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 unique Travail « distribué » (géographiquement) Travail asynchrone Contraintes : accès internet solide Agadir GNU/Linux days 2008
Slide 59: Retour d'expérience : projet PicoForge Projet « logiciel libre » développé • Initialement à l'ENST Bretagne (2001 >) • Puis à l'INT Développement peu ouvert Utilisé principalement à l'Institut TELECOM (ex. GET) Connaître les mécanismes du libre en les pratiquant Projet déployé en interne en se basant sur l'intégration de composants externes Problématique de la maintenabilité : nécessité de contribution Agadir GNU/Linux days 2008
Slide 60: Plate-forme « Forge » Assemblage logiciels libres Contruire 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
Slide 61: Architecture de PicoForge SSH phpGoupWare Sympa CVS picoForgeAPI openLDAP Pico Modules SVN MySQL Mantis Pico Backend Apache2 + TWiki dav Agadir GNU/Linux days 2008
Slide 62: Portail interne projet Agadir GNU/Linux days 2008
Slide 63: Gestionnaire de tickets (bugs) Page 63 / 74 Agadir GNU/Linux days 2008 O. Berger
Slide 64: Wiki : base de connaissances Page 64 / 74 Agadir GNU/Linux days 2008
Slide 65: Interface Web référentiel versions Page 65 / 74 Agadir GNU/Linux days 2008 O. Berger
Slide 66: Forges de nouvelle génération Infrastructuredécentralisée (P2P) Structure de projets modulable Supervisation des processus Intégration continue Automatisation Projet HELIOS (pôle de compétitivité System@tic, financement public) – début en 09/2008 Page 66 / 74 Agadir GNU/Linux days 2008 O. Berger
Slide 67: Conduite de projets informatiques basés sur du libre Page 67 / 74 Agadir GNU/Linux days 2008 O. Berger
Slide 68: Conduite de projet Analyse des besoins Spécification Architecture Conception détaillée Codage Tests ? Déploiement Page 68 / 74 Agadir GNU/Linux days 2008 O. Berger
Slide 69: Maintien en condition opérationnelle Réactivité pour les mises à jour Stabilisationcoûteuse • Mises à jour de sécurité permanentes • Répétition des mises à jour Automatisation souhaitable • Diminuer la taille du code spécifique Page 69 / 74 Agadir GNU/Linux days 2008 O. Berger
Slide 70: Reverser au projet Rendre générique les éléments spécifiques Maintenus à l'extérieur Améliorés à l'extérieur Pas besoin de les repackager Plus facile à dire qu'à faire Page 70 / 74 Agadir GNU/Linux days 2008 O. Berger
Slide 71: Contribuer : une nécessité Cercle vertueux des contributions Quasi-obligation du fait des licences Externalisation de la maintenance Se faire plaisir et apprendre en vraie grandeur Se faire connaître et reconnaître Influer sur le pilotage d'un projet Page 71 / 74 Agadir GNU/Linux days 2008 O. Berger
Slide 72: Conclusion Trop rapide, et loin de l'exhaustivité Le libre est un changement extrèmement positif Plein 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. Page 72 / 74 Agadir GNU/Linux days 2008 O. Berger
Slide 73: Choukran Merci de votre attention Merci aux organisateurs de m'avoir invité. Page 73 / 74 Agadir GNU/Linux days 2008 O. Berger
Slide 74: À 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 TELECOM Sous licence Creatice Commons (sharealike) Page 74 / 74 Agadir GNU/Linux days 2008 O. Berger





Add a comment on Slide 1
If you have a SlideShare account, login to comment; else you can comment as a guest- Favorites & Groups
Showing 1-50 of 0 (more)