Plateforme Pour Le DéVeloppement Collaboratif Des Logiciels Libres
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)
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
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
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
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
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
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
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
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
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