Ajout du chapitre : Rester à jour avec la version officielle

Sys Quatre 2020-10-11 19:23:46 +02:00
parent af201de3a7
commit e5e5e1cc7a

@ -1,25 +1,29 @@
# Table of Contents
1. [Guide de contribution et de développement du serveur NALC](#orgfc42044)
1. [Créer son compte gitea](#org9bf616d)
2. [Créer des tickets de bugs](#orgbb118ff)
1. [Où poster les tickets](#org0d5e6ae)
3. [Créer et installer **sa** version de NALC](#org2647a2f)
1. [Bifurquer les dépôts essentiels de NALC](#orgdec5d14)
2. [Cloner votre bifurcation du dépot nalc-server](#org29d93a0)
3. [Faire l'installation du serveur avec vos dépôts](#org9833358)
4. [Configuration de fichiers](#org792c9aa)
5. [Désactiver le mod irc et irc<sub>commands</sub>](#orge32fc43)
6. [Changer le backend de la map (optionnel)](#org656b70b)
4. [Lancer le serveur](#org70d26a3)
1. [Manière classique](#orgc316897)
2. [Avec shutdown.sh](#orgd8ed372)
5. [Développer le serveur](#org249511c)
1. [Modifier un mod](#org3f9fd32)
2. [Proposer une demande d'ajout (Pull Request)](#orgea96617)
1. [Guide de contribution et de développement du serveur NALC](#org6761f05)
1. [Créer son compte gitea](#org765504d)
2. [Créer des tickets de bugs](#org17818d7)
1. [Où poster les tickets](#org96f8829)
3. [Créer et installer **sa** version de NALC](#org26e76c1)
1. [Bifurquer les dépôts essentiels de NALC](#orgd4d8116)
2. [Cloner votre bifurcation du dépot nalc-server](#org1609ddf)
3. [Faire l'installation du serveur avec vos dépôts](#org228379a)
4. [Configuration de fichiers](#org533e2c4)
5. [Désactiver le mod irc et irc<sub>commands</sub>](#org0455334)
6. [Changer le backend de la map (optionnel)](#orge6169a8)
4. [Lancer le serveur](#org555a209)
1. [Manière classique](#orgd0d9228)
2. [Avec shutdown.sh](#org7d81dbd)
5. [Développer le serveur](#orgd7eb801)
1. [Modifier un mod](#orga5ca191)
2. [Proposer une demande d'ajout (Pull Request)](#orgc1804a9)
6. [Rester à jour avec la version officielle](#orga68a076)
1. [Mettre à jour nalc-server](#orgbd1ef3c)
2. [Mettre à jour nalc-server-mods](#org3f363f5)
<a id="orgfc42044"></a>
<a id="org6761f05"></a>
# Guide de contribution et de développement du serveur NALC
@ -30,7 +34,7 @@
Pour les exemples donnés dans le guide nous serons l'utilisateur Sam.
<a id="org9bf616d"></a>
<a id="org765504d"></a>
## Créer son compte gitea
@ -40,7 +44,7 @@ Pour commencer, créez-vous un compte sur le serveur de dépôts git que je met
Une fois inscrit vous pouvez vous connecter et ainsi commencer votre participation.
<a id="orgbb118ff"></a>
<a id="org17818d7"></a>
## Créer des tickets de bugs
@ -48,7 +52,7 @@ Si vous constatez un bug sur le serveur NALC vous pouvez déjà le rapporter dir
Pour ceux voulant contribuer de façon plus pointue, ou pour les personnes déjà contributrices en développement ou voulant le devenir, poster des tickets de bugs directement depuis l'interface de Gitea sera plus approprié et confortable.
<a id="org0d5e6ae"></a>
<a id="org96f8829"></a>
### Où poster les tickets
@ -56,7 +60,7 @@ Pour des raisons pratiques les tickets concernants un bug du jeux ou qui semble
Pour les bugs qui concernent la gestion ou l'administration de serveur en lui-même (exemple : un bug avec le script d'installation) vous devrez les poster dans le dépôt [nalc-server](https://sys4.fr/gitea/nalc/nalc-server/issues) de l'organisation [Notre Ami Le Cube](https://sys4.fr/gitea/nalc).
<a id="org2647a2f"></a>
<a id="org26e76c1"></a>
## Créer et installer **sa** version de NALC
@ -64,39 +68,37 @@ Ici sera décrite l'installation du serveur avec l'intention de pouvoir proposer
Si vous êtes juste curieux et souhaitez tester la version de développement officielle sans vouloir apporter de modifications, reportez-vous au guide d'administration du serveur qui contient un chapitre sur l'installation du serveur.
<a id="orgdec5d14"></a>
<a id="orgd4d8116"></a>
### Bifurquer les dépôts essentiels de NALC
Pour commencer, connectez vous avec votre identifiant sur [le serveur de dépôts git](https://sys4.fr/gitea).
Puis rendez-vous sur le dépôt <https://sys4.fr/gitea/nalc/nalc-server>.
Faites une **bifurcation** du dépôt :
![Bouton Bifurcation](../../src/branch/master/doc/Guide/nalc-dev-001.png)
![img](https://sys4.fr/gitea/nalc/nalc-server/src/branch/master/doc/Guide/nalc-dev-001.png)
Faites la même opération avec les dépôts suivants :
- <https://sys4.fr/gitea/nalc/nalc-server-mods>
- <https://sys4.fr/gitea/nalc/nalc_game>
Vos dépôts biffurqués (en tant qu'utilisateur Sam) seront accessibles à ces adresses :
Vos dépôts bifurqués (en tant qu'utilisateur Sam) seront accessibles à ces adresses :
- <https://sys4.fr/gitea/Sam/nalc-server.git>
- <https://sys4.fr/gitea/Sam/nalc-server-mods.git>
- <https://sys4.fr/gitea/Sam/nalc_game.git>
<a id="org29d93a0"></a>
<a id="org1609ddf"></a>
### Cloner votre bifurcation du dépot nalc-server
Ouvrez un terminal bash depuis votre ordinateur puis faite un clone du dépôt que vous venez de biffurquer :
Ouvrez un terminal bash depuis votre ordinateur puis faite un clone du dépôt que vous venez de bifurquer :
$ cd ~
$ git clone https://sys4.fr/gitea/Sam/nalc-server.git
<a id="org9833358"></a>
<a id="org228379a"></a>
### Faire l'installation du serveur avec vos dépôts
@ -106,7 +108,7 @@ Toujours depuis votre terminal, faire l'installation de la branche dev du serveu
$ ./install.sh --url https://sys4.fr/gitea/Sam dev
<a id="org792c9aa"></a>
<a id="org533e2c4"></a>
### Configuration de fichiers
@ -139,7 +141,7 @@ Après l'installation il faut configurer quelques fichiers.
Ce script en l'état ne permet de sauvegarder un serveur que si le backend utilisé est postgresql.
<a id="orge32fc43"></a>
<a id="org0455334"></a>
### Désactiver le mod irc et irc<sub>commands</sub>
@ -159,7 +161,7 @@ Plus tard, si le fichier **world.mt** devait être régénéré pour une autre r
Pour les réactiver il faudra simplement les supprimer du script puis éxécuter le script de nouveau comme précédemment.
<a id="org656b70b"></a>
<a id="orge6169a8"></a>
### Changer le backend de la map (optionnel)
@ -172,7 +174,7 @@ Pour cela il faut lancer le script **upgrade.sh** de nouveau de la même manièr
$ ./upgrade.sh -w nalc-dev -b dev -f worldmt
<a id="org70d26a3"></a>
<a id="org555a209"></a>
## Lancer le serveur
@ -180,7 +182,7 @@ Vous êtes prêt pour le démarrage du serveur.
Vous pouvez le faire de deux manières. Soit de manière classique soit à l'aide du script **shutdown.sh**
<a id="orgc316897"></a>
<a id="orgd0d9228"></a>
### Manière classique
@ -190,7 +192,7 @@ Vous pouvez le faire de deux manières. Soit de manière classique soit à l'aid
Pour arrêter le serveur il vous suffira de faire les touches **[CTRL+C]** du clavier.
<a id="orgd8ed372"></a>
<a id="org7d81dbd"></a>
### Avec shutdown.sh
@ -211,7 +213,7 @@ Pour arrêter le serveur :
$ ./shutdown.sh
<a id="org249511c"></a>
<a id="orgd7eb801"></a>
## Développer le serveur
@ -220,7 +222,7 @@ Au travers de l'exemple suivant, voici une méthode pour modifier un mod que vou
Puis vous demanderez à ce que cette modification soit fusionnée dans le dépôt officiel de NALC avec la fonction **demande d'ajout** proposé par gitea. C'est l'équivalent des *Pull Requests* de GitHub.
<a id="org3f9fd32"></a>
<a id="orga5ca191"></a>
### Modifier un mod
@ -240,9 +242,7 @@ Puis vous demanderez à ce que cette modification soit fusionnée dans le dépô
Maintenant que vous connaissez l'url du mod à bifurquer, connectez-vous sur votre compte gitea puis rendez-vous sur la page du dépôt en question. Pour l'exemple il s'agira donc du dépôt <https://sys4.fr/gitea/nalc/riesenpilz>
Faites la bifurcation du mod pour créer votre propre copie :
![Bouton Bifurcation](../../src/branch/master/doc/Guide/nalc-dev-001.png)
![img](https://sys4.fr/gitea/nalc/nalc-server/src/branch/master/doc/Guide/nalc-dev-001.png)
Si nous reprenons l'exemple avec le mod riesenpilz et l'utilisateur Sam, vous devriez obtenir votre propre mod bifurqué accessible à l'adresse suivante : <https://sys4.fr/gitea/Sam/riesenpilz.git>
3. Intégrer le mod bifurqué dans votre copie de NALC
@ -275,7 +275,7 @@ Puis vous demanderez à ce que cette modification soit fusionnée dans le dépô
On voit bien le changement d'url pour le submodule riesenpilz.
Le fichier .gitmodules étant modifié il est tant de faire un premier commit pour refléter ce changement dans le dépôt git nalc-server-mods :
Le fichier .gitmodules étant modifié il est temps de faire un premier commit pour refléter ce changement dans le dépôt git nalc-server-mods :
$ git status
Sur la branche dev
@ -442,7 +442,7 @@ Puis vous demanderez à ce que cette modification soit fusionnée dans le dépô
Voilà vos modifications sont bel et bien publiées et de façon correcte sur le serveur git.
<a id="orgea96617"></a>
<a id="orgc1804a9"></a>
### Proposer une demande d'ajout (Pull Request)
@ -470,3 +470,237 @@ Pour confirmer cette demande d'ajout, cliquer sur le bouton "Nouvelle demande d'
Ensuite libre à lui de fusionner votre PR ou non.
En tout cas de votre côté vous avez finalisé votre demande d'ajout.
<a id="orga68a076"></a>
## Rester à jour avec la version officielle
Si votre but est de proposer vos contributions pour la version officielle du serveur alors vous devrez merger les nouvelles mises à jour dans vos propres dépôts.
Cette étape est importante car vous devez proposer vos modifications basées sur du code à jour.
La règle est qu'avant d'entâmer une modification dans un dépôt, assurez-vous avant, de le mettre à jour avec la version officielle.
<a id="orgbd1ef3c"></a>
### Mettre à jour nalc-server
Rendez-vous avec votre terminal dans le dépôt de votre version de nalc-server :
$ cd ~/nalc-server
Ajoutez le dépôt distant officiel de nalc comme dépôt distant secondaire (à faire qu'une seule fois) puis synchronisez votre dépôt local :
$ git remote add nalc https://sys4.fr/gitea/nalc/nalc-server.git # À faire une seule fois
$ git fetch nalc # À faire à chaque fois que vous voulez vérifier la présence de mises à jours.
Récupération de nalc
remote: Décompte des objets: 8, fait.
remote: Compression des objets: 100% (8/8), fait.
remote: Total 8 (delta 5), reused 0 (delta 0)
Dépaquetage des objets: 100% (8/8), 982 octets | 491.00 Kio/s, fait.
Depuis https://sys4.fr/gitea/nalc/nalc-server
* [nouvelle branche] master -> nalc/master
Pour voir si de nouveaux commits ont été posté sur le dépôt officiel :
$ git log --all
commit 8af9d443e1feb9a112088aa7f16ffcea4e8ed995 (nalc/master)
Author: sys4 <pouet@sys4.fr>
Date: Sat Oct 10 21:58:04 2020 +0200
[dev] Active le spawn des mobs en zones protégées
commit 7aabf3af4d8114ed093c6f76f687b1ba575bc752
Author: sys4 <pouet@sys4.fr>
Date: Sat Oct 10 21:33:02 2020 +0200
[dev] Maj des news
commit 919e88a1ade3533db9b68cdfe9f81decf4bc8e9b
Merge: 6270382 306fc03
Author: sys4 <sys4@noreply.sys4.fr>
Date: Sat Oct 10 21:29:03 2020 +0200
Merge pull request 'Ajoute guide de contribution et de développement du serveur NALC' (#3) from posco/nalc-server:master into master
Reviewed-on: https://sys4.fr/gitea/nalc/nalc-server/pulls/3
commit 306fc03691de767fbf7f9246daffec87d9ee8d9f (HEAD -> master, origin/master, origin/HEAD)
Author: sys4 <samedi@monemail.fr>
Date: Sat Oct 10 21:21:13 2020 +0200
Ajoute guide de contribution et de développement du serveur NALC
lines 1-27
Nous pouvons voir que notre branche master actuelle (origin/master) est en retard par rapport à la branche master du dépôt officiel (nalc/master).
Nous allons fusionner ces nouveaux commits dans notre propre dépôt puis les pousser vers le serveur.
$ git merge nalc/master
Mise à jour 306fc03..8af9d44
Fast-forward
minetest-dev.conf | 2 +-
world/news-dev.txt | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
$ git push origin master
Username for 'https://sys4.fr': Sam
Password for 'https://samedi@monemail.fr':
Énumération des objets: 16, fait.
Décompte des objets: 100% (13/13), fait.
Compression par delta en utilisant jusqu'à 12 fils d'exécution
Compression des objets: 100% (8/8), fait.
Écriture des objets: 100% (8/8), 1002 octets | 1002.00 Kio/s, fait.
Total 8 (delta 5), réutilisés 0 (delta 0), réutilisés du pack 0
remote:
remote: Create a new pull request for 'Sam:master':
remote: https://sys4.fr/gitea/nalc/nalc-server/compare/master...Sam:master
remote:
remote: . Processing 1 references
remote: Processed 1 references in total
To https://sys4.fr/gitea/Sam/nalc-server.git
306fc03..8af9d44 master -> master
Si un éventuel conflit est détecté pendant la fusion, git vous en avertira en mentionnant quels fichiers sont en conflits.
Une fois que vous aurez résolu le conflit, vous pourrez finaliser la fusion avec la commande :
$ git merge --continue
La fusion est terminée pour ce dépôt et le serveur est synchronisé.
Faites la commande **git log** pour le vérifier.
<a id="org3f363f5"></a>
### Mettre à jour nalc-server-mods
Le début est à peu près la même chose. Voici la liste des commandes à faire.
Cette fois je ne met pas le résultat des commandes pour simplifier la lecture.
$ cd nalc-server-mods
$ git remote add nalc https://sys4.fr/gitea/nalc/nalc-server-mods.git # Si première fois
$ git fetch nalc
$ git log --all
En revanche, les choses vont se compliquer à partir de maintenant.
Quand vous allez fusionner la branche dev du dépôt officiel avec votre branche dev, les sous-modules de votre dépôt ne se mettrons pas à jour automatiquement et il faudra le faire manuellement.
$ git merge nalc/dev
Échec de fusion du sous-module riesenpilz (commits non présents)
Fusion automatique de riesenpilz
CONFLIT (sous-module) : Conflit de fusion dans riesenpilz
La fusion automatique a échoué ; réglez les conflits et validez le résultat.
$ git status
Sur la branche dev
Votre branche est à jour avec 'origin/dev'.
Vous avez des chemins non fusionnés.
(réglez les conflits puis lancez "git commit")
(utilisez "git merge --abort" pour annuler la fusion)
Modifications qui seront validées :
modifié : WorldEdit
modifié : homedecor_modpack
modifié : mesecons
modifié : mobs
modifié : moreblocks
Chemins non fusionnés :
(utilisez "git add <fichier>..." pour marquer comme résolu)
modifié des deux côtés : riesenpilz
Modifications qui ne seront pas validées :
(utilisez "git add <fichier>..." pour mettre à jour ce qui sera validé)
(utilisez "git restore <fichier>..." pour annuler les modifications dans le répertoire de travail)
modifié : WorldEdit (nouveaux commits)
modifié : homedecor_modpack (nouveaux commits)
modifié : mesecons (nouveaux commits)
modifié : mobs (nouveaux commits)
modifié : moreblocks (nouveaux commits)
De plus, et c'est notre cas ici aussi, vous aurez très certainement des conflits avec les sous-modules que vous aurez bifurqués auparavant et qui ont bénéficié de nouveaux commits dans les dépôts officiels. Peu importe que ces nouveaux commits soient issus de vos PR ou non.
Mais **Pourquoi ?**
Les sous-modules que vous avez modifiés, donc que vous avez bifurqués ne sont pas référencés à la même URL que les sous-modules officiels. L'historique de la branche dev de votre dépôt nalc-server-mods a dévié par rapport à la branche officielle qui elle ne connaît pas l'historique de votre dépôt puisqu'il n'a pas été fusionné. Du coup git considère que c'est un conflit et ne fera pas le merge automatiquement car il n'a pas moyen de savoir quoi faire. C'est à vous de décider.
**Dans notre cas que faire concrètement ?**
Pour nous sortir de ce mauvais pas nous allons pour chaque sous-module en conflit faire une fusion de la branche master du dépôt d'origine du sous-module puis nous ajouterons notre sous-module modifié à la fusion du dépôt nalc-server-mods.
$ cd riesenpilz
$ git remore add nalc https://sys4.fr/gitea/nalc/riesenpilz.git # Si première fois
$ git fetch nalc
$ git log --all
$ git merge nalc/master
# Réglez les éventuels conflits
$ git push origin master
$ cd ..
$ git add riesenpilz
$ git status
Sur la branche dev
Votre branche est à jour avec 'origin/dev'.
Tous les conflits sont réglés mais la fusion n'est pas terminée.
(utilisez "git commit" pour terminer la fusion)
Modifications qui seront validées :
modifié : WorldEdit
modifié : homedecor_modpack
modifié : mesecons
modifié : mobs
modifié : moreblocks
modifié : riesenpilz
Modifications qui ne seront pas validées :
(utilisez "git add <fichier>..." pour mettre à jour ce qui sera validé)
(utilisez "git restore <fichier>..." pour annuler les modifications dans le répertoire de travail)
modifié : WorldEdit (nouveaux commits)
modifié : homedecor_modpack (nouveaux commits)
modifié : mesecons (nouveaux commits)
modifié : mobs (nouveaux commits)
modifié : moreblocks (nouveaux commits)
Le sous-module riesenpilz corrigé apparaît maintenant dans les modifications qui seront validés pour la fusion en attente que nous pouvons maintenant terminer.
$ git merge --continue
$ git status
Sur la branche dev
Votre branche est en avance sur 'origin/dev' de 2 commits.
(utilisez "git push" pour publier vos commits locaux)
Modifications qui ne seront pas validées :
(utilisez "git add <fichier>..." pour mettre à jour ce qui sera validé)
(utilisez "git restore <fichier>..." pour annuler les modifications dans le répertoire de travail)
modifié : WorldEdit (nouveaux commits)
modifié : homedecor_modpack (nouveaux commits)
modifié : mesecons (nouveaux commits)
modifié : mobs (nouveaux commits)
modifié : moreblocks (nouveaux commits)
aucune modification n'a été ajoutée à la validation (utilisez "git add" ou "git commit -a")
Il ne nous reste plus qu'à mettre à jour les sous-modules bénéficiants de nouveaux commits puis on pousse notre branche dev sur le serveur :
$ git submodule update
Chemin de sous-module 'WorldEdit' : '418a30c89e426f769365dd2955fcde1c0f35adb7' extrait
Chemin de sous-module 'homedecor_modpack' : 'b6ecc0b95f322a391b87341d4321cb1c67da30c2' extrait
Chemin de sous-module 'mesecons' : 'd356f901a3c26f2cce28ce0be64d26fff996e110' extrait
Chemin de sous-module 'mobs' : '7f4d473feef7ab6df20d00e5ceaba8335efd463a' extrait
Chemin de sous-module 'moreblocks' : 'b93949c26629489f586df9bdda5a9eb9fc977d34' extrait
$ git status
Sur la branche dev
Votre branche est en avance sur 'origin/dev' de 2 commits.
(utilisez "git push" pour publier vos commits locaux)
rien à valider, la copie de travail est propre
$ git push origin dev
$ git status
Sur la branche dev
Votre branche est à jour avec 'origin/dev'.
rien à valider, la copie de travail est propre