Comprendre l'open source : faire sa contribution
Tags: opensource, community, learning
Published: 2024-04-14 13:39:19

Dans l'article précédent nous avons parlé de la généralité, de l'historique et de l'importance de l'open. Si vous n'avez pas encore consulté cet article cliquez [ici](https://dev.to/patricekalwira/comprendre-lopen-source-historique-et-importance-3ce9). 
Dans cet article nous allons parlé de la contribution dans l'open source. Que ce soit une contribution technique ou non technique, qu'on soit développeur ou non, tout le monde y trouvera son compte.
Nous allons tout voir dans les lignes suivantes, du choix du projet à la proposition de sa contribution en passant par les types de contributions et autres.
Dans notre petit récit, nous allons plus nous appuyer sur la façon dont on peut contribuer en utilisant [Github](https://docs.github.com/) qui est beaucoup plus utilisé dans les projets collaboratifs. Aujourd'hui c'est quasi impossible de se passer de Github si on est développeur.
L'idée derrière l'open source est de vous amusez en travaillant!

#### 1. Types de Contributions

Les contributions à un projet open source peuvent prendre de nombreuses formes. Voici quelques-unes des principales :

- **Code Source** : Contribuer du code est l'une des formes les plus courantes de participation à un projet open source mais encore faut-il savoir programmer. Cela peut inclure l'ajout de nouvelles fonctionnalités, la résolution de bogues, l'optimisation des performances, etc.
  
- **Documentation** : La documentation claire et concise est essentielle pour aider les utilisateurs et les autres contributeurs à comprendre le fonctionnement d'un projet. Vous pouvez contribuer en rédigeant de nouvelles sections de documentation, en corrigeant les erreurs ou en améliorant la structure existante.

- **Tests** : Après la modification du code, on aura besoin de faire des tests pour avoir la garantie du bon fonctionnement du logiciel. Pour le faire on a pas besoin seulement des développeurs mais de tout le monde qui peut savoir utiliser le logiciel. Les tests sont cruciaux pour garantir la qualité et la stabilité d'un projet open source. Vous pouvez contribuer en écrivant de nouveaux tests, en améliorant les tests existants ou en corrigeant les tests cassés ou encore en suggérant un ou plusieurs tests.

- **Conception et UX** : Si vous avez des compétences en design et en expérience utilisateur (UX), vous pouvez contribuer en proposant de nouveaux designs, en améliorant l'interface utilisateur ou en résolvant des problèmes d'accessibilité.

- **Traduction** : Contribuer à la traduction d'un projet open source permet d'élargir sa portée et d'aider les utilisateurs qui ne parlent pas la langue utilisée par le logiciel à en bénéficier. Vous pouvez traduire la documentation, l'interface utilisateur ou les messages d'erreur dans différentes langues.

#### 2. Choix d'un projet

Lorsque vous choisissez un projet open source auquel contribuer, voici quelques facteurs à prendre en compte :

- **Intérêt personnel** : Choisissez un projet qui vous passionne et qui correspond à vos centres d'intérêt. Vous serez plus motivé à contribuer si vous êtes enthousiaste à propos du projet. Vous pouvez choisir une tâche plus simple pour vous ou une plus complexe pour votre challenge.

- **Taille de la communauté** : Recherchez des projets avec une communauté active et accueillante. Une grande communauté offre plus d'opportunités de collaboration et de soutien. Il y a des projets qui ont de grandes communautés comme par exemple Linux, Wikipédia, ... Ne vous sentez pas intimidés par la grandeur du projet, il y a des tâches plus simples non résolues qui n'attendent que vous peut-être.

- **Fréquence des contributions** : Vérifiez la fréquence des contributions au projet pour vous assurer qu'il est toujours actif et en développement. Parce qu'on peut parfois sur un projet où il n'y a pas des contributions récentes et qui peuvent avoir des technologies déjà obsolètes. C'est qui constitue un véritable casse-tête.

#### 3. Configuration de l'environnement de développement

Avant de commencer à contribuer à un projet open source, vous devez configurer votre environnement de développement. Cela peut inclure :

- **Installation des Outils** : Installez les outils de développement nécessaires, tels que l'éditeur de code, le gestionnaire de version (comme Git) et les dépendances du projet.

- **Clonage du Répertoire** : Clonez le répertoire du projet depuis le dépôt Git afin de pouvoir travailler localement sur votre machine.

- **Configuration des Paramètres** : Configurez les paramètres du projet selon les instructions fournies dans la documentation, comme les clés d'API ou les variables d'environnement.

Il est vrai que ces explications sont beaucoup oriéntées développeurs mais pour les contributions non techniques il y a aussi une préparation nécessaire selon son type de contribution.

#### 4. Trouver des tâches à accomplir

Les projets open source sont subdivisés en tâches, ce qui facilite la maintenance et l'évolution du logiciel. Pour trouver des tâches à accomplir dans un projet open source, vous pouvez explorer différentes ressources :

- **Tableaux de Bord des Problèmes** : Consultez les tableaux de bord des problèmes (issues) sur la plateforme de gestion des problèmes (comme GitHub) pour trouver des problèmes ouverts qui nécessitent une résolution.

- **Forums de Discussion** : Pour de grands projets il y a souvent des groupes de discussion pour l'échange d'idées concernant les tâches. Rejoignez les forums de discussion ou les listes de diffusion du projet pour suivre les discussions et les demandes d'aide de la communauté.

- **Étiquettes "Bonne Première Contribution"** : Cherchez les étiquettes "bonne première contribution" ou "easy fix" qui sont souvent utilisées pour marquer les problèmes simples et accessibles aux nouveaux contributeurs. Cela permet aux débutants de travailler sur une tâche moins complexe ; ce qui donnera confiance pour continuer de contribuer.

#### 5. Faire une contribution

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wrj6g4nlp1bprm4rpc5n.jpg)

