Apporter sa contribution aux projets open source semble être une épreuve insurmontable. Eh bien, détrompez-vous ! Ca n’a jamais été aussi facile d’aider la communauté à produire des logiciels open source.
Pourquoi contribuer aux projets autres ?
C’est une excellente question ! La réponse va vous étonner 😉
Qu’êtes-vous en train de faire ce soir ? Regarder un film, défiler le fil twitter, lire cet article ? Pourquoi vous ne contribuez pas ?!
On a tous nos propres raisons de ne pas sortir l’ordinateur le midi ou le soir : pas le temps, autre chose à faire…
On manque de temps !!!
C’est pour ça que la communauté est puissante !! Quand vous souhaitez faire autre chose, la communauté est toujorus présente quelque part dans le monde pour contribuer sur les projets.
Et puis, si vous deviez écrire tous ces programmes, vous n’auriez jamais terminé à temps, ni même avec la qualité de développement des autres développeurs.
Tout seul, on va plus vite. Ensemble, on va plus loin.
Pour la « communauté », c’est ma réponse à la question.
C’est difficile de contribuer aux projets des autres
Qui a dit ça ?!
Film « Full Metal Jacket », 1987
Si vous démarrez, n’essayez pas d’améliorer les outils connus du marché : python, pipenv, kubernetes, ansible, …
Ces projets sont « overkill » pour une première contribution, vous ne savez même pas par où commencer.
Préférez des petits projets qui sont abordables, voire même créés par des personnes près de chez vous.
Une petite contribution n’est jamais si petite qu’elle prétent l’être. Contribuer, c’est aider l’autre. Comme on a tous besoin d’aide, donner de son temps pour améliorer le code/repo d’un projet open source est une aubaine pour l’auteur de ce repo.
Les contributions à la portée de tous
Prenez un projet à votre portée. Pour l’exemple, je choisis un projet qui a vu le jour il y a quelques semaines claranet/ansible-gendoc. Le projet me semble intéressant, utile, et productif pour des équipes projets qui aiment la documentation de qualité.
Démarrage : J’ai pris 10 minutes de mon temps pour tester le projet.
Résultat : impossible de faire fonctionner l’utilitaire…
Les raisons :
- Erreur de typographie dans la documentation générale
- Cette erreur est facile à trouver, j’ai juste eu à suivre la documentation à la lettre.
- Problème de dépendence dans l’installation de l’utilitaire
- Il manque un module python, clairement affiché au moment de l’exécution, jsute en suivant la doc
On voit qu’en poins de 10 minutes, j’ai trouvé 2 erreurs que les développeurs ont « zappé » lors de sa publication. Comme j’ai pris le temps de tester leur outil, j’ai également pris le temps de créer des bugs (appelés « issue » sur Github) et des demandes de modifications (appelées « Pull request ») sur le repository :
- Pull request sur la typographie : https://github.com/claranet/ansible-gendoc/pull/16
- Issue sur le module manquant : https://github.com/claranet/ansible-gendoc/issues/15
Sans trop d’effort, j’ai aidé ce projet à améliorer leur documentation et à mettre le doigt sur un problème de dépendance. Rien d’extraodinaire en soi. Mais sans cette prise de recul, le projet n’est pas fonctionnel en l’état. Et rien de plus démotivant qu’un code qui ne compile pas ou ne se lance pas.
Et hop !! Une petite victoire ! Facile non ?!
Les contributions plus ambitieuses
Si les petites contributions sont déjà largement à votre portée, passez un cran au-dessus avec des projets plus complexes en vous impliquant davantage dans le projet.
L’implication vient naturellement dès que vous vous embarquez sur des projets de plus grande envergure : trafic plus important, exigence élevée, niveau de code exigent, procesus de validation plus long, application plus complexe à prendre en main, etc…
Pour trouver de tels projet, inspirez-vous de votre quotidien : au travail ou chez vous.
Personnellement, je me suis plongé dedans quand j’ai voulu automatiser le pilotage de ma chaudière. J’ai cherché un moyen de le faire, j’ai trouvé un projet intéressant, prommetteur et fonctionnel : https://github.com/ekeih/libtado.
En creusant, j’ai remarqué qu’il manquait quelques fonctionnalités qui m’intéressaient. C’est à partir de ce moment que l’implication est venue. Le projet m’a permis de découvrir des technos et des pratiques différentes de mon métier.
J’ai continué de contribuer à ce projet, jusqu’au jour où le propriétaire m’a proposé de prendre le relai en tant que Lead sur le projet.
Et me voici Maintainer du projet libtado :
- Github : https://github.com/germainlefebvre4/libtado
- ReadTheDocs : https://libtado.readthedocs.io
De contrinutions en contributions, j’ai pu améliorer le projet et lui donner une autre dimension dans la jungle des projets open source.
Statistiques de téléchargements du projet sur PyPi
Statistiques des visites du projet sur ReadTheDocs
Conclusion
Contribuer aux projets open source n’est pas si compliqué que ça en a l’air. Il faut chercher un peu, mais on trouve forécement son cheval de bataille. Reste à choisir si vous souhaiter contribuer ponctuellement ou pérennement aux projets. La vie de la communauté open source est chouette, on fait de belles rencontres et on aide les autres, quoi de mieux ?
Pour aller plus loin
Tous les ans à lieu le Hacktoberfest sur tout le mois d’octobre. L’inscription est gratuite et les contributions sont maintenant valables sur GIthub et Gitlab, Cloud ou on-premise. Les types de contributions sont également plus ouvertes avec la msie en avant du low-code et no-code.
Je vous laisse découvrir la session de cette année 2022 : https://hacktoberfest.com
Les inscriptions ouvrent à partir du 26 Septembre.