• 6 heures
  • Moyenne

Ce cours est visible gratuitement en ligne.

course.header.alt.is_video

course.header.alt.is_certifying

J'ai tout compris !

Mis à jour le 27/06/2022

Contribuez à votre premier projet open source

Faites vos premiers pas dans la communauté Open Transport

Vous êtes prêt ? Alors on commence. 

Notre point de départ : nous approprier le projet Open Transport. Sans cela, nous n’irions pas bien loin.  La question est donc : comment intégrer une communauté open source ?

Il n'y a évidemment pas de réponse absolue, dans la mesure où chaque communauté peut avoir ses spécificités. Néanmoins, on retrouve souvent des éléments similaires d’un projet à l’autre, comme un fichier README, des directives de collaboration, un code de conduite ou encore une licence.

Le projet Open Transport est disponible sur GitHub à cette adresse : https://github.com/OpenClassrooms-Student-Center/7688581-Expert-Git-GitHub.

Avant d’entrer dans le vif du sujet, je vous propose de consulter les éléments suivants :

  • le fichier README qui donne les informations générales sur le projet ;

  • le fichier CONTRIBUTING pour les directives de collaboration ;

  • le fichier CODE OF CONDUCT pour les règles de conduite au sein du projet.

C’est bien sympa tout cela, mais moi je me sers de GitHub dans le contexte de mon entreprise, et pas du tout de l’open source. À quoi cela va me servir ? 

Rassurez-vous, j’ai créé ce contexte fictif pour que vous puissiez vous projeter dans des situations concrètes. Même si vous ne travaillez pas dans un contexte open source, vous pourrez appliquer ce que nous allons voir ensemble dans n’importe quel environnement professionnel ou personnel.

La différence sera, bien évidemment, la non-mise à disposition des repositories (dépôts) GitHub auprès du grand public.

Mettez en place votre environnement

Maintenant que vous avez pris connaissance du projet open source et de ses documents associés, vous allez pouvoir faire vos premières actions sur le projet. Mais pour cela, il faut que votre environnement de travail soit opérationnel !

De quoi ai-je besoin ? 

Bonne question ! Dans le cadre de ce cours, j’ai souhaité rendre les choses les plus simples possible. Je vous demande d’avoir à disposition :

  • un navigateur comme Google Chrome pour accéder à GitHub ;

  • une installation en local de Git ;

  • un éditeur de texte comme Sublime Text ;

  • un compte personnel GitHub.

Je ne vous fait pas l'offense de vous montrer comment installer un navigateur (que vous avez déjà, sinon vous ne pourriez pas consulter ce cours ) ni un éditeur de texte. En revanche, si vous avez besoin d’aide pour installer Git, je vous conseille de suivre ce chapitre du cours Gérez du code avec Git et GitHub.

Maintenant que tout est prêt, une étape importante nous attend : Forker le projet !

Mais attends, alors un fork c’est la même chose qu’un clone du projet ?

Fondamentalement, un fork et un clone sont similaires : tous deux sont des copies du projet. Mais il y a bien une différence dans leur lien avec le projet originel. Un clone maintient un lien avec le projet. Par conséquent, si vous faites un git push, la modification sera (uniquement) envoyée au projet originel. En revanche, le fork est complètement isolé du projet originel. Pour envoyer une modification au projet originel, vous devez soumettre une pull request.

Illustration de la différence entre un Fork et un Clone.

Autre différence importante : forker un repository GitHub crée un autre repository GitHub. Alors que cloner un repository GitHub crée seulement une copie locale sur votre ordinateur.

Et si je veux travailler en local sur un fork ?

Bonne question ! La réponse est simplement de cloner en local le fork qui est sur votre repository GitHub. Vous aurez donc 2 actions à réaliser :

  1. Forker le projet – ce qui aura pour conséquence de dupliquer le projet en créant un nouveau repo dans votre compte GitHub.

  2. Cloner le nouveau repository créé dans votre compte GitHub – ce qui va créer une copie locale du fork sur votre ordinateur.

Illustration de la méthode pour travailler en local sur un fork : 1. Forker le projet 2. Cloner le repository créé dans votre compte GitHub

Découvrons maintenant comment forker puis cloner en local le projet Open Transport dans la démonstration suivante :

Félicitations, vous êtes prêt pour votre première contribution. 

Apportez votre première contribution

Pour permettre à tous de contribuer, Open Transport utilise la fonctionnalité GitHub Issues.

Ainsi, une façon de commencer à contribuer est de lire les issues du projet et d’en choisir une à notre portée technique. Je vous laisse parcourir la liste des issues du projet Open Transport.

Je vous propose de traiter la première issue, qui correspond à une erreur de texte dans le fichier README.md :

Capture d’écran de la première issue. Le titre et le contenu de l’issue sont affichés.

Notre plan d’attaque est le suivant :

  1. Modifier en local le fichier README.md.

  2. Faire un git add, un git commit (avec le numéro de l’issue dans le message, cf. les règles de contribution) et un git push pour envoyer la modification sur notre repository distant (le fork).

  3. Créer une pull request via l’interface graphique de GitHub.

Pour les étapes 1 et 2, je vous fais entièrement confiance, vous n’avez pas besoin de mon aide ! Sinon, je vous invite à consulter ce chapitre du cours Gérez du code avec Git et GitHub.

Pour l’étape 3, voici comment faire :

Premièrement rendez-vous sur l’onglet Pull Request de votre repository GitHub :

Le menu contient les liens : Code, Pull Requests, Actions, Projects, Wiki, Security, Insights et Settings.
Menu d’un repository GitHub

Deuxièmement, cliquez sur le bouton

Bouton New pull request

qui apparaît dans la zone centrale sur la droite.

Vous êtes désormais sur une page similaire à la copie d’écran ci-dessous :

La page indique que la nouvelle pull request vient du repository forké vers le repository base. Le commit est également affiché.
Page de création d’une nouvelle pull request

Notons avec intérêt que le premier encart gris clair indique bien que la pull request va vers le repository de base (lire la ligne de droite à gauche, car la flèche est <-), et qu’il y a la mention “Able to merge”. Tous les signaux sont au vert, il suffit désormais d’appuyer sur le bouton Bouton Create pull request.

Assez simple, finalement, ne trouvez-vous pas ? 

Comme le précisent les règles de contribution, votre pull request sera ensuite revue et traitée.

À vous de jouer !

Je vous propose de pratiquer une nouvelle fois en traitant l’issue n° 2 !

Les étapes sont les mêmes que dans l’exemple précédent :

  1. Modifier en local le fichier.

  2. Faire un git add, un git commit et un git push pour envoyer la modification sur notre repository distant (le fork).

  3. Créer une pull request via l’interface graphique de GitHub.

C’est parti, à vous de jouer !

Corrigé

Retrouvez-moi dans la démonstration suivante pour la correction !

En résumé

  • Avant de contribuer à un projet open source, prenez connaissance de ses directives de collaboration.

  • Pour contribuer à un projet open source, vous devez le forker puis cloner le nouveau repository sur votre poste de travail.

  • Identifiez votre périmètre d’action en consultant les issues du projet.

  • Proposez des modifications au projet en réalisant des pull requests.

Vous avez apporté votre première contribution au projet Open Transport : toutes mes félicitations ! 🥳 Rendez-vous au chapitre suivant pour résoudre vos premiers conflits.

Exemple de certificat de réussite
Exemple de certificat de réussite