Après avoir bien ciblé sa tâche, il faudra passer à l'étape suivante qui consiste à faire sa contribution. Lorsque vous êtes prêt à faire une contribution, suivez ces étapes :

- **Cloner le projet** : Cette étape  consiste à copier le projet localement sur son ordinateur pour qu'on soit en mesure de faire des modifications sans abimer le code source du projet. Ainsi, toutes les modifications faites n'impacteront pas encore le projet mais fonctionneront seulement en local (suu son ordinateur).

- **Modifier le code** : Faites les modifications nécessaires localeent en suivant les instructions fournies dans la tâche que vous avez choisie.

- **Tester les modifications** : Testez vos modifications toujours localement pour vous assurer qu'elles fonctionnent correctement et qu'elles ne cassent pas d'autres fonctionnalités. Parce que ça ne servirait à rien de résoudre un problème en créant beaucoup d'autres.

- **Créer une demande d'extraction (Pull Request)** : Une fois que vous êtes satisfait de vos modifications, créez une demande d'extraction pour soumettre vos changements au projet.

#### 6. Collaboration et communication

La collaboration et la communication sont essentielles pour travailler avec succès sur un projet et surtout sur un projet open source car c'est plus décentralisé :

- **Poser des questions** : N'hésitez pas à poser des questions si vous rencontrez des difficultés ou si vous avez besoin d'aide pour comprendre une partie du code. Soyez courtois, précis et concis et surtout posez une question quand vous jugez que c'est nécessaire (après avoir fait des recherches sans qu'on ne trouve de réponse).

- **Fournir des commentaires** : Si vous passez en revue les contributions des autres, assurez-vous de fournir des commentaires constructifs et utiles pour aider les autres contributeurs à améliorer leur travail.

- **Participer aux discussions** : Participez aux discussions sur les forums de discussion ou les canaux de communication du projet pour partager des idées, discuter des problèmes et contribuer à la prise de décision. 
La communication reviendra toujours tout au long du processus de contribution.

#### 7. Étiquette et Bonnes Pratiques

Lors de la contribution à un projet open source, il est important de suivre les directives de contribution et de respecter l'étiquette du projet :

- **Lire les directives de contribution** : Avant de commencer à contribuer, assurez-vous de lire les directives de contribution du projet pour comprendre les attentes et les normes de la communauté.

- **Utiliser les conventions de codage** : Respectez les conventions de codage et de style du projet pour maintenir la cohérence et la lisibilité du code. Il y a des projets où on ne spécifie pas les conventions de codage mais en lisant le code des autres vous pouvez vite avoir une idée de la façon de coder sur le projet.

- **Identifier les problèmes existants** : Avant de soumettre une nouvelle demande d'extraction, vérifiez qu'il n'existe pas déjà de problèmes ou de demandes similaires ouverts dans le projet. Il ne sert à rien de résoudre un problème déjà résolu. D'où quand vous commencez à travailler sur un projet, notifiez que vous travaillez sur la tâche choisie pour que les autres se concentrent sur d'autres tâches 

#### 8. Gérer les retours et les contributions

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/j44m8199lqxs1htu8qin.jpeg)
Une fois que vous avez soumis votre contribution, vous pouvez recevoir des retours et des contributions de la part d'autres membres de la communauté :

- **Répondre aux commentaires** : Soyez prêt à répondre aux commentaires et aux suggestions des autres membres de la communauté et à apporter des modifications à votre contribution en conséquence.

- **Réviser les contributions** : Si vous passez en revue les contributions des autres, assurez-vous de les examiner attentivement et de fournir des commentaires constructifs pour aider les contributeurs à améliorer leur travail.

#### 9. Avantages de la contribution

La contribution à des projets open source présente de nombreux avantages, tant sur le plan personnel que professionnel. Voici quelques uns :

- **Acquisition de nouvelles compétences** : Contribuer à des projets open source vous permet d'acquérir de nouvelles compétences techniques et professionnelles en travaillant sur des problèmes concrets parce que vous allez travailler sûrement avec les personnes avec une grande expérience.

- **Visibilité professionnelle** : Les contributions à des projets open source peuvent vous aider à établir votre réputation et à accroître votre visibilité dans la communauté, ce qui peut être bénéfique pour votre carrière. C'est très conseillé surtout pour le débutant en programmation

- **Satisfaction Personnelle** : La contribution à des projets open source peut être une expérience gratifiante sur le plan personnel, car vous contribuez à des projets qui ont un impact réel sur les utilisateurs et la communauté. Cela faira croître votre estime.

#### 10. Ressources Supplémentaires

En plus des conseils fournis dans cet article, voici quelques ressources supplémentaires pour vous aider dans votre parcours de contribution :

- **Guides de Contribution** : Consultez les guides de contribution spécifiques fournis par le projet pour obtenir des instructions détaillées sur la façon de contribuer efficacement.

- **Forums de Discussion** : Rejoignez les forums de discussion ou les canaux de communication du projet pour poser des questions, discuter des problèmes et interagir avec la communauté.

- **Événements Communautaires** : Participez à des événements communautaires tels que des hackathons, des conférences et des rencontres locales pour rencontrer d'autres contributeurs et apprendre de nouvelles compétences.

En conclusion, la contribution à des projets open source est une expérience enrichissante qui peut avoir un impact significatif sur vous et sur la communauté dans son ensemble. Que vous soyez un développeur expérimenté ou un novice, il existe des moyens pour chacun de contribuer et de faire une différence. Alors n'hésitez pas à vous lancer et à contribuer à un projet open source dès aujourd'hui !