SlideShare une entreprise Scribd logo
1  sur  46
Télécharger pour lire hors ligne
Collaboration avec des
     projets libres
       enjeux, difficultés
      et bonnes pratiques


Olivier BERGER & Christian BAC - GET/INT
        <olivier.berger@int-edu.eu>

               JRES 2007
<hype mode=quot;onquot;>




 Le libre
c'est bon.

 Mangez-en !
           O. Berger - JRES 2007   2/9
Dans le
libre, on
  se fait
vite plein
 d'amis !
      O. Berger - JRES 2007   3/9
Mettez votre
 logiciel sous
      GPL
succès assuré !
     O. Berger - JRES 2007   4/9
Les failles de
  sécu sont
  corrigées
 super vite !
patch#45678
    O. Berger - JRES 2007   5/9
Les
contributeurs
  travaillent
gratuitement
 vite et bien
    O. Berger - JRES 2007   6/9
La solution à
   tous vos
 problèmes de
développement
       ...
     O. Berger - JRES 2007   7/9
Après
 l'outsourcing
       le
CrowdSourcing
 </hype>
           O. Berger - JRES 2007   8/9
Foutaise ?
  O. Berger - JRES 2007   9/9
Désolé ;-)
●
    Ce n'est pas si simple
●
    Le modèle du libre n'est pas magique
●
    Il y a de bonnes opportunités
●
    On peut en bénéficier pour des projets
    internes
●
    Une des conditions nécessaires est
    d'avoir intégré une stratégie de
    contribution aux projets libres.

                 O. Berger - JRES 2007   10 / 43
Plan

●
    Introduction
●
    Tirer parti des logiciels
    libres
●
    Conduite de projet
●
    Contribuer : une nécessité

              O. Berger - JRES 2007   11 / 43
Présentation
●
    Ingénieur de recherche au GET (Groupe des
    Écoles des Télécommunications), à l'INT (Institut
    National des Télécommunications) à Évry
●
    Co-développeur de la plate-forme PicoForge
    (plate-forme de travail collaboratif libre -
    www.picoforge.org) - Cf. poster JRES
●
    Plusieurs projets de recherche sur le logiciel libre
    (FP6 IST CALIBRE, GET PFTCR et Contrib 2.0)
●
    Adepte et « évangéliste du libre » de longue date,
    mais en congé sabbatique
●
    Wannabe développeur de la distribution Debian
           http://www-public.int-edu.eu/~berger_o/weblog/
                      O. Berger - JRES 2007           12 / 43
Point de vue
●
    Organisation utilisatrice des logiciels
    libres
●
    Intégration de logiciels libres et de
    customisations nécessaires aux besoins
    internes
●
    Rationalisation / Mutualisation sur le
    moyen terme
●
    Élaboration d'une stratégie de
    collaboration avec des projets libres

                   O. Berger - JRES 2007      13 / 43
Tirer parti
des logiciels libres ?




     O. Berger - JRES 2007   14 / 43
Logiciel libre ?
●
    « La liberté d'exécuter le programme, pour tous
                 d'exécuter
    les usages (liberté 0).
●
    La liberté d'étudier le fonctionnement du
               d'étudier
    programme, et de l'adapter à vos besoins (liberté
                        l'adapter
    1). Pour ceci l'accès au code source est une
    condition requise.
●
    La liberté de redistribuer des copies, donc d'aider
                                   copies,
    votre voisin, (liberté 2).
●
    La liberté d'améliorer le programme et de publier
    vos améliorations, pour en faire profiter toute la
         améliorations,
    communauté (liberté 3). Pour ceci l'accès au code
    source est une condition requise. »
            http://www.gnu.org/philosophy/free-sw.fr.html
                      O. Berger - JRES 2007         15 / 43
Nombreuses qualités

●
    Qualités génériques ... déjà connues
●
    Qualités particulières d'un logiciel libre
    => à évaluer
    –   sa licence
    –   sa communauté
    –   son code (sa doc, son langage, etc.)
●
    Méthodes d'évaluation                     (QSOS, OpenBRR, ...)


          http://fr.wikipedia.org/wiki/Méthode_d'évaluation_de_logiciels_libres

                            O. Berger - JRES 2007                     16 / 43
Intégrer le libre dans les projets
             internes




            O. Berger - JRES 2007    17 / 43
Degrés d'interaction avec les
              communautés
●
    utilisation « simple » de solutions
    packagées correspondant directement
    au besoin, sans nécessité d'adaptation,
●
    « customisation » de solutions
    existantes,
