Cet article a pour but, de vous initier et de vous sensibiliser à la contribution, afin de devenir un contributeur de projet Open-Source.
Pour cela, je vais prendre comme exemple Symfony et les composants qui l’entourent.
Initialisation
Avant de commencer, il faudra dans un premier temps créer un compte Github : https://github.com.
Si le projet est sur Gitlab ou Bitbucket, il faudra un compte sur la même plateforme que le projet que vous voulez contribuer.
Pour Symfony et les composants, c’est Github.
Installation
Désormais que vous avez un compte sur Github, nous allons sur le projet Symfony (A savoir Symfony et ses composants sont sur le même git).
Vous allez cliquer sur le bouton “Fork” situé en haut à droite de la page projet.
Puis choisissez votre profil afin que Github vous créer un dépôt clone de Symfony sur votre profil Github.
Démarrage
Désormais que vous avez fork le projet Github, nous allons commencer désormais à cloner le projet Symfony.
En SSH
git clone [email protected]:Username/symfony.git
En HTTPS
git clone https://github.com/Username/symfony.git
Maintenant que vous avez cloner le projet Symfony de votre dépôt, nous allons désormais commencer à créer une branche spécifique pour cette contribution.
git checkout -b translation_test
Admettons que le composant translation (symfony/src/Symfony/Component/Translation) manque des tests unitaires (symfony/src/Symfony/Component/Translation/Tests/Command/XliffLintCommandTest.php).
Vous allez faire un ajout / modification dans ce fichier. Dès que vous avez fini votre ajout / modification, nous allons faire les pré requis avant de faire un commit sur votre branche.
Tester …
A savoir sur Symfony, il y a des tests unitaires / fonctionnels qui permettent d’éviter les régressions et valider le code. Mais d’autres n’en ont peu ou pas malheureusement mais c’est fort conseiller de les faire si cela est possible.
Soumission de la contribution
Vous avez effectués les tests sur votre environnement local, on va maintenant pousser ce code sur votre dépôt Git distant.
git add ... // liste des fichiers
On met un joli message de commit.
git commit -m "Adding more tests"
git push origin translation_test
Maintenant le code est actuellement sur votre dépôt Github fork du projet Symfony. Pour ma part c’est TheGarious/Symfony. Il faudra cliquer sur le bouton Compare & pull request situé dans l’encadrement jaune.
Maintenant vous êtes sur la page de la pull request, ce qui est important avant d’appuyer sur Create pull request :
- Choisir la bonne branche sur lequel vous voulez faire votre merge.
- Créer un titre court et résumer bien votre pull request
- Modifier ou créer un message qui permet de déterminer votre pull request (A savoir, sur Symfony un template de base est présent pour facilité les messages dans les pull requests)
- En bas de la page vous avez les commits et les fichiers modifiés qui vous permettra de vérifier si vous n’avez pas fait quelques bêtises.
Félicitation
Dès lors que vous avez appuyé sur le bouton Create pull request, le dépôt officiel Symfony a reçu votre pull request. Vous devez désormais surveiller et attendre l’acceptation ou un retour d’un responsable, au cas où une demande de modification à faire afin de le valider au final.
Désormais vous savez comment contribuer sur les projets open-source.
Excellent article, merci pour le travail