Comme annoncé, ce forum est passé en lecture seule au 1er janvier 2020. Désormais nous vous invitons à vous rendre sur notre nouvelle page communauté :
Image

A très bientôt !

[Tuto GitHub#2] Participer : Fork & Pull Request

Bosquetia
Actif
Messages : 6783
Inscription : 10 mai 2016, 07:54

[Tuto GitHub#2] Participer : Fork & Pull Request

Message par Bosquetia » 05 nov. 2017, 15:20

Bonjour,

Nous partons du principe que vous avez un compte github. Si tel n'est pas le cas merci de vous référer au post [Tuto GitHub#1] Création d'un compte viewtopic.php?f=101&t=31164

Nous tenons à remercier Tag pour la création de cette partie du tuto.


Fork - Pourquoi - Comment
Un Fork, c'est une copie d'un projet dans votre espace github, afin de pouvoir modifier des fichiers (code/documentation/...) pour ensuite soumettre vos modifications au projet d'origine via un Pull Request, qui sera alors étudié puis accepté ou refusé par le ou les développeur(s) du dit projet.

Maintenant que vous avez un compte Github et que vous êtes identifié avec votre adresse email, si vous vous rendez ici https://github.com/jeedom/core vous arriverez sur le projet jeedom. Vérifiez que vous êtes bien sur la branche master, puis cliquez sur le bouton fork (En haut à droite) qui vous permet de copier le projet dans votre espace github.

fork.JPG


Modification d'un fichier dans votre fork

Dans mon cas, je souhaite donc pousser une modification sur le fichier history.class.php
Ce fichier se situe dans le core de jeedom et plus précisément ici : core/class/

1. On est donc sur mon dépôt (TaGGoU91 / core) qui est indiqué comme étant un fork de Jeedom/core
2. On se rend donc dans /core/class (le premier core est en gras, c'est le dépôt ou je suis (core, cf Petit 1)
3. On a donc notre fichier history.class.php - On clique sur le fichier

Image

1. On est donc bien dans notre fichier
2. On clique sur le crayon pour entrer en modification

Image

Afin de faire une recherche dans le fichier (dans mon cas, je ne suis pas Dev, ni créateur du fichier que l'on va modifier, je ne sais donc pas ou ce situe le bout de code que je veux modifier).
Il faut en premier, faire un clic avec la souris DANS le bloc ou il y a le code
Ctrl + F
Coller le texte que vous cherchez (un élément significatif et une ligne seulement, pas tout un bloc d'un coup)
Entrée

Si vous ne cliquez pas dans la fenêtre contenant le texte ou le code que vous cherchez, c'est la recherche du navigateur qui va s'ouvrir et dans mon cas, sur Google chrome, ça ne sait pas faire la recherche dans le code ou la documentation directement.

1. Le champ de recherche, oui c'est assez mince comme information, la ligne copié est bien plus grande ;).

Image

1. En jaune, c'est le résultat de la recherche
2. En bleu, ce que je viens de sélectionner et que je souhaite modifier/remplacer par mon code. Ma modification

Image

Je supprime donc le bloc puis je le remplace.

Ensuite, sur la partie basse on trouve ceci :
1. On indique un titre explicite si possible
2. On entre une description un peu plus précise (dans mon cas, ça serait trop long, le lien vers le forum sera plus parlant)
3. On s'assure que ça soit bien coché comme ceci (Commit directly to the master/beta branch)
4. On commit = Soumettre la modification

Image

Ce n'est pas terminé ! Vous avez modifié le code de votre fork du projet jeedom core, il va maintenant falloir le proposer aux développeurs du projet d'origine.


Soumettre votre modification d'un fichier au projet d'origine

1. On clique sur l'onglet Pull Request
2. New Pull Request (PR pour les intimes)

Image

1. On est ce coup-ci logique, on compare la base de jeedom avec notre repository à nous
2. Celà indique les modifications (le premier c'est parce que je me suis remis à jour depuis jeedom, le second concernant justement le changement de la fonction lastchangestateduration, parfait !!!)
3. L'ancien code
4. Le nouveau code
5. On crée le Pull Request (PR)

Image


1. On clique sur les trois petits points
2. On recopie les informations que l'on a saisi précédemment
3. Idem, on recopie (d’où l'utilisation des ... à l'étape 1 pour s'éviter une réécriture)
4. On clique sur Create Pull Request

Image


C'est terminé.

NB: Il n'y a que les utilisateurs ayant un droit de push sur jeedom qui peuvent valider le PR. Donc aucun risque que vous cassiez quelque chose directement dans le projet jeedom. (Ce n'est pas une raison pour faire n'importe quoi dans vos PRs)

Pour vous assurez que votre modification est bien dans la liste, vous pouvez cliquer sur Pull Requests du projet d'origine (ici jeedom / core)

Image

On obtient la liste des PR en attentes de validation
On voit bien le notre

Image

Verrouillé

Revenir vers « Tutoriels »

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 2 invités