●
    intégration lourde de différentes
    solutions, packaging et déploiement
    d'un ensemble plus large,
    potentiellement « mission critical ».
                  O. Berger - JRES 2007     18 / 43
Conduite de projet
Analyse des besoins



          Spécification



                 Architecture



                          Conception détaillée



                                         Codage


                                                  Tests




                                                                    ?
                                                      Déploiement



                              O. Berger - JRES 2007                 19 / 43
Sélection d'un produit

●
    Simplicité et réactivité
●
    Ne pas confondre vitesse et
    précipitation
●
    Sous-traiter ce qui peut l'être
●
    Identifier les éléments critiques et
    monter en compétence
●
    Préférer les solutions déjà packagées


                   O. Berger - JRES 2007    20 / 43
Maintien en condition opérationnelle

●
    Réactivité pour les mises à jour
●
    Diminuer l'adhérence dans les
    composants spécifiques




                  O. Berger - JRES 2007   21 / 43
Stabilisation impossible

●
    Mises à jour de sécurité permanentes
●
    Répétition des mises à jour
●
    Automatisation souhaitable
●
    Diminuer la taille du code spécifique




                  O. Berger - JRES 2007     22 / 43
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




                  O. Berger - JRES 2007   23 / 43
Développement

●
    Rendre générique ce qui peut l'être
●
    Méthodologie d'intégration




                  O. Berger - JRES 2007   24 / 43
Déploiement

●
    Support de certains matériels
    (distributions supportées)
●
    Virtualisation (Xen, etc.)
●
    Savoir packager




                   O. Berger - JRES 2007   25 / 43
Repackager i810switch




   http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=374638#15
          O. Berger - JRES 2007                      26 / 43
$ 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 ».




                                        O. Berger - JRES 2007                                27 / 43
Connaître un projet libre




       O. Berger - JRES 2007   28 / 43
Pas que la licence
●
    Communauté
    –   développement
    –   utilisatrice
●
    Personnes
●
    Acteurs économiques
●
    But, objectifs
●
    Méthodologie
●
    Qualités propres du code

                       O. Berger - JRES 2007   29 / 43
Rapide panorama d'un écosystème

                                    Debian
                                     Debian
                        s
                 rs ion
               ve                                      packages
                    b   ugs

Développeurs     versions                                                 Utilisateurs
   amont                            RedHat
                                     RedHat
                    bugs
(“upstream”)
                    ver                                     bugs
                         sio
                            ns
               bu
                    gs
                                   OpenSuse

      Éditeurs                                                     SSII
                                 distributions
                                    O. Berger - JRES 2007                           30 / 43
Communautés
●
    Bénévoles (motivations)
●
    Professionnels
●
    Contractualisation ?
●
    Roadmap
●
    Stratégie de stabilisation de versions
●
    Système d'Assurance Qualité
●
    Leadership


                  O. Berger - JRES 2007      31 / 43
Enjeux sociaux
●
    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

                  O. Berger - JRES 2007   32 / 43
Contribuer : une nécessité




        O. Berger - JRES 2007   33 / 43
Pourquoi contribuer

●
    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


                   O. Berger - JRES 2007     34 / 43
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 ?


                                            O. Berger - JRES 2007                                      35 / 43
Bug Sympa dans Debian




                              J+5
      O. Berger - JRES 2007         36 / 43
J+6
O. Berger - JRES 2007         37 / 43
Committed upstream (branch in SVN)




                                     J+6
             O. Berger - JRES 2007         38 / 43
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
                                          O. Berger - JRES 2007                39 / 43
O. Berger - JRES 2007   40 / 43
Comment bien contribuer

●
    Il n'y a pas besoin de savoir coder
●
    Assurer une veille régulière
●
    Beaucoup d'effort même pour des
    choses simples
●
    Minimum légal : faire vivre la base de
    bugs




                  O. Berger - JRES 2007      41 / 43
Comment bien contribuer (suite)
●
    Accepter des usages sociaux différents
●
    Communiquer avant tout
●
    Jouer le jeu selon les règles
●
    Eviter l' « abandonware » non déclaré
●
    Contribuer un nouveau module au bon
    endroit
●
    Investir dans une forge pour un
    nouveau logiciel
Conclusion

●
    Loin de l'exhaustivité


●
    Pas un seul modèle : mais quelques
    bonnes pratiques

●
    Contribuer est nécessaire pour la survie
    du modèle, mais aussi concrètement
    dans les effets utiles aux projets locaux.

                  O. Berger - JRES 2007    43 / 43
