Plate-formes pour le développement collaboratif des logiciels libres
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Plate-formes pour le développement collaboratif des logiciels libres

on

  • 3,171 views

Réflexions autour des plate-formes pour le développement collaboratif des logiciels libres (« forges » logicielles) - 4ème GNU/Linux days Agadir (Maroc)

Réflexions autour des plate-formes pour le développement collaboratif des logiciels libres (« forges » logicielles) - 4ème GNU/Linux days Agadir (Maroc)

Statistics

Views

Total Views
3,171
Views on SlideShare
3,146
Embed Views
25

Actions

Likes
0
Downloads
24
Comments
0

3 Embeds 25

http://www-public.it-sudparis.eu 19
http://www-public.telecom-sudparis.eu 5
https://insystem.websecure.ma 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

CC Attribution-ShareAlike LicenseCC Attribution-ShareAlike License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Plate-formes pour le développement collaboratif des logiciels libres Presentation Transcript

  • 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@it­sudparis.eu> Vendredi 9 mai 2008 4ème GNU/Linux days (ENSALinux) Agadir (Maroc)
  • 2. Le logiciel libre c'est super ! Page 2 / 74 Agadir GNU/Linux days 2008 O. Berger
  • 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
  • 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
  • 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
  • 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
  • 7. Contenu Introduction générale Agadir GNU/Linux days 2008
  • 8. Introduction générale sur le libre  Principes  Géopolitique de l'Industrie logicielle  Historique Agadir GNU/Linux days 2008
  • 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
  • 10.  Introduction  Principes  Géopolitique de l'Industrie logicielle  Historique Page 10 / 74 Agadir GNU/Linux days 2008 O. Berger
  • 11. Software Wars Page 11 / 74 Agadir GNU/Linux days 2008 O. Berger
  • 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
  • 13. « Commoditisation » du logiciel Page 13 / 74 Agadir GNU/Linux days 2008 O. Berger
  • 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: quot;Counting potatoesquot; par Gonzalez-Barahona et al)  Cf. http://ohloh.net pour d'autres chiffres Page 14 / 74 Agadir GNU/Linux days 2008 O. Berger
  • 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
  • 16.  Introduction  Principes  Géopolitique de l'Industrie logicielle  Historique Page 16 / 74 Agadir GNU/Linux days 2008 O. Berger
  • 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
  • 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
  • 19. Qui sont les développeurs de logiciels libres ? Page 19 / 74 Agadir GNU/Linux days 2008 O. Berger
  • 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
  • 21. Le libre est global Page 21 / 74 Agadir GNU/Linux days 2008 O. Berger
  • 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
  • 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
  • 24. Pourquoi développent-ils des logiciels libres ? Agadir GNU/Linux days 2008
  • 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
  • 26. Avec quel mode d'organisation ? Agadir GNU/Linux days 2008
  • 27. Comment le libre est-il développé ?  Initialement, caricature : • old-style traditional model : Cathedral • new unexpected style : Bazaar quot;The Cathedral and the Bazaarquot; (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
  • 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
  • 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
  • 30. Amélioration de la visualisation Reshaped with Girvan-Newman algorithm (source [Robles]) Page 30 / 74 Agadir GNU/Linux days 2008 O. Berger
  • 31. Apache 01/01/1999 Page 31 / 74 Agadir GNU/Linux days 2008 O. Berger
  • 32. Apache 01/01/2000 Page 32 / 74 Agadir GNU/Linux days 2008 O. Berger
  • 33. Apache 01/09/2000 Page 33 / 74 Agadir GNU/Linux days 2008 O. Berger
  • 34. Apache 01/01/2002 Page 34 / 74 Agadir GNU/Linux days 2008 O. Berger
  • 35. Apache 01/02/2004 Page 35 / 74 Agadir GNU/Linux days 2008 O. Berger
  • 36. Logiciel libre vs. projet libre  Logiciel libre : 4 libertés = licence libre  Projet ouvert : communauté, règles ? Agadir GNU/Linux days 2008
  • 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
  • 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
  • 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
  • 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
  • 41. Processus de production Agadir GNU/Linux days 2008
  • 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
  • 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
  • 44. Agadir GNU/Linux days 2008
  • 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
  • 46. Exemple : « repackaging » Agadir GNU/Linux days 2008
  • 47. Repackager i810switch Page 47 / 74 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=374638#15 Agadir GNU/Linux days 2008 O. Berger
  • 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 quot;http://bugs.debian.org/cgi-bin/bugreport.cgi? msg=15;filename=i810switch_macbook_support.patch;att=1;bug=374638quot; $ 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
  • 49. Facile, mais pas immédiat Agadir GNU/Linux days 2008
  • 50. C'est l'histoire d'un bug * From: Olivier Berger < olivier.berger@int-edu.eu> * To: quot; Sympa-dev@cru.frquot; < 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(quot;Missing required parameter(s) : $rejectquot;); } 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(quot;Missing required parameter(s) : $rejectquot;); } instead of unless ? Page 50 / 74 Agadir GNU/Linux days 2008 O. Berger
  • 51. Bug Sympa dans Debian Page 51 / 74 Agadir GNU/Linux days 2008 O. Berger J+5
  • 52. Page 52 / 74 Agadir GNU/Linux days 2008 O. Berger J+6
  • 53. Committed upstream (branch in SVN) Page 53 / 74 Agadir GNU/Linux days 2008 O. Berger J+6
  • 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
  • 55. Page 55 / 74 Agadir GNU/Linux days 2008 O. Berger
  • 56. Contenu « Forges » logicielles Agadir GNU/Linux days 2008
  • 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
  • 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
  • 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
  • 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
  • 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
  • 62. Portail interne projet Agadir GNU/Linux days 2008
  • 63. Gestionnaire de tickets (bugs) Page 63 / 74 Agadir GNU/Linux days 2008 O. Berger
  • 64. Wiki : base de connaissances Page 64 / 74 Agadir GNU/Linux days 2008
  • 65. Interface Web référentiel versions Page 65 / 74 Agadir GNU/Linux days 2008 O. Berger
  • 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
  • 67. Conduite de projets informatiques basés sur du libre Page 67 / 74 Agadir GNU/Linux days 2008 O. Berger
  • 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
  • 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
  • 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
  • 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
  • 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
  • 73. Choukran Merci de votre attention Merci aux organisateurs de m'avoir invité. Page 73 / 74 Agadir GNU/Linux days 2008 O. Berger
  • 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