De nos jours, la plupart des projets web intègrent des bibliothèques sous licence libre, cependant peu de professionnels y contribuent en retour. Nous allons donc voir comment contribuer à des projets libres sans forcément y passer trop de temps.
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 :
[…]
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
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 ?
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