Méthode QSOS      http://www.qsos.org/




         O. Berger - JRES 2007           44 / 43
Fiche QSOS




O. Berger - JRES 2007   45 / 43
Annuaires

●
    Freshmeat http://freshmeat.net/
    (43000 projets)
●
    FSF/Unesco : http://directory.fsf.org/
    (5400 projets)
●
    Plume (Promouvoir les Logiciels Utiles
    Maîtrisés et Economiques dans
    l'Enseignement Supérieur et la
    Recherche) :
    http://www.projet-plume.org/
                  O. Berger - JRES 2007      46 / 43

Contenu connexe

Similaire à Collaboration avec des projets libres - enjeux, difficultés et bonnes pratiques

Presentation du socle technique Java open source Scub Foundation
Presentation du socle technique Java open source Scub FoundationPresentation du socle technique Java open source Scub Foundation
Presentation du socle technique Java open source Scub FoundationStéphane Traumat
 
Livret bleu qualitelogicielle_gt-logiciellibre_systematic
Livret bleu qualitelogicielle_gt-logiciellibre_systematicLivret bleu qualitelogicielle_gt-logiciellibre_systematic
Livret bleu qualitelogicielle_gt-logiciellibre_systematicPascal Flamand
 
L'analyse qualitative informatique pas cher
L'analyse qualitative informatique pas cherL'analyse qualitative informatique pas cher
L'analyse qualitative informatique pas cherHubert Maisonneuve
 
Une application sans framework en 2019
Une application sans framework en 2019Une application sans framework en 2019
Une application sans framework en 2019Rodrigue Villetard
 
NightClazz Build Tools & Continuous Delivery
NightClazz Build Tools & Continuous DeliveryNightClazz Build Tools & Continuous Delivery
NightClazz Build Tools & Continuous DeliveryZenika
 
Forum PHP 2007 - Methodes Agiles
Forum PHP 2007 - Methodes AgilesForum PHP 2007 - Methodes Agiles
Forum PHP 2007 - Methodes Agilesgoldoraf
 
Intégration Libre & Propriétaire : la Symbiose
Intégration Libre & Propriétaire : la SymbioseIntégration Libre & Propriétaire : la Symbiose
Intégration Libre & Propriétaire : la SymbioseKhaled Ben Driss
 
[WEBINAR] Kaliterre : 10 raisons d'intégrer l'éco-conception logicielle
[WEBINAR] Kaliterre : 10 raisons d'intégrer l'éco-conception logicielle[WEBINAR] Kaliterre : 10 raisons d'intégrer l'éco-conception logicielle
[WEBINAR] Kaliterre : 10 raisons d'intégrer l'éco-conception logicielleGreenLabCenter
 
Rex Software Factories 20140117 - Ensim
Rex Software Factories 20140117 - EnsimRex Software Factories 20140117 - Ensim
Rex Software Factories 20140117 - EnsimLaurent Broudoux
 
1_Assurance_Qualit_et_Gnie_Logiciel.ppt
1_Assurance_Qualit_et_Gnie_Logiciel.ppt1_Assurance_Qualit_et_Gnie_Logiciel.ppt
1_Assurance_Qualit_et_Gnie_Logiciel.ppthbadir
 
Amener vos applications Dockerisées jusqu’en production avec XebiaLabs
Amener vos applications Dockerisées jusqu’en production avec XebiaLabs �Amener vos applications Dockerisées jusqu’en production avec XebiaLabs �
Amener vos applications Dockerisées jusqu’en production avec XebiaLabs XebiaLabs
 
Scikit Learn: Développement communautaire
Scikit Learn: Développement communautaireScikit Learn: Développement communautaire
Scikit Learn: Développement communautaireGael Varoquaux
 
Production logicielle, outils et pratiques
Production logicielle, outils et pratiquesProduction logicielle, outils et pratiques
Production logicielle, outils et pratiquesJohan Moreau
 
Captronic grenoble 01102014 version presentee
Captronic grenoble 01102014 version presenteeCaptronic grenoble 01102014 version presentee
Captronic grenoble 01102014 version presenteePatrick MOREAU
 
Outils de construction pour la recherche
Outils de construction pour la rechercheOutils de construction pour la recherche
Outils de construction pour la rechercheJohan Moreau
 
Intégration continue
Intégration continueIntégration continue
Intégration continueJohan Moreau
 
French Webinar: XL Deploy 4.0
French Webinar: XL Deploy 4.0French Webinar: XL Deploy 4.0
French Webinar: XL Deploy 4.0XebiaLabs
 
