envol 2012 olivier thauvin 24 janvier 2013 · développé par linus torvalds pour le kernel linux...
TRANSCRIPT
Outils de développement collaboratifEnvol 2012
Olivier Thauvin
24 janvier 2013
Olivier Thauvin Outils de développement collaboratif 24 janvier 2013 1 / 80
1 Avant Propos
2 Versionner
3 Communiquer
4 Documenter : Wiki
5 Gérer les bogues
6 Les tout en un : Trac
7 Conclusion
Olivier Thauvin Outils de développement collaboratif 24 janvier 2013 2 / 80
Avant Propos
Moi. . .
OfficiellementAdmin. Système et Réseau au LATMOSAdmin. de la forge de l’IPSL
Officieusementcontributeur Mageiaex-contributeur Mandriva, PLFcodeur PERL (voir C). . .
Olivier Thauvin Outils de développement collaboratif 24 janvier 2013 4 / 80
Avant Propos
Outils collaboratifs ?
outils :Collaboration :
Olivier Thauvin Outils de développement collaboratif 24 janvier 2013 5 / 80
Avant Propos
Outils collaboratifs !
Ne pas oublierles outils aident à travailler ensembleles outils ne régleront pas les conflits
Quelques outils essentiels :
Olivier Thauvin Outils de développement collaboratif 24 janvier 2013 6 / 80
Versionner
Définition
Besoin initial :tracer les changements (qui, quand, quoi)synchroniser le travail
depuis plusieurs machinesde plusieurs personnes
ne pas perdre de code
PrincipeEnregistrer les modifications au fur et à mesure du développement.
Bonussert de sauvegardepermet de faire des statistiques
Olivier Thauvin Outils de développement collaboratif 24 janvier 2013 8 / 80
Versionner
Centralisé vs Décentralisé
Centralisé :point de stockage unique
donc dépendant du réseau
enregistrements ordonnés
Décentralisé :plusieurs points de stockage
la centralisation est une conventionchacun a la totalité de l’historiquepermet de travailler off-line
chaque modification est un « patch »
Les décentralisés sont. . .plus souplesmais aussi plus compliqués
Olivier Thauvin Outils de développement collaboratif 24 janvier 2013 9 / 80
Versionner Préhistoire
Il était une fois. . .
Source Code Control System (SCCS)1972 (plus maintenu)sur IBM System/370, System V, Solarisobsolète
Revision Control System1982 (dernière release : 5.8.1 5 juin 2012)GPL (logiciel GNU)gestion fichier par fichierlocal à la machine
Olivier Thauvin Outils de développement collaboratif 24 janvier 2013 11 / 80
Versionner Dépôts Centralisés
Concurrent Versions System
Historique :début : 1986 (shell script autour de rcs)écrit en CGPL (logiciel GNU)
Fonctionnalité :mode client/serveur
serveur autonomevia ssh
mode anonyme
Olivier Thauvin Outils de développement collaboratif 24 janvier 2013 14 / 80
Versionner Dépôts Centralisés
Concurrent Versions System
Pour :relativement simple à utiliserstabletrès répandu
Contre :commit non atomiquepas de renommage des fichiersgestion des branches acrobatiquecommunique (trop) souvent avec le serveur
Utiliser plutôt subversion pour les nouveaux projets.
Olivier Thauvin Outils de développement collaboratif 24 janvier 2013 15 / 80
Versionner Dépôts Centralisés
Subversion
Historique :2000 : début du projet par Collabnet2001 : Subversion sous subversionremplaçant de CVS
Features :mode client/serveur
serveur autonomevia apache (mod dav)via ssh
mode anonyme
Olivier Thauvin Outils de développement collaboratif 24 janvier 2013 17 / 80
Versionner Dépôts Centralisés
Subversion : le bonheur
Pour :très bien documentésimple à utiliser
d’autant plus pour les utilisateurs de CVS
stable (désormais très utilisé)0 maintenance sur le dépôt (à part les backups)stockage intelligent coté dépôtpermet de travailler sur une partie seulementsupport d’ACLs
Recommandé :pour remplacer CVSpour les personnes nouvelles dans le versionnement
Olivier Thauvin Outils de développement collaboratif 24 janvier 2013 18 / 80
Versionner Dépôts Décentralisés
Git
HistoriqueDéveloppé par Linus Torvalds pour le kernel Linuxremplaçant de BitKeeperpremière release : 7 April 2005dernière version : 1.8.0.1 (26 Novembre 2012)
Principechaque révision est une liste
de bloc de data (référencés par leur sha1)de chemin
l’historique du dépôt : la liste des révisionséchange de patch entre les dépôts
sshweb
Olivier Thauvin Outils de développement collaboratif 24 janvier 2013 21 / 80
Versionner Dépôts Décentralisés
Git
Énormément de fonctionnalitétrès performantssauvegarde incrémentale des modificationscompression des donnéessupport de modération et signature numérique
Dans la pratiqueplusieurs manière de faire les chosesbeaucoup de commandes obscursnécessite une formation ou au moins un investissement
En résumé :seulement pour les « utilisateurs expérimentés »
Olivier Thauvin Outils de développement collaboratif 24 janvier 2013 22 / 80
Versionner Dépôts Décentralisés
Git-svn
Principecopie de travail sous gitdépôt distant sous subversiongit-svn synchronise les deux (pull/push)
Avantagestravail hors connectionsouplesse de git
Points faiblesabsence de certaines fonctionnalitéspeut « endommager » le dépôtpeut créer des problèmes obscurs
Olivier Thauvin Outils de développement collaboratif 24 janvier 2013 24 / 80
Versionner Dépôts Décentralisés
darcs
historiquepremière release : 3 mars 2003dernière version : 2.8 (22 avril 2012)écrit en haskell (langage fonctionnel)
basé sur la théorie de patchchaque révision est un patchgestion des dépendances entre patch (pas d’ordre)échange de patch entre dépôtschaque branche est un dépôt
Olivier Thauvin Outils de développement collaboratif 24 janvier 2013 26 / 80
Versionner Dépôts Décentralisés
darcs
Ce qui est bien :très simple à utiliser (hormis la gestion des dépôts)très innovant dans le principetrès souple
Ce qui n’est pas bien :écrite en haskell, donc pas disponible partoutparfois lent, ou réaction bizarreassez peu répandu
Olivier Thauvin Outils de développement collaboratif 24 janvier 2013 27 / 80
Versionner Dépôts Décentralisés
Mercurial
historiquepremière release : 19 Avril 2005dernière version : 2.4.1 (3 Décembre 2012)écrit en pythonremplaçant de BitKeeper (aussi)
un git mais en simplebien documentéparfait ?
Olivier Thauvin Outils de développement collaboratif 24 janvier 2013 29 / 80
Versionner Comparaison rapide
Disponibilité selon les OS
Disponibilité
Unix Mac OS Windows Autres. . .Svn Oui Natif Tortoise AndroidGit Oui Oui ? ?Darcs Oui ? ? ? ?Mercurial Oui ? ? Oui
Olivier Thauvin Outils de développement collaboratif 24 janvier 2013 31 / 80
Versionner Comparaison rapide
Protocole de communication
Communiquons !
Propres http(s) ssh Autres. . .Svn X X XGit X XDarcs X XMercurial X X
Olivier Thauvin Outils de développement collaboratif 24 janvier 2013 32 / 80
Versionner Outils de visualisation : viewvcs, darcsview, gitview
viewvc, darcsview, gitview
Fonctionnalitésoutils websupportent plusieurs dépôtslecture seule sur les dépôtsliste les fichiers présentsvue de l’historiquevue de l’origine des lignes d’un fichier
Sont disponibles :
viewvc cvs, subversiondarcsweb darcsgitweb git
Olivier Thauvin Outils de développement collaboratif 24 janvier 2013 34 / 80
Versionner Outils de visualisation : viewvcs, darcsview, gitview
Viewvcs
Olivier Thauvin Outils de développement collaboratif 24 janvier 2013 35 / 80
Versionner Outils de visualisation : viewvcs, darcsview, gitview
Viewvcs
Olivier Thauvin Outils de développement collaboratif 24 janvier 2013 36 / 80
Communiquer
Communiquons !
“La chose la plus importante en communication, c’estd’entendre ce qui n’est pas dit”.
Drucker, Peter F
Olivier Thauvin Outils de développement collaboratif 24 janvier 2013 38 / 80
Communiquer Mail
A retenirtout le monde l’utilisetout le monde n’a pas une adresse fiablesemble instantané mais ne l’est paslecture différée si absence
Liste de diffusion :permet de rationaliser les mails :
soit pour informationsoit pour discussion
fonctionne par abonnementlibremodéré
permet l’archivage des mails
Olivier Thauvin Outils de développement collaboratif 24 janvier 2013 40 / 80
Communiquer Mail
Simple et efficace : Mailman
PrésentationLogiciel GNU, Libreécrit en python (UNIX)
Points fortsconfiguration via le webdélégation de gestion des listestrès configurablepeu de maintenance
Points faibletrop d’options ( ?)pas de connection avec des bases externes (ldap, sql, . . . )
Olivier Thauvin Outils de développement collaboratif 24 janvier 2013 42 / 80
Communiquer Mail
Sympa
PrésentationLogiciel Libre (GPL)écrit en perl (UNIX)
Points fortsconfiguration via le webdélégation de gestion des listessupport de base de compte externe (ldap, sql)supporte des grosses listes (700 000 membres)
Points faiblerelativement complexe à mettre en place (selon besoins)
Olivier Thauvin Outils de développement collaboratif 24 janvier 2013 44 / 80
Communiquer Chat
le Chat sous la souris
DéfinitionDiscussions temps réel (texte)
publiques (salon)privées
Intérêtspeu intrusifréduit les distancessuivi de discutions publiques
Piègespeu devenir chrono phagenécessite la « culture du chat »
Olivier Thauvin Outils de développement collaboratif 24 janvier 2013 46 / 80
Communiquer Chat
Internet Relay Chat
Présentationcrée en 1988 (rfc1459, 1993)protocole simplepurement textepermet l’échange de fichier (pb de sécurité)
Pour et contrenombreux clients (graphique et texte)simple à utiliserne nécessite pas obligatoirement de comptetrès répandu dans le monde du libre
très limité dans les fonctionnalités
Olivier Thauvin Outils de développement collaboratif 24 janvier 2013 48 / 80
Communiquer Chat
Extensible Messaging and Presence Protocol (XMPP)
PrésentationCréé en 1999, (première RFC en 2004)protocole basé sur XMLsupporte : texte, VoIP, vidéo, jeux, . . .utilisé par Google (2005), AOL (2008), MSN (2011)
Pour et contrebeaucoup plus riche qu’IRCcommunauté jabber activeplus sécurisé qu’IRCun peu plus compliqué à prendre en main
Olivier Thauvin Outils de développement collaboratif 24 janvier 2013 50 / 80
Communiquer Forums
Discussion via le WEB
Présentationsite webdiscussion organisé par sujet (topic)une discussion = « 1 thread »les anciennes discutions restent en ligne
Internet obligeil faut un compte pour poster (anti-spam)présence d’administrateurs et/ou modérateursil faut surveiller les contenussurtout utilisé pour l’entraide
Olivier Thauvin Outils de développement collaboratif 24 janvier 2013 52 / 80
Communiquer Forums
phpBB
Présentationlogiciel libreécrit en phpsupport d’authentification ldap (selon les versions)
Pour/Contresimple à utiliserplusieurs variantes disponibles (fork)
Olivier Thauvin Outils de développement collaboratif 24 janvier 2013 54 / 80
Documenter : Wiki
Mon wiki c’est le wiki de tout les wiki
Présentationapplication web (site web)collaboratif (plusieurs personnes)edition de page
Doncgestion d’utilisateurs (et groupes)gestion de verrous sur les pages (éditions concurrentes)format simplifié d’édition de contenuversionnement des pages
Olivier Thauvin Outils de développement collaboratif 24 janvier 2013 56 / 80
Documenter : Wiki Dokuwiki
Dokuwiki
Présentationécrit en phpsimple à installersans base de données
Olivier Thauvin Outils de développement collaboratif 24 janvier 2013 58 / 80
Documenter : Wiki MediaWiki
Le wiki de Wikipedia
Présentationécrit en phpécrit pour wikipédiaedition partielle des pages, fonctionnalité anti-spamsupport multilingue, multimédiagestion d’utilisateurs complète (« admin vs users »)
Pour/contrePour :
très completcommunauté active
Contre :plus de configuration à faire
Olivier Thauvin Outils de développement collaboratif 24 janvier 2013 60 / 80
Gérer les bogues
Gestion des bogues
Besoins :lister les problèmes ou besoinsgérer les prioritéscommenter le problèmesuivre l’évolution des problèmesmarquer sa résolutiongarder l’historique, pouvoir revenir sur un bogue
Olivier Thauvin Outils de développement collaboratif 24 janvier 2013 62 / 80
Gérer les bogues Bugzilla
Bugzilla
Présentationécrit en perlgestion de multiple produitsutilisation de base données (mysql, pgsql, . . . )
Pour/contrePour :
très complettrès utilisé
Contre :trop lourd pour des petits projets
Olivier Thauvin Outils de développement collaboratif 24 janvier 2013 64 / 80
Gérer les bogues Bugzilla
Bugzilla
Olivier Thauvin Outils de développement collaboratif 24 janvier 2013 65 / 80
Gérer les bogues RT : Request Tracker
RT : Request Tracker
Présentationécrit en perl, utilisé par le CPANbug tracker, support clients, help desksupport smart phone
Pour/contrePour :
très completcommunauté activesimple à utiliser
Contre :difficile à mettre en place
Olivier Thauvin Outils de développement collaboratif 24 janvier 2013 67 / 80
Gérer les bogues Mantis
Mantis
Présentationécrit en phpnécessite mysql ou postgresqltraduit dans 68 languessupport smart phone
Pour/contrePour :
fonctionnalité intéressantessimple à utiliser
Contre :écrit php (problèmes de sécurité lié à php).
Olivier Thauvin Outils de développement collaboratif 24 janvier 2013 69 / 80
Les tout en un : Trac
Trac
Présentationécrit en pythonwiki, bug tracker, gestion de projet, visualisation du codebase données : sqlite, mysql/postgres
Pour/contrePour :
tout en unsimple à mettre ne placelien facile entre les composantsadapté pour des petits/moyens projets
Contre :peu de fonctionnalités dans chaque partie
Olivier Thauvin Outils de développement collaboratif 24 janvier 2013 71 / 80
Les tout en un : Trac
Trac - Wiki
Olivier Thauvin Outils de développement collaboratif 24 janvier 2013 72 / 80
Les tout en un : Trac
Trac - Timeline
Olivier Thauvin Outils de développement collaboratif 24 janvier 2013 73 / 80
Les tout en un : Trac
Trac - Roadmap
Olivier Thauvin Outils de développement collaboratif 24 janvier 2013 74 / 80
Les tout en un : Trac
Trac - Code
Olivier Thauvin Outils de développement collaboratif 24 janvier 2013 75 / 80
Les tout en un : Trac
Trac - Bugs
Olivier Thauvin Outils de développement collaboratif 24 janvier 2013 76 / 80
Conclusion
Bien choisir
Avant mise en place pensez :au coût de mise en place (on ne le fait qu’un fois, ouf !)au coût de maintenanceaux problèmes de sécuritéaux coût d’évolution
Ne faites pas ça chez vous !Pour être efficient ces outils doivent facilement accessibles, avant deles choisir :
vérifier qu’une solution d’hébergement n’existe pas déjàdiscuter avec l’ASR de votre besoin (c’est lui qui aura lesproblèmes)pensez au backups !
Olivier Thauvin Outils de développement collaboratif 24 janvier 2013 78 / 80
Conclusion
Les priorités
Le versionnement doit toujours être mis en place. . .. . . en premier ! !
installation facilefonctionnalités indispensablesle reste viendra avec les besoins
Olivier Thauvin Outils de développement collaboratif 24 janvier 2013 79 / 80
Conclusion
Merci
Question ?
(c) Wikipédia
Olivier Thauvin Outils de développement collaboratif 24 janvier 2013 80 / 80