commit
0e9c47ec9b
307
Guide-de-contribution-et-de-d%C3%A9veloppement-du-serveur-NALC-%28en-cours-de-r%C3%A9daction...%29.md
Normal file
307
Guide-de-contribution-et-de-d%C3%A9veloppement-du-serveur-NALC-%28en-cours-de-r%C3%A9daction...%29.md
Normal file
@ -0,0 +1,307 @@
|
|||||||
|
# Table of Contents
|
||||||
|
|
||||||
|
1. [Guide de contribution et de développement du serveur NALC](#orgeb470ba)
|
||||||
|
1. [Créer son compte gitea](#orga2bfd98)
|
||||||
|
2. [Créer des tickets de bugs](#org312d59a)
|
||||||
|
1. [Où poster les tickets](#orgbbde114)
|
||||||
|
3. [Créer et installer **sa** version de NALC](#orgef281b4)
|
||||||
|
1. [Bifurquer les dépôts essentiels de NALC](#org01b3988)
|
||||||
|
2. [Cloner votre bifurcation du dépot nalc-server](#org8365c7d)
|
||||||
|
3. [Faire l'installation du serveur avec vos dépôts](#org0aaabe4)
|
||||||
|
4. [Configuration de fichiers](#orgaaaa093)
|
||||||
|
5. [Désactiver le mod irc et irc<sub>commands</sub>](#orgd7fa3e9)
|
||||||
|
6. [Changer le backend de la map (optionnel)](#orgfa3596f)
|
||||||
|
4. [Lancer le serveur](#org921b6d8)
|
||||||
|
1. [Manière classique](#org253d4e7)
|
||||||
|
2. [Avec shutdown.sh](#orga671518)
|
||||||
|
5. [Proposer vos modifications](#org9a94502)
|
||||||
|
1. [Modifier un mod](#org63cf764)
|
||||||
|
|
||||||
|
|
||||||
|
<a id="orgeb470ba"></a>
|
||||||
|
|
||||||
|
# Guide de contribution et de développement du serveur NALC
|
||||||
|
|
||||||
|
- Note taken on <span class="timestamp-wrapper"><span class="timestamp">[2020-10-10 sam. 12:28] </span></span>
|
||||||
|
Les examples de commandes à taper dans le terminal commencent avec le symbole '$'.
|
||||||
|
Le résultat des commandes sera affiché juste en dessous de la commande tapé.
|
||||||
|
- Note taken on <span class="timestamp-wrapper"><span class="timestamp">[2020-10-09 ven. 00:12] </span></span>
|
||||||
|
Pour les exemples donnés dans le guide nous serons l'utilisateur Sam.
|
||||||
|
|
||||||
|
|
||||||
|
<a id="orga2bfd98"></a>
|
||||||
|
|
||||||
|
## Créer son compte gitea
|
||||||
|
|
||||||
|
Vous voulez contribuer, proposer vos corrections ou tester de nouvelles fonctionnalités ?
|
||||||
|
Vous êtes au bon endroit.
|
||||||
|
Pour commencer, créez-vous un compte sur le serveur de dépôts git que je met à disposition à cette adresse : <https://sys4.fr/gitea>
|
||||||
|
Une fois inscrit vous pouvez vous connecter et ainsi commencer votre participation.
|
||||||
|
|
||||||
|
|
||||||
|
<a id="org312d59a"></a>
|
||||||
|
|
||||||
|
## Créer des tickets de bugs
|
||||||
|
|
||||||
|
Si vous constatez un bug sur le serveur NALC vous pouvez déjà le rapporter directement en jeux avec la commande /report. Cette manière de faire est en général réservée aux joueurs qui n'ont pas de connaissances en développement.
|
||||||
|
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="orgbbde114"></a>
|
||||||
|
|
||||||
|
### Où poster les tickets
|
||||||
|
|
||||||
|
Pour des raisons pratiques les tickets concernants un bug du jeux ou qui semble provenir d'un mod en particulier, seront à poster dans le dépôt [nalc-server-mods](https://sys4.fr/gitea/nalc/nalc-server-mods/issues) de l'organisation [Notre Ami Le Cube](https://sys4.fr/gitea/nalc).
|
||||||
|
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="orgef281b4"></a>
|
||||||
|
|
||||||
|
## Créer et installer **sa** version de NALC
|
||||||
|
|
||||||
|
Ici sera décrite l'installation du serveur avec l'intention de pouvoir proposer ses modifications (Pull Requests ou PR en abrégé). Donc cela sous-entend que vous devrez travailler sur vos propres bifurcations des dépôts que vous voudrez modifier (forks).
|
||||||
|
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="org01b3988"></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 :
|
||||||
|
![img](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 :
|
||||||
|
|
||||||
|
- <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="org8365c7d"></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 :
|
||||||
|
|
||||||
|
$ cd ~
|
||||||
|
$ git clone https://sys4.fr/gitea/Sam/nalc-server.git
|
||||||
|
|
||||||
|
|
||||||
|
<a id="org0aaabe4"></a>
|
||||||
|
|
||||||
|
### Faire l'installation du serveur avec vos dépôts
|
||||||
|
|
||||||
|
Toujours depuis votre terminal, faire l'installation de la branche dev du serveur:
|
||||||
|
|
||||||
|
$ cd ~/nalc-server
|
||||||
|
$ ./install.sh --url https://sys4.fr/gitea/Sam dev
|
||||||
|
|
||||||
|
|
||||||
|
<a id="orgaaaa093"></a>
|
||||||
|
|
||||||
|
### Configuration de fichiers
|
||||||
|
|
||||||
|
Après l'installation il faut configurer quelques fichiers.
|
||||||
|
|
||||||
|
1. minetest.conf
|
||||||
|
|
||||||
|
Changer la valeur "name = sys4" par "name = Sam" pour définir le joueur qui sera l'administrateur.
|
||||||
|
|
||||||
|
2. start.sh
|
||||||
|
|
||||||
|
Dans ce script bash, changer les variables suivantes avec ces valeurs :
|
||||||
|
|
||||||
|
- serverpath="/home/Sam/nalc-server"
|
||||||
|
- world="$serverpath/minetest/worlds/nalc-dev"
|
||||||
|
|
||||||
|
Plus bas, dans la commande qui lance ./minetestserver changer le port (–port …) avec la valeur **30000**
|
||||||
|
|
||||||
|
3. shutdown.sh
|
||||||
|
|
||||||
|
Dans ce script bash, changer les variables suivantes avec ces valeurs :
|
||||||
|
|
||||||
|
- serverpath="/home/Sam/nalc-server"
|
||||||
|
- world="nalc-dev"
|
||||||
|
- branch="dev"
|
||||||
|
|
||||||
|
4. backup.sh (optionnel)
|
||||||
|
|
||||||
|
À modifier comme souhaité si vous voulez utiliser cette fonctionnalité.
|
||||||
|
Ce script en l'état ne permet de sauvegarder un serveur que si le backend utilisé est postgresql.
|
||||||
|
|
||||||
|
|
||||||
|
<a id="orgd7fa3e9"></a>
|
||||||
|
|
||||||
|
### Désactiver le mod irc et irc<sub>commands</sub>
|
||||||
|
|
||||||
|
Je prends cet exemple car c'est celui que vous serez amené à faire le plus souvent et que je recommende fortement d'ailleurs. Bien sûr cela peut s'appliquer à tous les mods que vous souhaitez désactiver.
|
||||||
|
Il faut éditer le fichier **upgrade.sh** vers la ligne **108** pour y ajouter dans la variable **mods** la liste des mods à désactiver. Voici un extrait de ce à quoi cela doit ressembler :
|
||||||
|
|
||||||
|
elif [[ $BRANCH == "dev" || $BRANCH == "1.2" || $BRANCH == "1.3" || $BRANCH == "stable" ]]; then
|
||||||
|
mods="3d_armor_ip 3d_armor_sfinv 3dmushrooms irc irc_commands"
|
||||||
|
fi
|
||||||
|
|
||||||
|
Ensuite appliquer le changement qui restera permanent en exécutant le script upgrade de la façon suivante :
|
||||||
|
|
||||||
|
$ ./upgrade.sh -w nalc-dev -b dev -f worldmt
|
||||||
|
|
||||||
|
Le fichier **world.mt** a été regénéré pour vous par le script.
|
||||||
|
Plus tard, si le fichier **world.mt** devait être régénéré pour une autre raison, vous n'aurez pas à vous soucier de la désactivation de ces mods puisque mémorisés dans le script.
|
||||||
|
Pour les réactiver il faudra simplement les supprimer du script puis éxécuter le script de nouveau comme précédemment.
|
||||||
|
|
||||||
|
|
||||||
|
<a id="orgfa3596f"></a>
|
||||||
|
|
||||||
|
### Changer le backend de la map (optionnel)
|
||||||
|
|
||||||
|
Le backend de la map est configuré par défaut pour être en **leveldb**, à moins que vous ayez choisis de faire l'installation avec un backend en **potgresql**.
|
||||||
|
Libre à vous de changer le backend par ce que vous souhaitez tant que vous n'avez pas encore lancé le serveur.
|
||||||
|
Pour ce faire, éditez le fichier **world.mt** qui se trouve dans le dossier racine du serveur (là où vous êtes déjà normalement), puis changer le backend par une autre valeur comme **sqlite3** par exemple.
|
||||||
|
Quand vous aurez modifié ce fichier, il faut l'appliquer à votre world.
|
||||||
|
Pour cela il faut lancer le script **upgrade.sh** de nouveau de la même manière que précédemment :
|
||||||
|
|
||||||
|
$ ./upgrade.sh -w nalc-dev -b dev -f worldmt
|
||||||
|
|
||||||
|
|
||||||
|
<a id="org921b6d8"></a>
|
||||||
|
|
||||||
|
## Lancer le serveur
|
||||||
|
|
||||||
|
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="org253d4e7"></a>
|
||||||
|
|
||||||
|
### Manière classique
|
||||||
|
|
||||||
|
$ cd minetest/bin
|
||||||
|
$ ./minetestserver --gameid nalc_game --port 30000 --worldname nalc-dev
|
||||||
|
|
||||||
|
Pour arrêter le serveur il vous suffira de faire les touches **[CTRL+C]** du clavier.
|
||||||
|
|
||||||
|
|
||||||
|
<a id="orga671518"></a>
|
||||||
|
|
||||||
|
### Avec shutdown.sh
|
||||||
|
|
||||||
|
Oui ça peut paraître bizarre mais de lancer le serveur avec ce script permettra de le lancer en arrière plan et il vous rendra la main sur votre terminal.
|
||||||
|
De plus, si le serveur lancé de cette façon venait à crasher plus tard, il sera relancé automatiquement au bout de 25 secondes.
|
||||||
|
Le rôle premier de ce script est d'éteindre proprement le serveur, mais permet aussi de le relancer. C'est ce que nous allons faire, même si le serveur n'a pas encore démarré.
|
||||||
|
Ce script est pratique pour être lancé en tâche cron au démarrage de votre ordinateur.
|
||||||
|
|
||||||
|
$ ./shutdown.sh -r
|
||||||
|
|
||||||
|
Au bout de quelques secondes, vous vous retrouverez à nouveau sur le prompt de votre terminal pendant que le serveur est entrain de se lancer en arrière plan.
|
||||||
|
Dans ce contexte pour voir les logs du serveur en temps réèl vous pouvez lancer la commande suivante depuis n'importe quel terminal :
|
||||||
|
|
||||||
|
$ tail -f ~/nalc-server/logs/moredebug.log
|
||||||
|
|
||||||
|
Pour arrêter le serveur :
|
||||||
|
|
||||||
|
$ ./shutdown.sh
|
||||||
|
|
||||||
|
|
||||||
|
<a id="org9a94502"></a>
|
||||||
|
|
||||||
|
## Proposer vos modifications
|
||||||
|
|
||||||
|
Vous avez réussi à lancer votre propre fork du serveur, mais celui-ci est identique à l'original pour le moment et n'intègre pas encore vos corrections ou les changements qui vous tiennent tant à coeur.
|
||||||
|
Au travers de l'exemple suivant, voici une méthode pour modifier un mod que vous aurez bifurqué (fork) et que vous intégrerez à votre serveur.
|
||||||
|
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="org63cf764"></a>
|
||||||
|
|
||||||
|
### Modifier un mod
|
||||||
|
|
||||||
|
- Note taken on <span class="timestamp-wrapper"><span class="timestamp">[2020-10-10 sam. 10:04] </span></span>
|
||||||
|
Pour illustrer les exemples suivants, nous modifierons le mod riesenpilz toujours en tant qu'utilisateur Sam.
|
||||||
|
|
||||||
|
1. Déterminer le dépôt d'origine du mod
|
||||||
|
|
||||||
|
Cette étape est importante car vous devez travailler sur une bifurcation du dépôt d'origine.
|
||||||
|
La commande suivante permet de connaître l'url du dépôt d'origine.
|
||||||
|
|
||||||
|
$ cd ~/nalc-server/nalc-server-mods/riesenpilz
|
||||||
|
$ git remote get-url origin
|
||||||
|
https://sys4.fr/gitea/nalc/riesenpilz.git
|
||||||
|
|
||||||
|
2. Bifurcation du mod
|
||||||
|
|
||||||
|
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 :
|
||||||
|
![img](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
|
||||||
|
|
||||||
|
Actuellement le submodule git riesenpilz de dépôt nalc-server-mods pointe toujours vers le dépôt d'origine. Il faut changer cela afin que le submodule puisse être synchronisé avec votre propre bifurcation.
|
||||||
|
Voici comment faire :
|
||||||
|
|
||||||
|
$ cd ~/nalc-server/nalc-server-mods
|
||||||
|
$ git submodule set-url riesenpilz https://sys4.fr/gitea/Sam/riesenpilz.git
|
||||||
|
Synchronisation de l'URL sous-module pour 'riesenpilz'
|
||||||
|
|
||||||
|
Cette commande a permit de modifier le fichier .gitmodules présent à la racine du dépôt nalc-server-mods.
|
||||||
|
Pour voir comment il a été modifié vous pouvez faire la commande suivante :
|
||||||
|
|
||||||
|
$ git diff
|
||||||
|
diff --git a/.gitmodules b/.gitmodules
|
||||||
|
index 91c5a9e..3971c3d 100644
|
||||||
|
--- a/.gitmodules
|
||||||
|
+++ b/.gitmodules
|
||||||
|
@@ -354,7 +354,7 @@
|
||||||
|
url = https://sys4.fr/gitea/nalc/random_messages.git
|
||||||
|
[submodule "riesenpilz"]
|
||||||
|
path = riesenpilz
|
||||||
|
- url = https://sys4.fr/gitea/nalc/riesenpilz.git
|
||||||
|
+ url = https://sys4.fr/gitea/Sam/riesenpilz.git
|
||||||
|
[submodule "signs_lib"]
|
||||||
|
path = signs_lib
|
||||||
|
url = https://sys4.fr/gitea/mtcontrib/signs_lib.git
|
||||||
|
lines 1-13/13 (END)
|
||||||
|
|
||||||
|
On voie 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 :
|
||||||
|
|
||||||
|
$ git status
|
||||||
|
Sur la branche dev
|
||||||
|
Votre branche est à jour avec 'origin/dev'.
|
||||||
|
|
||||||
|
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é : .gitmodules
|
||||||
|
|
||||||
|
aucune modification n'a été ajoutée à la validation (utilisez "git add" ou "git commit -a")
|
||||||
|
|
||||||
|
$ git commit -a -m "[riesenpilz] Fork du dépôt"
|
||||||
|
[dev 6582c8f] [riesenpilz] Fork du dépôt
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
$ git log
|
||||||
|
commit 6582c8f90f2f2dafe083b5ef4b414aed0a3d73c5 (HEAD -> dev)
|
||||||
|
Author: Sam <samedi@monemail.fr>
|
||||||
|
Date: Sat Oct 10 12:21:39 2020 +0200
|
||||||
|
|
||||||
|
[riesenpilz] Fork du dépôt
|
||||||
|
|
||||||
|
commit 2e46254d4fe739d9f4d340d4ff916da1eeccb395 (grafted, origin/dev)
|
||||||
|
Author: sys4 <pouet@sys4.fr>
|
||||||
|
Date: Mon Sep 28 20:58:00 2020 +0200
|
||||||
|
|
||||||
|
Maj de plusieurs mods
|
||||||
|
|
||||||
|
gauges, item_drop, maptools, nether
|
||||||
|
lines 1-13/13 (END)
|
||||||
|
|
||||||
|
4. TODO La suite…
|
||||||
|
|
Loading…
Reference in New Issue
Block a user