Khaled Ben Driss 28 Fev 2007 V1.0.4
Khaled Ben Driss 28 Fev 2007 V1.0.4Khaled Ben Driss 28 Fev 2007 V1.0.4
Khaled Ben Driss 28 Fev 2007 V1.0.4Khaled Ben Driss
 
Khaled Ben Driss 28 Fev 2007 V1.0.4
Khaled Ben Driss 28 Fev 2007 V1.0.4Khaled Ben Driss 28 Fev 2007 V1.0.4
Khaled Ben Driss 28 Fev 2007 V1.0.4Khaled Ben Driss
 

Similaire à Collaboration avec des projets libres - enjeux, difficultés et bonnes pratiques (20)

Presentation du socle technique Java open source Scub Foundation
Presentation du socle technique Java open source Scub FoundationPresentation du socle technique Java open source Scub Foundation
Presentation du socle technique Java open source Scub Foundation
 
Livret bleu qualitelogicielle_gt-logiciellibre_systematic
Livret bleu qualitelogicielle_gt-logiciellibre_systematicLivret bleu qualitelogicielle_gt-logiciellibre_systematic
Livret bleu qualitelogicielle_gt-logiciellibre_systematic
 
L'analyse qualitative informatique pas cher
L'analyse qualitative informatique pas cherL'analyse qualitative informatique pas cher
L'analyse qualitative informatique pas cher
 
Une application sans framework en 2019
Une application sans framework en 2019Une application sans framework en 2019
Une application sans framework en 2019
 
NightClazz Build Tools & Continuous Delivery
NightClazz Build Tools & Continuous DeliveryNightClazz Build Tools & Continuous Delivery
NightClazz Build Tools & Continuous Delivery
 
Forum PHP 2007 - Methodes Agiles
Forum PHP 2007 - Methodes AgilesForum PHP 2007 - Methodes Agiles
Forum PHP 2007 - Methodes Agiles
 
Intégration Libre & Propriétaire : la Symbiose
Intégration Libre & Propriétaire : la SymbioseIntégration Libre & Propriétaire : la Symbiose
Intégration Libre & Propriétaire : la Symbiose
 
[WEBINAR] Kaliterre : 10 raisons d'intégrer l'éco-conception logicielle
[WEBINAR] Kaliterre : 10 raisons d'intégrer l'éco-conception logicielle[WEBINAR] Kaliterre : 10 raisons d'intégrer l'éco-conception logicielle
[WEBINAR] Kaliterre : 10 raisons d'intégrer l'éco-conception logicielle
 
Rex Software Factories 20140117 - Ensim
Rex Software Factories 20140117 - EnsimRex Software Factories 20140117 - Ensim
Rex Software Factories 20140117 - Ensim
 
1_Assurance_Qualit_et_Gnie_Logiciel.ppt
1_Assurance_Qualit_et_Gnie_Logiciel.ppt1_Assurance_Qualit_et_Gnie_Logiciel.ppt
1_Assurance_Qualit_et_Gnie_Logiciel.ppt
 
Amener vos applications Dockerisées jusqu’en production avec XebiaLabs
Amener vos applications Dockerisées jusqu’en production avec XebiaLabs �Amener vos applications Dockerisées jusqu’en production avec XebiaLabs �
Amener vos applications Dockerisées jusqu’en production avec XebiaLabs
 
Scikit Learn: Développement communautaire
Scikit Learn: Développement communautaireScikit Learn: Développement communautaire
Scikit Learn: Développement communautaire
 
Production logicielle, outils et pratiques
Production logicielle, outils et pratiquesProduction logicielle, outils et pratiques
Production logicielle, outils et pratiques
 
Captronic grenoble 01102014 version presentee
Captronic grenoble 01102014 version presenteeCaptronic grenoble 01102014 version presentee
Captronic grenoble 01102014 version presentee
 
Outils de construction pour la recherche
Outils de construction pour la rechercheOutils de construction pour la recherche
Outils de construction pour la recherche
 
Intégration continue
Intégration continueIntégration continue
Intégration continue
 
Stratégie Logicielle Sun Aquarium Paris
Stratégie Logicielle Sun Aquarium ParisStratégie Logicielle Sun Aquarium Paris
Stratégie Logicielle Sun Aquarium Paris
 
French Webinar: XL Deploy 4.0
French Webinar: XL Deploy 4.0French Webinar: XL Deploy 4.0
French Webinar: XL Deploy 4.0
 
