¶ Apportez des modifications à votre copie locale et enregistrez-les.
Vos référentiels locaux sont une copie complète des projets qui se trouvent sur GitHub afin que vous puissiez enregistrer les modifications localement à chaque fois que vous en avoir. Lorsque vous travaillez localement, vous pouvez apporter des modifications à des centaines de fichiers à la fois, puis effectuer une seule sauvegarde (commit) de chacun d’entre eux.
Vous verrez que vous avez des modifications lorsqu’un numéro apparaît sur l’icône du bouton Source control.
Cliquez sur Source control.
Dans le sous-panneau Source control, vous verrez une liste des fichiers modifiés. Passez la souris sur eux et cliquez sur le bouton Stage changes qui apparaîtra.
Une fois les modifications en stage, entrez un message pour la sauvegarde (commit) et cliquez sur le bouton Commit. Les modifications sont ajoutées à votre référentiel local.
Pour transférer vos modifications vers votre référentiel distant sur GitHub, cliquez sur le bouton Sync changes qui apparaît lorsqu’il y a de nouveaux commits. Cela pull et push recevra et enverra toutes les modifications entre vos copies locales et distantes du projet.
Vous pouvez vérifier que vos commits sont soumis correctement en ouvrant votre page GitHub Urantiapedia.
¶ Synchroniser les changements entre les deux projets Urantiapedia
Le projet Urantiapedia est la version pour développer et travailler avec le contenu. Le projet Urantiapedia-backup contient uniquement le contenu et est synchronisé avec le site Web, donc y apporter des modifications équivaut à apporter des modifications massives au site Web, à condition que ces modifications soient introduites par les Administrateurs ou acceptées par les Administrateurs via une demande de changement.
Si vos modifications apportées au projet Urantiapedia incluent des modifications du contenu (dossier /output/wikijs), vous devez synchroniser ces modifications avec le projet Urantiapedia-backup avec n’importe quel utilitaire de synchronisation ou simplement en copiant et collant entre les dossiers.
Cette duplication des deux projets peut être un peu lourde mais elle est conçue ainsi pour des raisons de sécurité.
¶ Créer des demandes d’extraction pour les projets Urantiapedia
Lorsque vous avez envoyé un nombre suffisant de commits à vos propres copies des forks d’Urantiapedia, vous pouvez envoyer une demande d’extraction aux projets d’origine ( pull request) afin que les modifications puissent être révisées et fusionnées dans ceux-ci. C’est ce qu’on appelle une pull request dans la terminologie GitHub.
Ouvrez chacune des pages Urantiapedia sur GitHub.
https://github.com/<username>/urantiapedia
https://github.com/<username>/urantiapedia-backup
Assurez-vous que vous êtes sur la branche principale appelée master. La branche apparaît dans un menu en haut de la liste des fichiers. Normalement, vous n’aurez que cette branche.
Sélectionnez le menu Contribute ci-dessous, puis sélectionnez Open pull request. Si le menu indique This branch is not ahead of the upstream master (Cette branche n’est pas en avance sur le maître en amont), vous devez d’abord fetch le projet principal. Regardez devant vous.
Ajoutez un titre à vos contributions. Vous pouvez également ajouter une description.
Cliquez sur Create pull request. Faites une pull request pour chaque projet dans lequel vous avez des modifications.
Cela enverra une notification aux administrateurs du projet qui fusionneront vos modifications s’ils ne trouvent aucun problème.
Comme Urantiapedia est l’effort d’une équipe de collaborateurs, il est courant qu’à tout moment vos copies des projets (forks) ne soient pas synchronisées avec les projets originaux. Il est de bonne pratique qu’avant toute pull request, vous synchronisiez vos forks avec les projets originaux.
Ouvrez n’importe lequel de vos projets Urantiapedia sur GitHub.
Cliquez sur l’option Sync fork. Un menu s’affichera indiquant combien de commits ont été effectués sur le projet original qui ne figurent pas dans votre copie. Dans l’image vous pouvez voir qu’il y a 4 sauvegardes que nous n’avons pas et donc notre copie est obsolète (This branch is out-of-date). Cliquez simplement sur Update branch pour apporter les modifications du projet d’origine à votre copie.
Attendez quelques secondes pendant que GitHub met à jour votre copie. A la fin, si vous cliquez à nouveau sur l’option Sync fork vous verrez que tout est déjà mis à jour indiquant que les modifications ne sont pas en retard sur l’original (This branch is not behind the upstream).
Accédez à VS Code.
Ouvrez le projet comme déjà expliqué.
Dans le panneau Source control, accédez au sous-panneau Commits. Cliquez sur le petit bouton Fetch puis sur le bouton Pull à côté. Cette action récupère et transmet les modifications en même temps pour synchroniser le référentiel local.
Parfois, les modifications apportées au code des Urantiapedia Tools impliquent des modifications des dépendances. Vous devez installer ou mettre à jour de nouvelles dépendances en exécutant la commande npm install depuis un terminal dans VS Code. Cela mettra à jour les dépendances du projet.
En résumé, le processus sur GitHub est le suivant (voir schéma) :
Les « Rédacteurs en Chef » créent une copie (1) (fork) dans leur propre compte des projets Urantiapedia sur GitHub : Urantiapedia et Urantiapedia-backup. Ils gardent également ces copies synchronisées à l’aide d’un Sync fork ou d’un Fetch Upstream (1).
Les « rédacteurs en chef » créent une copie locale des projets sur leur PC. Cela se fait via une action clone (2) dans VS Code. Ils maintiennent également ces copies locales synchronisées via les actions fetch + pull dans VS Code (2), qui suppriment toutes les modifications apportées à la copie locale.
Les « rédacteurs en chef » apportent des modifications à la copie locale des projets et s’engagent * (3) sur leur copie locale pour enregistrer les modifications.
Les « rédacteurs en chef » transmettent leurs modifications à leurs projets GitHub via des actions push (4).
Les « rédacteurs en chef » créent ensuite des pull request (5) à partir du site Web GitHub pour les projets Urantiapedia et Urantiapedia-backup.
Ces pull request des « Rédacteurs en chef » sont examinées par un « Administrateur », qui est chargé de faire une fusion (6) de toutes les modifications qui sont correctes. Toute modification incorrecte sera rejetée (6) et les « Rédacteurs en chef » en seront informés afin qu’ils puissent les corriger.
Lorsque les modifications sont correctes, « l’Administrateur » fusionne dans le projet urantiapedia-backup d’origine, provoquant la synchronisation automatique des modifications avec le site Web, qui apparaîtra mis à jour dans quelques minutes. (7)