Article écrit par Eddie Barraco
J’aimerais vraiment être mainteneur·euse sur un grand projet open-source ! Pouvoir offrir en retour de tous ces outils que j’utilise au quotidien. Mais je ne sais pas par où commencer ! Tous les projets semblent déjà bien établis, et je ne parviens pas à faire connaître mon super projet [insérer ici le nom de votre super projet] que j’ai développé. Comment dois-je m’y prendre ?
C’est sans doute un discours que j’ai pu avoir avec moi-même quelques années en arrière. Je réalise aujourd’hui à quel point mes attentes étaient en inadéquation avec l’organisation réelle d’une communauté open-source et libre.
J’apporte une précision : Je vais simplifier ici et parler de projets « open-source ». Aujourd’hui ce terme ne signifie plus grand-chose si ce n’est que le code est « ouvert ». Je vais contraindre ce terme aux projets dont le code est maintenu par une communauté de bénévoles et qu’il est sous une licence libre (GPL ou même MIT par exemple).
Les exemples et les indications que je vais apporter ne s’appliquent pas de la même manière si c’est une entreprise derrière le projet où si la ou les licences sont plus contraignantes.
Un logiciel open-source n’appartient qu’à vous. Vous avez le droit de le modifier, de rajouter des fonctionnalités ou de corriger les bugs que vous subissez.
Ce type de logiciel n’a qu’un seul objectif : vous être utile. Il ne sert aucun autre intérêt, et c’est bien là sa plus grande force !
Le revers de la médaille, c’est que si vous rencontrez un souci, la seule personne que ça intéresse vraiment, c’est aussi vous !
Le monde de l’open-source est un immense bazar où chacun sert principalement ses propres intérêts. L’entraide est bien entendu de mise ! Mais dans un monde où le temps nous échappe, on ne peut satisfaire tout le monde. Mon premier conseil est donc d’arriver à vous satisfaire vous-même dans un premier temps. Appropriez-vous vos outils.
Si comme moi vous rencontrez les fameux bug que y’a que moi qui les ai, deux choix s’offrent à vous : soit vous ouvrez un ticket le plus détaillé du monde et vous prenez votre mal en patience ; soit vous tentez de le résoudre.
En cas de résignation et de ticket, ne vous attendez pas à voir apparaître un correctif, ou même juste une réponse. Rappelez-vous que les mainteneur·euses du projet n’ont aucune obligation de vous venir en aide ! Elles et ils ont aussi une vie, en tout cas on le leur souhaite !
Relevez vos manches et tentez de réparer le bug que vous rencontrez. Vous êtes la personne qui a le plus de chance de le faire, car vous êtes aussi celle qui a le plus d’intérêt à ce que cela arrive.
Quelques précisions à propos des tickets : Ils sont parfois utiles pour planifier des fonctionnalités. La plupart du temps c’est avant tout un outil d’échange offert à la communauté. À moins que votre bug ne touche une large part des utilisateur·ices, ouvrir un ticket a très peu de chance de donner suite à un correctif de la part de quelqu’un d’autre que vous. Et c’est encore pire si vous demandez une nouvelle fonctionnalité !
Globalement si vous voulez vraiment atteindre les développeur·euses d’un projet, c’est par la section patch ou merge requests que c’est encore le plus efficace.
Donc l’approche que je vous conseille :
Tentez de résoudre votre problème ou d’implémenter votre fonctionnalité. Si vous y parvenez, tant mieux ! Vous aurez réglé votre souci ou aurez enfin la petite feature dont seul vous pourrez jouir. Proposez ensuite votre patch à la communauté ! Envoyez votre plus beau commit avec tous les détails de votre besoin ou du bug rencontré et montrez comment vous proposer de le résoudre.
Un patch bien formulé, qui donne tout le contexte, et qui propose une solution a bien plus de chance de mener à une réponse favorable. Dans le cas où votre proposition n’est pas jugée la bonne, les contributeur·ices peuvent aussi vous accompagner vers une nouvelle proposition, parfaire votre travail, ou répondre à votre besoin différemment. C’est comme ça que le travail collaboratif opère réellement. Ici personne n’est client ou vendeur.
Dans le cas où vous ne parvenez pas à résoudre le souci ou à implémenter votre fonctionnalité, vous aurez une vision beaucoup plus éclairée pour ouvrir un ticket. Vous pourrez préciser ce que vous avez tenté. Indiquer l’endroit où le souci semble se situer. Ce genre de ticket ne laisse pas indifférent et vous aurez davantage de conseils pour parvenir à vos fins.
Si vous souhaitez apporter votre pierre à l’open-source, alors vous devez entrer dans cet état d’esprit. Réglez les problèmes que vous rencontrez. Faites-le pour vous, mais aussi pour ceux qui passeront derrière vous. Faites-le parce que d’autres ont réglé d’autres soucis avant vous, et que c’est toujours ces soucis de moins que vous aurez à régler. Faites-le pour apprendre de nouveaux langages et paradigmes. Faites-le parce que personne d’autres ne va le faire.
L’open-source c’est dans votre intérêt, soyez généreux·se par égoïsme.
Lorsque vous aurez apporté plusieurs fois votre contribution à un projet. Que grâce à votre bonne connaissance du code, vous aurez aiguillé des novices dans les tickets. Lorsque les mainteneur·euses auront moins le temps de faire vivre ce projet. Vous recevrez peut-être un message privé pour vous demander si vous souhaitez obtenir les droits d’accès et ainsi épauler encore plus activement la communauté.
J’ai parlé ici de comment s’insérer dans un projet existant parce que c’est pour moi le seul cas qui compte vraiment. Je pense qu’on ne choisit pas de faire un logiciel open-source « qui trouve son public ». Ça arrive, voilà tout.
Codez les logiciels qui vous sont utiles et rendez-les accessibles aux autres. S’il s’avère que c’est effectivement utile à d’autres, alors une communauté se formera.
Si vous recevez un patch, collaborez avec l’auteur·ice. Laissez la communauté échanger dans les tickets et incitez-les à contribuer, à se salir les mains. Si vous êtes un jour dépassé·e et que vous souhaitez vous aussi avoir une vie, proposez à un·e contributeur·ice de devenir co-mainteneur·euse.
— Merci c’est trop cool, j’utilise [insérer ici le nom de votre super projet] depuis des mois et c’est trop bien. T’es vraiment quelqu’un de trop généreux ! — Ah ? Moi tout ce que je voulais c’était d’avoir un truc qui marche. Tant mieux si ça sert aussi à d’autres 🙂