Khaled Ben Driss 28 Fev 2007 V1.0.4
Khaled Ben Driss 28 Fev 2007 V1.0.4Khaled Ben Driss 28 Fev 2007 V1.0.4
Khaled Ben Driss 28 Fev 2007 V1.0.4
 
Khaled Ben Driss 28 Fev 2007 V1.0.4
Khaled Ben Driss 28 Fev 2007 V1.0.4Khaled Ben Driss 28 Fev 2007 V1.0.4
Khaled Ben Driss 28 Fev 2007 V1.0.4
 

Plus de olberger

Presentation distro recipes-2013
Presentation distro recipes-2013Presentation distro recipes-2013
Presentation distro recipes-2013olberger
 
An introduction to git
An introduction to gitAn introduction to git
An introduction to gitolberger
 
Generating Linked Data descriptions of Debian packages in the Debian PTS
Generating Linked Data descriptions of Debian packages in the Debian PTSGenerating Linked Data descriptions of Debian packages in the Debian PTS
Generating Linked Data descriptions of Debian packages in the Debian PTSolberger
 
Interoperability of FLOSS forges; lessons from the COCLICO project, implement...
Interoperability of FLOSS forges; lessons from the COCLICO project, implement...Interoperability of FLOSS forges; lessons from the COCLICO project, implement...
Interoperability of FLOSS forges; lessons from the COCLICO project, implement...olberger
 
OSLC (Open Services for Lifecycle Collaboration): open standard for interoper...
OSLC (Open Services for Lifecycle Collaboration): open standard for interoper...OSLC (Open Services for Lifecycle Collaboration): open standard for interoper...
OSLC (Open Services for Lifecycle Collaboration): open standard for interoper...olberger
 
Presentation forges logicielles à mathrice
Presentation forges logicielles à mathricePresentation forges logicielles à mathrice
Presentation forges logicielles à mathriceolberger
 
Jailbreaking the Forges : project export/import efforts
Jailbreaking the Forges : project export/import effortsJailbreaking the Forges : project export/import efforts
Jailbreaking the Forges : project export/import effortsolberger
 
Bug tracking à grande échelle et interopérabilité des outils de développement...
Bug tracking à grande échelle et interopérabilité des outils de développement...Bug tracking à grande échelle et interopérabilité des outils de développement...
Bug tracking à grande échelle et interopérabilité des outils de développement...olberger
 
OSLC (Open Services for Lifecycle Collaboration): standard ouvert pour l’int...
OSLC (Open Services for Lifecycle Collaboration):  standard ouvert pour l’int...OSLC (Open Services for Lifecycle Collaboration):  standard ouvert pour l’int...
OSLC (Open Services for Lifecycle Collaboration): standard ouvert pour l’int...olberger
 
Presentation soc-fr-fossa
Presentation soc-fr-fossaPresentation soc-fr-fossa
Presentation soc-fr-fossaolberger
 
Bugs tracking at a large scale in the FLOSS ecosystem
Bugs tracking at a large scale in the FLOSS ecosystemBugs tracking at a large scale in the FLOSS ecosystem
Bugs tracking at a large scale in the FLOSS ecosystemolberger
 
Coclico project - Forges Interoperability (OWF 2010)
Coclico project - Forges Interoperability (OWF 2010)Coclico project - Forges Interoperability (OWF 2010)
Coclico project - Forges Interoperability (OWF 2010)olberger
 
Introduction aux logiciels libres
Introduction aux logiciels libresIntroduction aux logiciels libres
Introduction aux logiciels libresolberger
 
Bugtracking on the Web 2.5
Bugtracking on the Web 2.5Bugtracking on the Web 2.5
Bugtracking on the Web 2.5olberger
 
Introduction aux logiciels libres
Introduction aux logiciels libresIntroduction aux logiciels libres
Introduction aux logiciels libresolberger
 
Weaving a Semantic Web across OSS repositories - a spotlight on bts-link, UDD...
Weaving a Semantic Web across OSS repositories - a spotlight on bts-link, UDD...Weaving a Semantic Web across OSS repositories - a spotlight on bts-link, UDD...
Weaving a Semantic Web across OSS repositories - a spotlight on bts-link, UDD...olberger
 
Introduction to bts-link
Introduction to bts-linkIntroduction to bts-link
Introduction to bts-linkolberger
 
Visualizing contributions in a forge -Case study on PicoForge
Visualizing contributions in a forge -Case study on PicoForgeVisualizing contributions in a forge -Case study on PicoForge
Visualizing contributions in a forge -Case study on PicoForgeolberger
 
