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.
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
1. On est donc bien dans notre fichier
2. On clique sur le crayon pour entrer en modification
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 .
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
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
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)
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)
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
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)
On obtient la liste des PR en attentes de validation
On voit bien le notre
[Tuto GitHub#2] Participer : Fork & Pull Request
Aller
- Informations
- ↳ Annonces officielles
- ↳ Présentation et Vitrine d'installations
- ↳ Discussions Générales
- ↳ Petites annonces
- ↳ Tutoriels
- Logiciel Jeedom [Core]
- ↳ Utilisation
- ↳ Backup/Restauration
- ↳ Interactions
- ↳ Scénarios
- ↳ Interfaces
- ↳ Portail web classique (Desktop)
- ↳ Portail web smartphone & tablettes
- ↳ [Plugin officiel] App mobile
- ↳ [Plugin tiers] Application mobile
- ↳ Market Jeedom
- ↳ Suggestions pour le Core
- Plugins Jeedom
- ↳ [Catégorie] Automatisation
- ↳ [Catégorie] Communication
- ↳ [Plugin Officiel] Assistant vocaux
- ↳ [Plugin Officiel] IFTTT
- ↳ [Plugin Officiel] Jeelink
- ↳ [Plugin Officiel] Mail
- ↳ [Plugin Officiel] Networks
- ↳ [Plugin Officiel] SMS
- ↳ [Plugin Tiers] Homebridge
- ↳ [Catégorie] Confort / Bien-être
- ↳ [Plugin Officiel] Green Momit
- ↳ [Plugin Officiel] Nest
- ↳ [Plugin officiel] Thermostat
- ↳ [Catégorie] Energie
- ↳ [Plugin officiel] Energie
- ↳ [Catégorie] Météo
- ↳ [Plugin Officiel] Météo
- ↳ [Plugin Officiel] Netatmo
- ↳ [Catégorie] Multimédia
- ↳ [Plugin Officiel] Denon AVR
- ↳ [Plugin Officiel] Kodi
- ↳ [Plugin Officiel] Sonos controller
- ↳ [Plugin Officiel] SqueezeBox Control
- ↳ [Catégorie] Nature
- ↳ [Catégorie] Monitoring
- ↳ [Plugin Tiers] Monitoring
- ↳ [Plugin Officiel] Onduleur (NUT)
- ↳ [Catégorie] Objets connectés
- ↳ [Plugin Officiel] Broadlink
- ↳ [Plugin Officiel] Karotz
- ↳ [Plugin Officiel] Philips Hue
- ↳ [Catégorie] Organisation
- ↳ [Plugin officiel] Agenda
- ↳ [Plugin Officiel] Géolococalisation
- ↳ [Plugin Officiel] Mode
- ↳ [Plugin Officiel] Waze in Time
- ↳ [Catégorie] Passerelle Domotique
- ↳ [Plugin Tiers] Imperihome
- ↳ [Plugin Tiers] Zibasedom
- ↳ [Catégorie] Programmation
- ↳ [Plugin Officiel] Click Link
- ↳ [Plugin officiel] Scripts
- ↳ [Plugin officiel] Virtuels
- ↳ [Plugin officiel] Widgets
- ↳ [Catégorie] Protocoles domotiques
- ↳ [Plugin Officiel] BLEA
- ↳ [Plugin Officiel] Edisio
- ↳ [Plugin Officiel] EnOcean
- ↳ [Plugin Officiel] IPX 800 v4
- ↳ [Plugin Tiers] KNX
- ↳ [Plugin Tiers] MQTT
- ↳ [Plugin Tiers] MySensors
- ↳ [Plugin Officiel] RFPlayer
- ↳ [Plugin Officiel] RFXcom
- ↳ [Plugin Officiel] Wifipower
- ↳ [Plugin Tiers] Xiaomi Home
- ↳ [Plugin Officiel] xPL
- ↳ [Plugin Officiel] Z-Wave
- ↳ Plugin Z-Wave
- ↳ Configurations OpenZwave Manquantes
- ↳ [Plugin Tiers] ESPEasy
- ↳ [Catégorie] Santé
- ↳ [Catégorie] Sécurité
- ↳ [Plugin officiel] Alarme
- ↳ [Plugin officiel] Caméra
- ↳ [Plugin Officiel] Netatmo Welcome
- ↳ Développements sur Jeedom
- ↳ Suggestions de Plugins
- Matériel Jeedom - Hardware
- ↳ La box JEEDOM SMART
- ↳ La box JEEDOM MINI+
- ↳ La box JEEDOM PRO
- ↳ Do-It-Yourself ("Faire-soi-même")
- ↳ Docker
- ↳ Machines Virtuelles
- ↳ Raspberry Pi
- ↳ Synology
- International JEEDOM
- ↳ [English] JEEDOM Project
- ↳ News
- ↳ Software & Plugins
- ↳ Box's and devices
- ↳ [Deutsch] JEEDOM Projekt
- ↳ Neuigkeiten
- ↳ Software & Plugins
- ↳ Jeedom Box und Geräte
- ↳ [Español] Proyecto JEEDOM
- ↳ Noticias
- ↳ Software & Plugins
- ↳ Los controladores Jeedom y los dispositivos
- ↳ Translation - Traduction
- Archives
- ↳ Ancien Wiki
- ↳ Installation de Jeedom
- ↳ Core de Jeedom
- ↳ Plugins
- ↳ Widgets
- ↳ Scénarios
- ↳ Résolution de problèmes
- ↳ Utilisation & Astuces
- ↳ Modules RFXcom
- ↳ Noeuds MySensors
- ↳ Application externe tierce & Jeedom
Qui est en ligne ?
Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 1 invité