{"id":235,"date":"2020-06-29T16:58:12","date_gmt":"2020-06-29T14:58:12","guid":{"rendered":"https:\/\/news.julien-anne.fr\/?p=235"},"modified":"2025-01-11T13:08:53","modified_gmt":"2025-01-11T12:08:53","slug":"se-lancer-dans-la-contribution-de-logiciels-libres","status":"publish","type":"post","link":"https:\/\/news.julien-anne.fr\/se-lancer-dans-la-contribution-de-logiciels-libres\/","title":{"rendered":"Se lancer dans la contribution de logiciels libres"},"content":{"rendered":"\n
Dans cet article je vais partager avec vous l’histoire de ma premi\u00e8re contribution pour un logiciel libre.<\/p>\n\n\n\n
J’utilise au quotidien des outils et logiciels libres comme Ubuntu, debian pour les syst\u00e8mes d’exploitation, Python (Django), Ruby (Ruby On Rails), PHP (WordPress) pour les langages de programmation \/ frameworks \/ Content Management System, MariaDB, PostgreSql, Mysql, Sqlite pour les bases de donn\u00e9es, Apache2, Nginx pour les serveurs web et Vim, GtimeLog, Gitlab, Framagenda (NextCloud), Tmux, Firefox, Brave, Zsh (Oh My Zsh), KeepassXC, Andro\u00efd, Mattermost, Jitsi pour les outils divers et vari\u00e9s… Et celui dont je vais vous parler aujourd’hui Kanboard pour la gestion de projets de d\u00e9veloppement logiciel<\/a>.<\/p>\n\n\n\n Pour redonner \u00e0 la communaut\u00e9 libre un peu de ce qu’elle m’apporte quotidiennement je r\u00e9alise ce blog avec des articles afin de promouvoir les logiciels libres notamment dans leur utilisation et leur compl\u00e9mentarit\u00e9 afin de r\u00e9aliser des projets de d\u00e9veloppements logiciels comme par exemple en python<\/a>, j’essaie alors de vulgariser l’acc\u00e8s \u00e0 ces technologies qui demandent bien souvent de comprendre un peu plus en profondeur les concepts qu’il y a derri\u00e8re plut\u00f4t que de faire du \u00ab\u00a0clickodrome\u00a0\u00bb sur un logiciel propri\u00e9taire.<\/p>\n\n\n\n Je donne aussi quelques conf\u00e9rences<\/a> sur des retours d’exp\u00e9riences d’utilisation de logiciels libres et de m\u00e9thodologies orient\u00e9es vers le d\u00e9veloppement \u00ab\u00a0craft\u00a0\u00bb et comment ils peuvent se pratiquer au quotidien.<\/p>\n\n\n\n Malgr\u00e9 cette contribution d\u00e9j\u00e0 int\u00e9ressante, cela ne me satisfaisait pas compl\u00e9tement, je me suis donc dit qu’il serait int\u00e9ressant d’utiliser mes capacit\u00e9s de technicien pour les mettre \u00e0 profit d’un logiciel libre et j’ai choisi Kanboard.<\/p>\n\n\n\n Lorsque l’on se lance dans la contribution de logiciels libres, il y a tout un monde \u00e0 d\u00e9couvrir, avec ses r\u00e8gles, ses concepts et son \u00e9cosyst\u00e8me. Il est donc plus ais\u00e9 de commencer avec des \u00e9l\u00e9ments connus, et non avec que des inconnus, comme en d\u00e9veloppement logiciel on va \u00e9viter de faire un projet avec que des \u00e9l\u00e9ments non maitris\u00e9s il faut placer un curseur entre innovation et s\u00e9r\u00e9nit\u00e9.<\/p>\n\n\n\n L’avantage sur le projet Kanboard est que je l’utilise depuis 3 ans tous les jours pour des besoins professionnels et personnels. Je l’ai d\u00e9j\u00e0 install\u00e9 (en tant qu’administrateur et non d\u00e9veloppeur du logiciel) plusieurs fois, je l’ai utilis\u00e9 dans de nombreux cas diff\u00e9rents, je connais donc bien le fonctionnel ainsi que les limites du produit. De plus, je savais que la personne en charge du projet \u00e9tait quelqu’un de disponible, que le projet \u00e9tait vivant (une nouvelle version du produit sort tr\u00e8s r\u00e9guli\u00e8rement) et enfin que si n\u00e9cessaire il \u00e9tait possible d’\u00e9changer en fran\u00e7ais m\u00eame si dans les faits nous n’avons \u00e9chang\u00e9 que en anglais. Dernier \u00e9l\u00e9ment qui m’a fait choisir ce projet, il est en PHP, technologie que je ne ma\u00eetrise pas \u00e0 100% mais que j’ai largement pratiqu\u00e9 dans une vie ant\u00e9rieure et m\u00eame plus r\u00e9cemment.<\/p>\n\n\n\n Passons sur le fond de cette premi\u00e8re contribution qui comme je vous le conseille se doit d’\u00eatre humble envers le logiciel choisi. Comme tout processus commencer petit permet d’avancer l\u00e0 o\u00f9 commencer trop gros peut \u00eatre d\u00e9courageant. Appliquant ce conseil, je me suis dis que j’allais commencer par suivre la documentation des contributeurs (avant de chercher une fonctionnalit\u00e9 \u00e0 r\u00e9aliser il faut mettre en place un environnement de d\u00e9veloppement et de tests), le projet tournait d’apr\u00e8s la documentation via Vagrant<\/a> et son Vagrantfile<\/a>. Et \u00e0 ma grande surprise (en fait non) la documentation n’\u00e9tait pas \u00e0 jour sur cette partie qui concerne assez peu de personnes (seulement les nouveaux contributeurs du projets). J’ai donc d\u00fb dans un premier temps r\u00e9ussir \u00e0 d\u00e9marrer le projet en local avec les \u00e9l\u00e9ments de la documentation qui n’\u00e9tait plus \u00e0 jour (cela s’apparente ici un peu \u00e0 d\u00e9boguer, se renseigner et remplacer les \u00e9l\u00e9ments bloquants) en modifiant le Vagrantfile. Une fois le projet lanc\u00e9 en local sur mon ordinateur j’ai pu lancer les tests automatiques afin de v\u00e9rifier que rien ne manquait, ce f\u00fbt le cas, j’en ai profit\u00e9 pour faire un peu de m\u00e9nage sur ce Vagrantfile notamment dans la partie script. Voici donc ma premi\u00e8re contribution libre faisant intervenir mes comp\u00e9tences de technicien afin de mettre \u00e0 jour l’outil de d\u00e9marrage du projet pour les contributeurs. <\/p>\n\n\n\n Cette notion est particuli\u00e8rement importante pour un logiciel libre car c’est l’\u00e9quivalent d’un installeur de logiciel pour un utilisateur non technicien, s’il faut savoir compiler le noyau linux pour installer un logiciel, il y a de fortes chances que les utilisateurs non techniciens passent leur chemin pour la plus part. Ici c’est un peu pareil si pour un projet libre les outils et la documentation pour le d\u00e9marrer en local ne sont pas clairs et efficaces (\u00ab\u00a0automatis\u00e9s\u00a0\u00bb) il se peut que certains contributeurs passent leur chemin.<\/p>\n\n\n\n Une fois la modification r\u00e9alis\u00e9e, je l’ai propos\u00e9 suivant le processus d\u00e9fini par l’auteur du projet (en le suivant au maximum avec beaucoup d’humilit\u00e9 encore une fois, on collabore on se s’impose pas) une journ\u00e9e plus tard mon code \u00e9tait merg\u00e9<\/a> dans la branche master du projet Kanboard<\/a>. SUPER ! <\/p>\n\n\n\n Oui mais maintenant la documentation n’\u00e9tait plus du tout coh\u00e9rente avec le Vagrantfile modifi\u00e9 m\u00eame si celui-ci fonctionn\u00e9 alors qu’avant la contribution il \u00e9tait cass\u00e9, j’ai donc de suite encha\u00een\u00e9 avec une seconde contribution<\/a> pour mettre \u00e0 jour le d\u00e9p\u00f4t d\u00e9di\u00e9 de la documentation afin de rendre la documentation repr\u00e9sentative de la r\u00e9alit\u00e9 du logiciel. Et voil\u00e0 en moins de 3 jours 2 contributions libres r\u00e9alis\u00e9es et merg\u00e9es dans les projets.<\/p>\n\n\n\n Cette contribution f\u00fbt salvatrice pour moi elle m’a permis de d\u00e9mystifier un univers parfois fantasm\u00e9 que peut \u00eatre le logiciel libre. De plus, avec ces 2 contributions rapides et efficaces (utiles aux nouveaux contributeurs le cas \u00e9ch\u00e9ant) le sentiment de retour \u00e0 la communaut\u00e9 est tr\u00e8s agr\u00e9able et donne envie de continuer, ce qui se profil bien car m\u00eame pour une modification mineure d’un article sur Ubuntu (par exemple sur la partie tmux \u00e0 travers ssh<\/a>), il est devenu automatique pour moi de participer sans crainte que cela ne soit trop difficile ou long. D’autres contributions sur des logiciels libres viendront s\u00fbrement dans les prochains mois et je ne manquerai pas de vous les faire partager afin de vous distiller au passage quelques conseils suite \u00e0 ces exp\u00e9riences enrichissantes.<\/p>\n\n\n\n Image par Shri ram<\/a> de Pixabay<\/a><\/p><\/blockquote>\n\n\n\n <\/p>\n","protected":false},"excerpt":{"rendered":" Dans cet article je vais partager avec vous l’histoire de ma premi\u00e8re contribution pour un logiciel libre. Contexte J’utilise au quotidien des outils et logiciels libres comme Ubuntu, debian pour les syst\u00e8mes d’exploitation, Python (Django), Ruby (Ruby On Rails), PHP (WordPress) pour les langages de programmation \/ frameworks \/ Content Management System, MariaDB, PostgreSql, Mysql, […]<\/p>\n","protected":false},"author":1,"featured_media":245,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"spay_email":"","footnotes":""},"categories":[3],"tags":[],"class_list":["post-235","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-logiciel-libre"],"jetpack_featured_media_url":"https:\/\/news.julien-anne.fr\/wp-content\/uploads\/2020\/06\/climbing-2264698_1920-retouche1280x465.jpg","_links":{"self":[{"href":"https:\/\/news.julien-anne.fr\/wp-json\/wp\/v2\/posts\/235","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/news.julien-anne.fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/news.julien-anne.fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/news.julien-anne.fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/news.julien-anne.fr\/wp-json\/wp\/v2\/comments?post=235"}],"version-history":[{"count":12,"href":"https:\/\/news.julien-anne.fr\/wp-json\/wp\/v2\/posts\/235\/revisions"}],"predecessor-version":[{"id":293,"href":"https:\/\/news.julien-anne.fr\/wp-json\/wp\/v2\/posts\/235\/revisions\/293"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/news.julien-anne.fr\/wp-json\/wp\/v2\/media\/245"}],"wp:attachment":[{"href":"https:\/\/news.julien-anne.fr\/wp-json\/wp\/v2\/media?parent=235"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/news.julien-anne.fr\/wp-json\/wp\/v2\/categories?post=235"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/news.julien-anne.fr\/wp-json\/wp\/v2\/tags?post=235"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}Bien mais pas suffisant<\/h2>\n\n\n\n
Les raisons de ce choix<\/h2>\n\n\n\n
L’objet de cette premi\u00e8re contribution<\/h2>\n\n\n\n
Et apr\u00e8s ?<\/h2>\n\n\n\n
Conclusion<\/h2>\n\n\n\n