Plate-formes pour le développement collaboratif des logiciels libres
Plate-formes pour le développement collaboratif des logiciels libresPlate-formes pour le développement collaboratif des logiciels libres
Plate-formes pour le développement collaboratif des logiciels libresolberger
 
Retour d'expérience sur la conduite d'un projet libre
Retour d'expérience sur la conduite d'un projet libreRetour d'expérience sur la conduite d'un projet libre
Retour d'expérience sur la conduite d'un projet libreolberger
 

Plus de olberger (20)

Presentation distro recipes-2013
Presentation distro recipes-2013Presentation distro recipes-2013
Presentation distro recipes-2013
 
An introduction to git
An introduction to gitAn introduction to git
An introduction to git
 
Generating Linked Data descriptions of Debian packages in the Debian PTS
Generating Linked Data descriptions of Debian packages in the Debian PTSGenerating Linked Data descriptions of Debian packages in the Debian PTS
Generating Linked Data descriptions of Debian packages in the Debian PTS
 
Interoperability of FLOSS forges; lessons from the COCLICO project, implement...
Interoperability of FLOSS forges; lessons from the COCLICO project, implement...Interoperability of FLOSS forges; lessons from the COCLICO project, implement...
Interoperability of FLOSS forges; lessons from the COCLICO project, implement...
 
OSLC (Open Services for Lifecycle Collaboration): open standard for interoper...
OSLC (Open Services for Lifecycle Collaboration): open standard for interoper...OSLC (Open Services for Lifecycle Collaboration): open standard for interoper...
OSLC (Open Services for Lifecycle Collaboration): open standard for interoper...
 
Presentation forges logicielles à mathrice
Presentation forges logicielles à mathricePresentation forges logicielles à mathrice
Presentation forges logicielles à mathrice
 
Jailbreaking the Forges : project export/import efforts
Jailbreaking the Forges : project export/import effortsJailbreaking the Forges : project export/import efforts
Jailbreaking the Forges : project export/import efforts
 
Bug tracking à grande échelle et interopérabilité des outils de développement...
Bug tracking à grande échelle et interopérabilité des outils de développement...Bug tracking à grande échelle et interopérabilité des outils de développement...
Bug tracking à grande échelle et interopérabilité des outils de développement...
 
OSLC (Open Services for Lifecycle Collaboration): standard ouvert pour l’int...
OSLC (Open Services for Lifecycle Collaboration):  standard ouvert pour l’int...OSLC (Open Services for Lifecycle Collaboration):  standard ouvert pour l’int...
OSLC (Open Services for Lifecycle Collaboration): standard ouvert pour l’int...
 
Presentation soc-fr-fossa
Presentation soc-fr-fossaPresentation soc-fr-fossa
Presentation soc-fr-fossa
 
Bugs tracking at a large scale in the FLOSS ecosystem
Bugs tracking at a large scale in the FLOSS ecosystemBugs tracking at a large scale in the FLOSS ecosystem
Bugs tracking at a large scale in the FLOSS ecosystem
 
Coclico project - Forges Interoperability (OWF 2010)
Coclico project - Forges Interoperability (OWF 2010)Coclico project - Forges Interoperability (OWF 2010)
Coclico project - Forges Interoperability (OWF 2010)
 
Introduction aux logiciels libres
Introduction aux logiciels libresIntroduction aux logiciels libres
Introduction aux logiciels libres
 
Bugtracking on the Web 2.5
Bugtracking on the Web 2.5Bugtracking on the Web 2.5
Bugtracking on the Web 2.5
 
Introduction aux logiciels libres
Introduction aux logiciels libresIntroduction aux logiciels libres
Introduction aux logiciels libres
 
Weaving a Semantic Web across OSS repositories - a spotlight on bts-link, UDD...
Weaving a Semantic Web across OSS repositories - a spotlight on bts-link, UDD...Weaving a Semantic Web across OSS repositories - a spotlight on bts-link, UDD...
Weaving a Semantic Web across OSS repositories - a spotlight on bts-link, UDD...
 
Introduction to bts-link
Introduction to bts-linkIntroduction to bts-link
Introduction to bts-link
 
Visualizing contributions in a forge -Case study on PicoForge
Visualizing contributions in a forge -Case study on PicoForgeVisualizing contributions in a forge -Case study on PicoForge
Visualizing contributions in a forge -Case study on PicoForge
 
Plate-formes pour le développement collaboratif des logiciels libres
Plate-formes pour le développement collaboratif des logiciels libresPlate-formes pour le développement collaboratif des logiciels libres
Plate-formes pour le développement collaboratif des logiciels libres
 
