Comment contribuer à l’open source
Comment contribuer à l’open source
Dans ce chapitre, nous vous guiderons à travers le processus de contribution aux projets open source.
Trouver des projets sur lesquels travailler
L’un des premiers défis auxquels vous pouvez être confronté lorsque vous vous lancez dans l’open source est de trouver un projet auquel contribuer. Voici quelques conseils pour vous aider à découvrir des projets qui correspondent à vos intérêts et à vos compétences :
- Parcourez GitHub et GitLab : GitHub et GitLab hébergent tous deux un grand nombre de projets open source. Vous pouvez utiliser leur fonction de recherche pour trouver des projets basés sur des mots-clés, des langages de programmation ou des sujets spécifiques.
- Suivez vos intérêts : Réfléchissez aux outils, aux cadres et aux bibliothèques que vous utilisez ou sur lesquels vous souhaitez en savoir plus. Un grand nombre de ces projets sont libres et accueillent volontiers les contributions de la communauté.
- Rejoignez les communautés open source : Il existe de nombreuses communautés, forums et plateformes de discussion en ligne consacrés au développement open source. En rejoignant ces communautés, vous pouvez entrer en contact avec d’autres développeurs, découvrir de nouveaux projets et trouver des possibilités de collaboration. Dans le serveur Discord de Python Togo par exemple, nous partageons les premiers problèmes, les projets GitHub intéressants et les problèmes ouverts dans nos dépôts.
L’accueil dans un nouveau projet
Lorsque vous souhaitez contribuer à un nouveau projet open source, il est important de vous familiariser avec les lignes directrices, les conventions et le flux de travail du projet et de prendre l’initiative de vous y intégrer.
Voici quelques conseils pour vous aider à réussir votre accueil à bord :
- Lire la documentation du projet : Lisez le fichier README, les directives de contribution et le code de conduite pour vous familiariser avec le projet. Cela vous aidera à comprendre les objectifs, les exigences et les attentes des contributeurs.
- Commencer modestement : Lorsque vous débutez dans un projet, il est conseillé de commencer par de petites tâches gérables, telles que la correction de bogues, l’ajout de tests ou la mise à jour de la documentation. Cela vous aidera à vous familiariser avec la base de code et le flux de développement sans vous laisser submerger.
- Rejoignez la communauté : De nombreux projets open source disposent de communautés en ligne, de forums ou de plateformes de discussion où les développeurs peuvent poser des questions, partager leurs connaissances et collaborer. En rejoignant ces communautés, vous pouvez entrer en contact avec d’autres contributeurs, tirer parti de leurs expériences et obtenir de l’aide pour résoudre les problèmes que vous rencontrez.
- Demandez de l’aide : Si vous avez besoin de clarifications ou si vous rencontrez un problème, n’hésitez pas à demander de l’aide. Les communautés open source sont généralement solidaires et accueillantes ; les autres contributeurs se feront un plaisir de vous aider.
- Soyez patient et persévérant : La participation à un nouveau projet peut s’avérer difficile, surtout si vous êtes novice en matière de développement de logiciels libres. Soyez patient et ne vous laissez pas décourager par les échecs ou les erreurs. Vous deviendrez plus à l’aise et plus confiant dans vos contributions avec de la persévérance et de la pratique.
Commencer à contribuer
Vous vous êtes donc engagé dans le projet. Vous pouvez maintenant vous préparer à apporter votre contribution en suivant les étapes suivantes :
- Lisez les directives de contribution : Étudiez la manière dont le projet reçoit les contributions en lisant le fichier CONTRIBUTING. Vous voulez vous assurer que vous suivez les règles de contribution du projet.
- Trouvez un bug/problème ou reporter un bug : Recherchez les problèmes étiquetés comme “good first issue” (bon premier problème) ou “beginner-friendly” (adapté aux débutants) qui correspondent à votre niveau de compétence. Vous pouvez également identifier une fonctionnalité ou une amélioration sur laquelle vous aimeriez travailler et vérifier si elle s’inscrit dans la feuille de route du projet. Il peut s’agir de mises à jour de la documentation, de corrections de bogues, de modifications du contenu, etc.
-
Demandez à ce que le problème vous soit attribué : Lorsque vous apportez votre première contribution à un projet, il est conseillé de demander aux responsables de vous attribuer le problème. Cela vous permettra de vous assurer que vous ne faites pas double travail et que votre contribution est conforme aux objectifs et aux exigences du projet. S’il n’y a pas d’instructions dans le fichier CONTRIBUTING, vous pouvez faire un commentaire dans le problème, “Can I please be assigned this issue ?” (Puis-je me voir attribuer ce problème ?) Lorsque le responsable vous aura assigné ce problème, vous remarquerez que le problème est maintenant étiqueté avec votre nom d’utilisateur.
S’il n’y a pas d’instructions dans le fichier CONTRIBUTING, vous pouvez laisser un commentaire sur le problème, “Can I please be assigned this issue ?” (Puis-je être assigné à ce problème ?) Lorsque le mainteneur vous aura assigné, vous remarquerez que votre nom d’utilisateur figure désormais dans la section “Assignees”.
Processus de contribution
Une fois le projet auquel vous souhaitez contribuer est trouvé, l’étape suivante consiste à soumettre une contribution. Voici les grandes lignes de la procédure :
- Faire une copie du dépôt (forker le dépôt) : Forker un dépôt signifie créer une copie du dépôt sous votre compte GitHub. Cela vous permet d’apporter des modifications à la base de code distante sans affecter le projet original.
-
Clonez votre fork : Faites une copie de votre dépôt forké sur votre machine locale. Exécutez la commande suivante dans votre terminal :
git clone https://github.com/VOTRE_PSEUDONYME/NOM_DU_DEPOT.gitRemplacez “VOTRE_PSEUDONYME” par votre nom d’utilisateur GitHub et “NOM_DU_DEPOT” par le nom du dépôt.
-
Créer une nouvelle branche : Avant d’apporter des modifications, créez une nouvelle branche dans votre dépôt local pour travailler sur votre contribution. Cela vous aidera à garder vos modifications séparées de la branche principale et facilitera la soumission d’une demande de tirage (pull request) plus tard.
Vous pouvez créer une nouvelle branche en utilisant la commande suivante :
git checkout -b votre-nom-de-brancheRemplacez “votre-nom-de-branche” par un nom descriptif de votre branche, tel que “fix-bug-123” ou “add-new-feature”.
- Effectuez vos modifications : Maintenant que vous disposez d’une nouvelle branche, vous pouvez apporter des modifications au codebase. Veillez à respecter les directives et conventions de codage du projet, et testez vos modifications pour vous assurer qu’elles fonctionnent comme prévu.
-
Validez vos modifications (commit) : Une fois que vous avez effectué vos modifications, mettez-les en zone de préparation et validez-les (commiter les modifications) à l’aide des commandes suivantes :
git add . git commit -m "Votre message de commit"Remplacez “Votre message de commit” par une brève description des modifications que vous avez apportées.
-
Envoyez vos modifications (push) : Envoyer vos modifications vers votre dépôt forké sur GitHub en exécutant la commande suivante :
git push -b votre-nom-de-brancheRemplacez “votre-nom-de-branche” par le nom de votre branche.
- Soumettez une demande de tirage : Une fois que vous avez poussé vos modifications, naviguez vers le dépôt du projet original sur GitHub et cliquez sur le bouton “Nouvelle demande de tirage” (New pull request). Dans la liste déroulante “rébase repository”, sélectionnez le dépôt original, et dans la liste déroulante “head repository”, sélectionnez votre dépôt forké. Choisissez votre branche dans la liste déroulante “compare”, et cliquez sur “Créer la demande de tirage” (Create pull request). Remplissez les informations requises et soumettez votre demande de tirage.
- Répondez aux commentaires : Après avoir soumis votre demande de tirage, les responsables du projet peuvent vous faire part de leurs commentaires ou demander des modifications. Veillez à répondre rapidement et à prendre en compte les préoccupations ou les suggestions qu’ils peuvent avoir.
En suivant ces étapes, vous pourrez soumettre vos contributions à des projets open source et collaborer avec d’autres développeurs pour améliorer le codebase.
Que se passe-t-il ensuite?
Une fois que votre contribution a été soumise et examinée, l’un des résultats suivants peut se produire :
- Votre contribution est acceptée : Si votre contribution est approuvée par les mainteneurs du projet, elle sera fusionnée dans la branche principale de la base de code.
Félicitations ! Votre travail fait désormais partie du projet et vous avez apporté une contribution précieuse à la communauté open source. - Votre contribution nécessite des changements : Il peut arriver que les mainteneurs du projet demandent des modifications à votre contribution avant qu’elle ne soit acceptée. Cela peut être dû à des problèmes de codage, à des conflits avec d’autres modifications ou à la nécessité d’une documentation supplémentaire. Dans ce cas, apportez les modifications demandées et soumettez à nouveau votre demande de modification.
- Votre contribution est rejetée : Dans certains cas, il se peut que votre contribution ne corresponde pas aux objectifs ou aux exigences du projet, ou qu’elle ne soit pas la meilleure solution à un problème. Si votre contribution est rejetée, ne vous découragez pas. Prenez les commentaires que vous avez reçus comme une occasion d’apprendre et de vous améliorer. Vous pouvez toujours essayer de contribuer à un autre projet ou de soumettre une contribution différente pour le même projet.
Passons à la pratique
Maintenant que vous savez comment trouver des projets open source et y contribuer, il est temps de mettre vos compétences en pratique. C’est ce que nous allons faire en contribuant au dépôt de banque d’héritage du Togo et d’afrique.
Prérequis
Ces outils doivent être téléchargés et installés sur votre machine locale :
Démarrage
- Créez une issue en cliquant sur le bouton “New issue” dans l’onglet “Issues” et remplissez le formulaire.
- Faites un “Fork” du guestbook repository.
- Clonez votre dépôt forké sur votre ordinateur.
- Exécutez
npm installpour installer les dépendances. - Créez une nouvelle branche et utilisez un nom descriptif lié à votre contribution - par exemple,
feat/add-alice. -
Lancez
npm run contributors:adddans votre terminal.Suivez les instructions pour vous ajouter au livre d’or. Une fois que vous avez terminé et que vous avez cliqué sur “enter”, vous devez cliquer à nouveau sur “entrer” pour confirmer vos choix.
- Lancez
npm run contributors:generatedans votre terminal pour générer le livre d’or du README. -
Copiez et collez le Markdown du README dans Markdown Live Preview et faites une capture d’écran de votre profil généré comme dans l’exemple ci-dessous. Vous en aurez besoin plus tard lors de la création d’une Pull Request.
Si vous ne voyez pas votre profil dans la section “Contributeurs”, dézoomez l’écran jusqu’à ce que vous puissiez le voir avant de faire une capture d’écran.
-
Lancez
git logpour vérifier si vos changements ont été automatiquement validés. Pour fermer le journal, appuyez surQ.Voici ce que vous devez vous attendre à voir dans votre message de validation :
docs: add @your_username as a contributor -
Poussez le commit dans votre dépôt forké avec cette commande :
git push -u origin branch-name - Allez sur votre dépôt forké sur GitHub. Créez une pull request avec le titre
feat : Add <@github-username> as a contributoret remplissez tous les champs du formulaire de demande de fusion.
!> Votre demande sera marquée comme invalide et pourra être fermée si le formulaire est incomplet.
Félicitations pour votre première contribution ! 🎉
?> Si vous êtes prêt pour votre prochaine contribution, rendez-vous sur le dépôt pizza-verse et suivez les directives de contribution pour votre prochaine contribution. Une fois que vous avez terminé, rendez-vous au le chapitre La sauce secrète de ce cours.
Maintenir les branches à jour
Il est fortement recommandé de mettre à jour régulièrement vos branches locales et distantes. De cette façon, votre branche aura la dernière mise à jour lorsqu’elle sera fusionnée dans la branche main du dépôt original (upstream).
Les meilleurs moments pour mettre à jour vos branches sont avant de pousser vos changements vers le dépôt distant et pendant que vous attendez que votre demande de fusion soit revue.
Mise à jour des branches
Tout d’abord, vous devez mettre à jour votre dépôt forké (origin) :
- Allez sur votre dépôt forké sur GitHub.
- Cliquez sur le bouton “Sync fork”.
- Cliquez sur le bouton vert “Update branch”.
Ensuite, récupérez les derniers changements dans la branche main du dépôt origin pour mettre à jour votre branche de travail locale en suivant ces étapes dans votre terminal :
-
Rendez-vous sur votre branche active.
git checkout YOUR-BRANCH-NAME -
Cette commande permet d’extraire les dernières modifications :
git pull origin main
Fusionner les conflits
Les conflits de fusion sont quelque chose que vous rencontrerez fréquemment lorsque vous contribuez à un projet open source. Lorsque deux branches ont apporté des modifications différentes à la (aux) même(s) ligne(s) dans le (les) même(s) fichier(s), Git ne peut pas déterminer automatiquement quelle modification conserver, ce qui donne lieu à un conflit.
Quand un conflit de fusion se produit, Git ajoute des marqueurs de conflit (<<<<<<<, =======, et >>>>>>) pour indiquer les lignes en conflit dans les différentes branches. Tout ce qui se trouve entre <<<<<<< et ======= sont les changements sur lesquels vous avez travaillé (changements actuels). Et tout ce qui se trouve entre ======= et >>>>>>> sont les changements entrants de la branche distante main.
Vous devez prêter attention aux conflits et décider de la manière dont vous souhaitez les résoudre. Vous pouvez conserver uniquement votre modification, la modification entrante ou les deux modifications.
Conseils pour éviter de résoudre les conflits de fusion de manière répétée
Certains dépôts open source, tels que les dépôts guestbook et pizza verse d’OpenSauced, ont des activités de contribution importantes dans les mêmes fichiers, ce qui peut entraîner des conflits de fusion.
Voici quelques conseils pour vous éviter de résoudre des conflits de fusion à répétition lorsque vous contribuez à des projets open source :
1. Suivre les instructions
Veillez à suivre les instructions du README ou du Guide de contribution du projet, et ne manquez aucune étape.
2. Formulaire de demande de fusion
Complétez le modèle de formulaire et remplissez tous les champs lorsque vous créez une demande de fusion.
Si un dépôt ne vous fournit pas de modèle de demande de fusion, vous devez avoir ces éléments dans votre formulaire de demande de fusion :
- Un titre descriptif : Un titre descriptif aiderait les mainteneurs et les autres contributeurs à se faire une idée de votre contribution.
Pensez à utiliser la méthode suivante pour écrire votre titre :type: brève description de votre contribution. Par exemple,fix: problème de contraste des couleurs dans la barre de navigation,feat: création d'un bouton d'avertissement, etc. - Une description claire de votre demande de fusion : Décrivez clairement votre pull request. Pensez à expliquer vos changements, les idées derrière la solution, etc. Une description claire donne aux mainteneurs et aux autres contributeurs un aperçu des détails de vos changements. Voici un exemple de description claire dans une demande de fusion.
- Le lien vers le numéro correspondant : Le fait de lier une demande de fusion à une issue traitée, la fermera automatiquement la question liée lorsque la demande de fusion sera fusionnée. Cela permet aux mainteneurs de mieux organiser leurs projets.
- Une capture d’écran ou un enregistrement d’écran lorsque vous effectuez une modification de l’UI : Fournir des captures d’écran ou des enregistrements d’écran permettra à la maintenance de visualiser plus facilement vos changements et d’examiner votre demande de fusion.
3. Résoudre immédiatement les conflits de fusion
Si une branche a des conflits de fusion qui doivent être résolus, le bouton de fusion est automatiquement désactivé. Les mainteneurs ne peuvent donc pas fusionner la Pull Request.
Lorsque vous remarquez des conflits de fusion dans votre demande de fusion ou si un mainteneur vous demande de résoudre des conflits de fusion, corrigez-les immédiatement. Plus vite vous résoudrez les conflits, plus vite les mainteneurs pourront réviser et fusionner votre demande.
Fusionner les conflits dans le dépôt du livre d’or
Puisque le but primaire du livre d’or est d’ajouter votre nom à .all-contributorsrc et aux fichiers README.md, il y a de fortes chances que vous rencontriez des conflits de fusion.
Les conflits surviennent lorsque les mainteneurs ont fusionné des demandes de modification avant la vôtre pendant que vous travaillez sur vos modifications ou que vous attendez que votre demande de modification soit examinée. Et vous devez les résoudre avant que votre demande ne soit fusionnée.
Résoudre les conflits de fusion
Avant de résoudre les conflits de fusion, vous devez d’abord mettre à jour vos branches. Ensuite, suivez les étapes suivantes :
- Dans le fichier
.all-contributorsrc:- Cliquez sur l’option “Accept Both Change” en haut de votre espace de travail dans VS Code.
- Déplacez les détails de votre profil à la fin du tableau des contributeurs et corrigez tout ce qui est nécessaire.
- Dans le fichier
README.md:- Cliquez sur l’option “Accept Incoming Change” en haut de votre espace de travail dans VS Code pour chaque conflit dans ce fichier.
-
Lancez
npm run contributors:generate.Vous verrez maintenant que le badge all contributors a été incrémenté, et que votre profil est généré à la fin de la liste des contributeurs dans le fichier
README.md. -
Ajoutez et validez vos modifications.
git commit -am "Resolve merge conflicts" -
Transférez vos modifications sur votre branche distante.
git push
En continuant à contribuer à des projets open source, vous acquerrez une expérience précieuse, développerez de nouvelles compétences et constituerez un solide portfolio. Dans le prochain chapitre, nous discuterons de quelques stratégies pour commencer à contribuer à des projets open source, pour gagner du terrain dans vos contributions et pour développer votre CV open source à l’aide d’OpenSauced.