SlideShare a Scribd company logo
1 of 29
Download to read offline
Mettez du libre dans
vos projets
Pierre Rudloff
C’est quoi un logiciel libre ?
4 libertés fondamentales :
— utiliser le logiciel
— étudier son fonctionnement et de l’adapter à ses besoins
— le redistribuer
— l’améliorer et redistribuer ces améliorations
Le libre dans l’éco-système web
Serveurs : Apache, Nginx, PHP
Navigateurs : Firefox, WebKit, Chromium
Bibliothèques : jQuery, Bootstrap, Symfony
CMS : WordPress, SPIP, Drupal
Pourquoi utiliser du libre ?
Ne pas réinventer la roue
Utiliser du code audité
S’inscrire dans un écosystème
Abolir le capitalisme (ou pas)
Pourquoi contribuer ?
Aider les autres
Montrer ce que vous savez faire
Avoir des retours sur votre code
Profiter des améliorations des autres
Bien utiliser une
bibliothèque libre
Utiliser un gestionnaire de
paquets
Selon le langage :
— Composer
— Bower
— NPM
— CPAN
— Maven
— Etc.
Les + :
— Mise à jour simplifiée
— Suivi des dépendances
— Gestion des conflits
— N’encombre pas votre dépôt
Lire la licence
Gratuit != libre
Attribuez correctement !
Attention à la viralité
Cas particulier de l’AGPL
Signaler un bug
Avant de signaler le bug
Vérifiez que le bug n’a pas déjà été signalé !
Lisez les bug writing guidelines !
Apprenez l’anglais
Écrire un bon rapport de bug
Ça ne fonctionne pas quand j’ajoute un calendrier.
Être précis
Quand j’essaie d’ajouter le calendrier à l’URL http://example.
org/cal.ics, j’obtiens l’erreur suivante :
“Unknown field X-GOOGLE-HANGOUT”
Indiquer la version et la plate-
forme
J’utilise la version 0.2.1 de votre bibliothèque avec PHP 5.3.
Quand j’essaie d’ajouter le calendrier à l’URL http://example.
org/cal.ics, j’obtiens l’erreur suivante :
“Unknown field X-GOOGLE-HANGOUT”
Préciser ce qui est attendu
J’utilise la version 0.2.1 de votre bibliothèque avec PHP 5.3.
Quand j’essaie d’ajouter le calendrier à l’URL http://example.
org/cal.ics, j’obtiens l’erreur suivante :
“Unknown field X-GOOGLE-HANGOUT”
Je pense que les champs inconnus devraient juste être ignorés.
Montrez votre code !
J’utilise la version 0.2.1 de votre bibliothèque avec PHP 5.3.
Quand j’essaie d’ajouter le calendrier à l’URL http://example.
org/cal.ics, j’obtiens l’erreur suivante :
“Unknown field X-GOOGLE-HANGOUT”
Je pense que les champs inconnus devraient juste être ignorés.
Voici mon code :
[…]
Faire un patch
Bien écrire votre patch
En parler avant
Utiliser la dernière version
Lire les guidelines
Respecter les conventions de code
Patch ou pull request ?
diff -U old/ new/
Si le projet n’est pas sur
GitHub/GitLab/etc.
lnterface web
Permet de fusionner plusieurs
commits
Créer un plugin
Bien écrire votre plugin
Vérifiez qu’il n’existe pas déjà
Définissez clairement ses fonctionnalités
Choisissez une licence (http://choosealicense.com/)
Utilisez le semantic versioning (http://semver.org/)
Documentez-le (code + installation) !
Faire un fork
Faire un fork
Les - :
— Difficile de garder la
compatibilité
— Du boulot d’intégrer les patchs
de sécurité
— Nécessite de le maintenir sur le
long terme
Les + :
— Plus de liberté
— Pas besoin de discuter
Bien communiquer sur votre fork
Changez le nom (et le logo)
Indiquez que c’est un fork
Décrivez les raisons du fork et ce qui change
Prévoir la contribution dans
votre workflow
Utiliser du libre prend du temps
Il faut le prévoir dans le budget.
Laisser du temps à vos développeur.euse.s pour contribuer à
des projets libres ?
Financer les projets que vous utilisez souvent ?
Créer un logiciel libre
Faciliter la réutilisation
Publiez le code sur GitHub ou GitLab
Découpez votre projet en modules
Facilitez l’installation
Faciliter la contribution
Écrivez de la documentation et des guidelines
Utilisez des standards reconnus (PSR, JSHint, etc.)
Ne mordez pas !
Soyez inclusif.ve.s !
Bibliographie
— Produire du logiciel libre, Karl
Fogel
— Option libre, Benjamin Jean
— Libres conseils
— Utopie du logiciel libre, Sébastien
Broca

More Related Content

What's hot

Hermes, génération et déploiement d'ipa by Peter Meuel
Hermes, génération et déploiement d'ipa by Peter MeuelHermes, génération et déploiement d'ipa by Peter Meuel
Hermes, génération et déploiement d'ipa by Peter MeuelCocoaHeads France
 
Jenkins - Les jeudis de la découverte
Jenkins - Les jeudis de la découverteJenkins - Les jeudis de la découverte
Jenkins - Les jeudis de la découverteStephane Couzinier
 
Développer et déployer une application php maintenable
Développer et déployer une application php maintenableDévelopper et déployer une application php maintenable
Développer et déployer une application php maintenableLeTesteur
 
Wordcamp paris 2015 dev-pragmatique-bonnes-pratiques
Wordcamp paris 2015  dev-pragmatique-bonnes-pratiquesWordcamp paris 2015  dev-pragmatique-bonnes-pratiques
Wordcamp paris 2015 dev-pragmatique-bonnes-pratiquesSylvie Clément
 
WordCamp Lyon 2015 - WordPress, Git et l'intégration continue
 WordCamp Lyon 2015 - WordPress, Git et l'intégration continue WordCamp Lyon 2015 - WordPress, Git et l'intégration continue
WordCamp Lyon 2015 - WordPress, Git et l'intégration continueStéphane HULARD
 
Orchestrez vos projets Symfony sans fausses notes
Orchestrez vos projets Symfony sans fausses notesOrchestrez vos projets Symfony sans fausses notes
Orchestrez vos projets Symfony sans fausses notesXavier Gorse
 
Le développement web : tour d'horizon
Le développement web : tour d'horizonLe développement web : tour d'horizon
Le développement web : tour d'horizonMicrosoft
 
Devoxx france 2014 - Jérôme LELEU - One java library to rule all security pro...
Devoxx france 2014 - Jérôme LELEU - One java library to rule all security pro...Devoxx france 2014 - Jérôme LELEU - One java library to rule all security pro...
Devoxx france 2014 - Jérôme LELEU - One java library to rule all security pro...Jérôme Leleu
 
Présentation de CakePHP, 22/04/2010
Présentation de CakePHP, 22/04/2010Présentation de CakePHP, 22/04/2010
Présentation de CakePHP, 22/04/2010Guillaume Sautereau
 

What's hot (9)

Hermes, génération et déploiement d'ipa by Peter Meuel
Hermes, génération et déploiement d'ipa by Peter MeuelHermes, génération et déploiement d'ipa by Peter Meuel
Hermes, génération et déploiement d'ipa by Peter Meuel
 
Jenkins - Les jeudis de la découverte
Jenkins - Les jeudis de la découverteJenkins - Les jeudis de la découverte
Jenkins - Les jeudis de la découverte
 
Développer et déployer une application php maintenable
Développer et déployer une application php maintenableDévelopper et déployer une application php maintenable
Développer et déployer une application php maintenable
 
Wordcamp paris 2015 dev-pragmatique-bonnes-pratiques
Wordcamp paris 2015  dev-pragmatique-bonnes-pratiquesWordcamp paris 2015  dev-pragmatique-bonnes-pratiques
Wordcamp paris 2015 dev-pragmatique-bonnes-pratiques
 
WordCamp Lyon 2015 - WordPress, Git et l'intégration continue
 WordCamp Lyon 2015 - WordPress, Git et l'intégration continue WordCamp Lyon 2015 - WordPress, Git et l'intégration continue
WordCamp Lyon 2015 - WordPress, Git et l'intégration continue
 
Orchestrez vos projets Symfony sans fausses notes
Orchestrez vos projets Symfony sans fausses notesOrchestrez vos projets Symfony sans fausses notes
Orchestrez vos projets Symfony sans fausses notes
 
Le développement web : tour d'horizon
Le développement web : tour d'horizonLe développement web : tour d'horizon
Le développement web : tour d'horizon
 
Devoxx france 2014 - Jérôme LELEU - One java library to rule all security pro...
Devoxx france 2014 - Jérôme LELEU - One java library to rule all security pro...Devoxx france 2014 - Jérôme LELEU - One java library to rule all security pro...
Devoxx france 2014 - Jérôme LELEU - One java library to rule all security pro...
 
Présentation de CakePHP, 22/04/2010
Présentation de CakePHP, 22/04/2010Présentation de CakePHP, 22/04/2010
Présentation de CakePHP, 22/04/2010
 

Similar to Mettez du libre dans vos projets web

Symphonie pour PHP industrialisé en agilité majeure
Symphonie pour PHP industrialisé en agilité majeureSymphonie pour PHP industrialisé en agilité majeure
Symphonie pour PHP industrialisé en agilité majeureMarc Nazarian
 
Symphonie pour PHP industrialisé en agilité majeure
Symphonie pour PHP industrialisé en agilité majeureSymphonie pour PHP industrialisé en agilité majeure
Symphonie pour PHP industrialisé en agilité majeureJonathan Bonzy
 
Conférence #nwx2014 - Maxime Mauchaussée - Partager du code maintenable et év...
Conférence #nwx2014 - Maxime Mauchaussée - Partager du code maintenable et év...Conférence #nwx2014 - Maxime Mauchaussée - Partager du code maintenable et év...
Conférence #nwx2014 - Maxime Mauchaussée - Partager du code maintenable et év...Normandie Web Xperts
 
Comment travailler avec les logiciels Open Source
Comment travailler avec les logiciels Open SourceComment travailler avec les logiciels Open Source
Comment travailler avec les logiciels Open SourceChristian Charreyre
 
Paris Web 2015 - Atelier désendettement Javascript legacy
Paris Web 2015 - Atelier désendettement Javascript legacyParis Web 2015 - Atelier désendettement Javascript legacy
Paris Web 2015 - Atelier désendettement Javascript legacyFrançois Petitit
 
Php sous Windows - webcamps Paris
Php sous Windows - webcamps ParisPhp sous Windows - webcamps Paris
Php sous Windows - webcamps ParisLeTesteur
 
Paris Web 2015 - Atelier desendettement javascript
Paris Web 2015 - Atelier desendettement javascriptParis Web 2015 - Atelier desendettement javascript
Paris Web 2015 - Atelier desendettement javascriptMichael Akbaraly
 
20081023 - Paris Vi Master STL TA - Initiation Maven
20081023 - Paris Vi Master STL TA - Initiation Maven20081023 - Paris Vi Master STL TA - Initiation Maven
20081023 - Paris Vi Master STL TA - Initiation MavenArnaud Héritier
 
20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache Maven20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache MavenArnaud Héritier
 
Déploiement PHP : de l'âge de pierre à nos jours.
Déploiement PHP : de l'âge de pierre à nos jours.Déploiement PHP : de l'âge de pierre à nos jours.
Déploiement PHP : de l'âge de pierre à nos jours.Amélie DUVERNET
 
20131024 qualité de code et sonar - mug lyon
20131024   qualité de code et sonar - mug lyon20131024   qualité de code et sonar - mug lyon
20131024 qualité de code et sonar - mug lyonClement Bouillier
 
Devoxx 2017 : toutes les actualités technologiques à surveiller !
Devoxx 2017 : toutes les actualités technologiques à surveiller !Devoxx 2017 : toutes les actualités technologiques à surveiller !
Devoxx 2017 : toutes les actualités technologiques à surveiller !Société ELOSI
 
BBL - TDD pour les DevOps - Puppet
BBL - TDD pour les DevOps - PuppetBBL - TDD pour les DevOps - Puppet
BBL - TDD pour les DevOps - PuppetOlivier BAZOUD
 
Mon environnement de travail a-t-il encore un avenir ?
Mon environnement de travail a-t-il encore un avenir ?Mon environnement de travail a-t-il encore un avenir ?
Mon environnement de travail a-t-il encore un avenir ?Frederic Dewinne
 
AlterWay SolutionsLinux Outils Industrialisation PHP
AlterWay SolutionsLinux Outils Industrialisation PHPAlterWay SolutionsLinux Outils Industrialisation PHP
AlterWay SolutionsLinux Outils Industrialisation PHPjulien pauli
 
Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !VISEO
 
20100221 my phingtool - blog
20100221   my phingtool - blog20100221   my phingtool - blog
20100221 my phingtool - blogPHPPRO
 
Accroître la sécurité de son site internet et de Joomla! plus spécifiquement
Accroître la sécurité de son site internet et de Joomla! plus spécifiquementAccroître la sécurité de son site internet et de Joomla! plus spécifiquement
Accroître la sécurité de son site internet et de Joomla! plus spécifiquementChristophe Avonture
 

Similar to Mettez du libre dans vos projets web (20)

Symphonie pour PHP industrialisé en agilité majeure
Symphonie pour PHP industrialisé en agilité majeureSymphonie pour PHP industrialisé en agilité majeure
Symphonie pour PHP industrialisé en agilité majeure
 
Symphonie pour PHP industrialisé en agilité majeure
Symphonie pour PHP industrialisé en agilité majeureSymphonie pour PHP industrialisé en agilité majeure
Symphonie pour PHP industrialisé en agilité majeure
 
Conférence #nwx2014 - Maxime Mauchaussée - Partager du code maintenable et év...
Conférence #nwx2014 - Maxime Mauchaussée - Partager du code maintenable et év...Conférence #nwx2014 - Maxime Mauchaussée - Partager du code maintenable et év...
Conférence #nwx2014 - Maxime Mauchaussée - Partager du code maintenable et év...
 
Comment travailler avec les logiciels Open Source
Comment travailler avec les logiciels Open SourceComment travailler avec les logiciels Open Source
Comment travailler avec les logiciels Open Source
 
Paris Web 2015 - Atelier désendettement Javascript legacy
Paris Web 2015 - Atelier désendettement Javascript legacyParis Web 2015 - Atelier désendettement Javascript legacy
Paris Web 2015 - Atelier désendettement Javascript legacy
 
Php sous Windows - webcamps Paris
Php sous Windows - webcamps ParisPhp sous Windows - webcamps Paris
Php sous Windows - webcamps Paris
 
Paris Web 2015 - Atelier desendettement javascript
Paris Web 2015 - Atelier desendettement javascriptParis Web 2015 - Atelier desendettement javascript
Paris Web 2015 - Atelier desendettement javascript
 
20081023 - Paris Vi Master STL TA - Initiation Maven
20081023 - Paris Vi Master STL TA - Initiation Maven20081023 - Paris Vi Master STL TA - Initiation Maven
20081023 - Paris Vi Master STL TA - Initiation Maven
 
20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache Maven20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache Maven
 
Déploiement PHP : de l'âge de pierre à nos jours.
Déploiement PHP : de l'âge de pierre à nos jours.Déploiement PHP : de l'âge de pierre à nos jours.
Déploiement PHP : de l'âge de pierre à nos jours.
 
20131024 qualité de code et sonar - mug lyon
20131024   qualité de code et sonar - mug lyon20131024   qualité de code et sonar - mug lyon
20131024 qualité de code et sonar - mug lyon
 
Devoxx 2017 : toutes les actualités technologiques à surveiller !
Devoxx 2017 : toutes les actualités technologiques à surveiller !Devoxx 2017 : toutes les actualités technologiques à surveiller !
Devoxx 2017 : toutes les actualités technologiques à surveiller !
 
BBL - TDD pour les DevOps - Puppet
BBL - TDD pour les DevOps - PuppetBBL - TDD pour les DevOps - Puppet
BBL - TDD pour les DevOps - Puppet
 
Mon environnement de travail a-t-il encore un avenir ?
Mon environnement de travail a-t-il encore un avenir ?Mon environnement de travail a-t-il encore un avenir ?
Mon environnement de travail a-t-il encore un avenir ?
 
AlterWay SolutionsLinux Outils Industrialisation PHP
AlterWay SolutionsLinux Outils Industrialisation PHPAlterWay SolutionsLinux Outils Industrialisation PHP
AlterWay SolutionsLinux Outils Industrialisation PHP
 
Logiciels libres et cabinet d'avocat
Logiciels libres et cabinet d'avocatLogiciels libres et cabinet d'avocat
Logiciels libres et cabinet d'avocat
 
Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !
 
20100221 my phingtool - blog
20100221   my phingtool - blog20100221   my phingtool - blog
20100221 my phingtool - blog
 
Accroître la sécurité de son site internet et de Joomla! plus spécifiquement
Accroître la sécurité de son site internet et de Joomla! plus spécifiquementAccroître la sécurité de son site internet et de Joomla! plus spécifiquement
Accroître la sécurité de son site internet et de Joomla! plus spécifiquement
 
Xhprof
XhprofXhprof
Xhprof
 

Mettez du libre dans vos projets web

  • 1. Mettez du libre dans vos projets Pierre Rudloff
  • 2. C’est quoi un logiciel libre ? 4 libertés fondamentales : — utiliser le logiciel — étudier son fonctionnement et de l’adapter à ses besoins — le redistribuer — l’améliorer et redistribuer ces améliorations
  • 3. Le libre dans l’éco-système web Serveurs : Apache, Nginx, PHP Navigateurs : Firefox, WebKit, Chromium Bibliothèques : jQuery, Bootstrap, Symfony CMS : WordPress, SPIP, Drupal
  • 4. Pourquoi utiliser du libre ? Ne pas réinventer la roue Utiliser du code audité S’inscrire dans un écosystème Abolir le capitalisme (ou pas)
  • 5. Pourquoi contribuer ? Aider les autres Montrer ce que vous savez faire Avoir des retours sur votre code Profiter des améliorations des autres
  • 7. Utiliser un gestionnaire de paquets Selon le langage : — Composer — Bower — NPM — CPAN — Maven — Etc. Les + : — Mise à jour simplifiée — Suivi des dépendances — Gestion des conflits — N’encombre pas votre dépôt
  • 8. Lire la licence Gratuit != libre Attribuez correctement ! Attention à la viralité Cas particulier de l’AGPL
  • 10. Avant de signaler le bug Vérifiez que le bug n’a pas déjà été signalé ! Lisez les bug writing guidelines ! Apprenez l’anglais
  • 11. Écrire un bon rapport de bug Ça ne fonctionne pas quand j’ajoute un calendrier.
  • 12. Être précis Quand j’essaie d’ajouter le calendrier à l’URL http://example. org/cal.ics, j’obtiens l’erreur suivante : “Unknown field X-GOOGLE-HANGOUT”
  • 13. Indiquer la version et la plate- forme J’utilise la version 0.2.1 de votre bibliothèque avec PHP 5.3. Quand j’essaie d’ajouter le calendrier à l’URL http://example. org/cal.ics, j’obtiens l’erreur suivante : “Unknown field X-GOOGLE-HANGOUT”
  • 14. Préciser ce qui est attendu J’utilise la version 0.2.1 de votre bibliothèque avec PHP 5.3. Quand j’essaie d’ajouter le calendrier à l’URL http://example. org/cal.ics, j’obtiens l’erreur suivante : “Unknown field X-GOOGLE-HANGOUT” Je pense que les champs inconnus devraient juste être ignorés.
  • 15. Montrez votre code ! J’utilise la version 0.2.1 de votre bibliothèque avec PHP 5.3. Quand j’essaie d’ajouter le calendrier à l’URL http://example. org/cal.ics, j’obtiens l’erreur suivante : “Unknown field X-GOOGLE-HANGOUT” Je pense que les champs inconnus devraient juste être ignorés. Voici mon code : […]
  • 17. Bien écrire votre patch En parler avant Utiliser la dernière version Lire les guidelines Respecter les conventions de code
  • 18. Patch ou pull request ? diff -U old/ new/ Si le projet n’est pas sur GitHub/GitLab/etc. lnterface web Permet de fusionner plusieurs commits
  • 20. Bien écrire votre plugin Vérifiez qu’il n’existe pas déjà Définissez clairement ses fonctionnalités Choisissez une licence (http://choosealicense.com/) Utilisez le semantic versioning (http://semver.org/) Documentez-le (code + installation) !
  • 22. Faire un fork Les - : — Difficile de garder la compatibilité — Du boulot d’intégrer les patchs de sécurité — Nécessite de le maintenir sur le long terme Les + : — Plus de liberté — Pas besoin de discuter
  • 23. Bien communiquer sur votre fork Changez le nom (et le logo) Indiquez que c’est un fork Décrivez les raisons du fork et ce qui change
  • 24. Prévoir la contribution dans votre workflow
  • 25. Utiliser du libre prend du temps Il faut le prévoir dans le budget. Laisser du temps à vos développeur.euse.s pour contribuer à des projets libres ? Financer les projets que vous utilisez souvent ?
  • 27. Faciliter la réutilisation Publiez le code sur GitHub ou GitLab Découpez votre projet en modules Facilitez l’installation
  • 28. Faciliter la contribution Écrivez de la documentation et des guidelines Utilisez des standards reconnus (PSR, JSHint, etc.) Ne mordez pas ! Soyez inclusif.ve.s !
  • 29. Bibliographie — Produire du logiciel libre, Karl Fogel — Option libre, Benjamin Jean — Libres conseils — Utopie du logiciel libre, Sébastien Broca