Retour d'expérience sur la conduite d'un projet libre
Retour d'expérience sur la conduite d'un projet libreRetour d'expérience sur la conduite d'un projet libre
Retour d'expérience sur la conduite d'un projet libre
 

Collaboration avec des projets libres - enjeux, difficultés et bonnes pratiques

  • 1. Collaboration avec des projets libres enjeux, difficultés et bonnes pratiques Olivier BERGER & Christian BAC - GET/INT <olivier.berger@int-edu.eu> JRES 2007
  • 2. <hype mode=quot;onquot;> Le libre c'est bon. Mangez-en ! O. Berger - JRES 2007 2/9
  • 3. Dans le libre, on se fait vite plein d'amis ! O. Berger - JRES 2007 3/9
  • 4. Mettez votre logiciel sous GPL succès assuré ! O. Berger - JRES 2007 4/9
  • 5. Les failles de sécu sont corrigées super vite ! patch#45678 O. Berger - JRES 2007 5/9
  • 6. Les contributeurs travaillent gratuitement vite et bien O. Berger - JRES 2007 6/9
  • 7. La solution à tous vos problèmes de développement ... O. Berger - JRES 2007 7/9
  • 8. Après l'outsourcing le CrowdSourcing </hype> O. Berger - JRES 2007 8/9
  • 9. Foutaise ? O. Berger - JRES 2007 9/9
  • 10. Désolé ;-) ● Ce n'est pas si simple ● Le modèle du libre n'est pas magique ● Il y a de bonnes opportunités ● On peut en bénéficier pour des projets internes ● Une des conditions nécessaires est d'avoir intégré une stratégie de contribution aux projets libres. O. Berger - JRES 2007 10 / 43
  • 11. Plan ● Introduction ● Tirer parti des logiciels libres ● Conduite de projet ● Contribuer : une nécessité O. Berger - JRES 2007 11 / 43
  • 12. Présentation ● Ingénieur de recherche au GET (Groupe des Écoles des Télécommunications), à l'INT (Institut National des Télécommunications) à Évry ● Co-développeur de la plate-forme PicoForge (plate-forme de travail collaboratif libre - www.picoforge.org) - Cf. poster JRES ● Plusieurs projets de recherche sur le logiciel libre (FP6 IST CALIBRE, GET PFTCR et Contrib 2.0) ● Adepte et « évangéliste du libre » de longue date, mais en congé sabbatique ● Wannabe développeur de la distribution Debian http://www-public.int-edu.eu/~berger_o/weblog/ O. Berger - JRES 2007 12 / 43
  • 13. Point de vue ● Organisation utilisatrice des logiciels libres ● Intégration de logiciels libres et de customisations nécessaires aux besoins internes ● Rationalisation / Mutualisation sur le moyen terme ● Élaboration d'une stratégie de collaboration avec des projets libres O. Berger - JRES 2007 13 / 43
  • 14. Tirer parti des logiciels libres ? O. Berger - JRES 2007 14 / 43
  • 15. Logiciel libre ? ● « La liberté d'exécuter le programme, pour tous d'exécuter les usages (liberté 0). ● La liberté d'étudier le fonctionnement du d'étudier programme, et de l'adapter à vos besoins (liberté l'adapter 1). Pour ceci l'accès au code source est une condition requise. ● La liberté de redistribuer des copies, donc d'aider copies, votre voisin, (liberté 2). ● La liberté d'améliorer le programme et de publier vos améliorations, pour en faire profiter toute la améliorations, communauté (liberté 3). Pour ceci l'accès au code source est une condition requise. » http://www.gnu.org/philosophy/free-sw.fr.html O. Berger - JRES 2007 15 / 43
  • 16. Nombreuses qualités ● Qualités génériques ... déjà connues ● Qualités particulières d'un logiciel libre => à évaluer – sa licence – sa communauté – son code (sa doc, son langage, etc.) ● Méthodes d'évaluation (QSOS, OpenBRR, ...) http://fr.wikipedia.org/wiki/Méthode_d'évaluation_de_logiciels_libres O. Berger - JRES 2007 16 / 43
  • 17. Intégrer le libre dans les projets internes O. Berger - JRES 2007 17 / 43
  • 18. Degrés d'interaction avec les communautés ● utilisation « simple » de solutions packagées correspondant directement au besoin, sans nécessité d'adaptation, ● « customisation » de solutions existantes, ● intégration lourde de différentes solutions, packaging et déploiement d'un ensemble plus large, potentiellement « mission critical ». O. Berger - JRES 2007 18 / 43
  • 19. Conduite de projet Analyse des besoins Spécification Architecture Conception détaillée Codage Tests ? Déploiement O. Berger - JRES 2007 19 / 43
  • 20. Sélection d'un produit ● Simplicité et réactivité ● Ne pas confondre vitesse et précipitation ● Sous-traiter ce qui peut l'être ● Identifier les éléments critiques et monter en compétence ● Préférer les solutions déjà packagées O. Berger - JRES 2007 20 / 43
  • 21. Maintien en condition opérationnelle ● Réactivité pour les mises à jour ● Diminuer l'adhérence dans les composants spécifiques O. Berger - JRES 2007 21 / 43
  • 22. Stabilisation impossible ● Mises à jour de sécurité permanentes ● Répétition des mises à jour ● Automatisation souhaitable ● Diminuer la taille du code spécifique O. Berger - JRES 2007 22 / 43
  • 23. 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 O. Berger - JRES 2007 23 / 43
  • 24. Développement ● Rendre générique ce qui peut l'être ● Méthodologie d'intégration O. Berger - JRES 2007 24 / 43
  • 25. Déploiement ● Support de certains matériels (distributions supportées) ● Virtualisation (Xen, etc.) ● Savoir packager O. Berger - JRES 2007 25 / 43
  • 26. Repackager i810switch http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=374638#15 O. Berger - JRES 2007 26 / 43
  • 27. $ 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 ». O. Berger - JRES 2007 27 / 43
  • 28. Connaître un projet libre O. Berger - JRES 2007 28 / 43
  • 29. Pas que la licence ● Communauté – développement – utilisatrice ● Personnes ● Acteurs économiques ● But, objectifs ● Méthodologie ● Qualités propres du code O. Berger - JRES 2007 29 / 43
  • 30. Rapide panorama d'un écosystème Debian Debian s rs ion ve packages b ugs Développeurs versions Utilisateurs amont RedHat RedHat bugs (“upstream”) ver bugs sio ns bu gs OpenSuse Éditeurs SSII distributions O. Berger - JRES 2007 30 / 43
  • 31. Communautés ● Bénévoles (motivations) ● Professionnels ● Contractualisation ? ● Roadmap ● Stratégie de stabilisation de versions ● Système d'Assurance Qualité ● Leadership O. Berger - JRES 2007 31 / 43
  • 32. Enjeux sociaux ● 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 O. Berger - JRES 2007 32 / 43
  • 33. Contribuer : une nécessité O. Berger - JRES 2007 33 / 43
  • 34. Pourquoi contribuer ● 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 O. Berger - JRES 2007 34 / 43
  • 35. 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 ? O. Berger - JRES 2007 35 / 43
  • 36. Bug Sympa dans Debian J+5 O. Berger - JRES 2007 36 / 43
  • 37. J+6 O. Berger - JRES 2007 37 / 43
  • 38. Committed upstream (branch in SVN) J+6 O. Berger - JRES 2007 38 / 43
  • 39. 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 O. Berger - JRES 2007 39 / 43
  • 40. O. Berger - JRES 2007 40 / 43
  • 41. Comment bien contribuer ● Il n'y a pas besoin de savoir coder ● Assurer une veille régulière ● Beaucoup d'effort même pour des choses simples ● Minimum légal : faire vivre la base de bugs O. Berger - JRES 2007 41 / 43
  • 42. Comment bien contribuer (suite) ● Accepter des usages sociaux différents ● Communiquer avant tout ● Jouer le jeu selon les règles ● Eviter l' « abandonware » non déclaré ● Contribuer un nouveau module au bon endroit ● Investir dans une forge pour un nouveau logiciel
  • 43. Conclusion ● Loin de l'exhaustivité ● Pas un seul modèle : mais quelques bonnes pratiques ● Contribuer est nécessaire pour la survie du modèle, mais aussi concrètement dans les effets utiles aux projets locaux. O. Berger - JRES 2007 43 / 43
  • 44. Méthode QSOS http://www.qsos.org/ O. Berger - JRES 2007 44 / 43
  • 45. Fiche QSOS O. Berger - JRES 2007 45 / 43
  • 46. Annuaires ● Freshmeat http://freshmeat.net/ (43000 projets) ● FSF/Unesco : http://directory.fsf.org/ (5400 projets) ● Plume (Promouvoir les Logiciels Utiles Maîtrisés et Economiques dans l'Enseignement Supérieur et la Recherche) : http://www.projet-plume.org/ O. Berger - JRES 2007 46 / 43