Dev zone/Create devserver access/fr

From Nasqueron Agora

Guide complet : Configuration de l'accès devserver avec Git et Arcanist

Ce guide explique comment configurer votre environnement de développement pour contribuer au projet Operations.

1. Création du dossier de travail

Créez un dossier sur votre PC Windows pour organiser tous les fichiers du projet :

C:\STAGE 2025

C'est dans ce dossier que vous allez ranger tout ce qui concerne le projet Operations.


2. Récupération et clonage du dépôt Operations

2.1 Récupération de l'URL du dépôt

Rendez-vous sur la page du dépôt :

Copiez l'URL Git pour pouvoir cloner le projet.

2.2 Clonage du dépôt

Ouvrez PowerShell et placez-vous dans votre dossier :

cd "C:\STAGE 2025"
git clone https://devcentral.nasqueron.org/source/operations.git

Git crée un dossier operations avec tous les fichiers du projet.


3. Gestion de Git et création de branche dans WSL

3.1 Se placer dans le dossier du projet

Depuis WSL (Ubuntu), placez-vous dans le dossier du projet :

cd /mnt/c/STAGE\ 2025/operations

3.2 Création d'une nouvelle branche

Créez une nouvelle branche pour vos modifications :

git switch -c feature/add-gui-user

Avertissement|Si la branche existe déjà, Git affichera : fatal: a branch named 'feature/add-gui-user' already exists

Dans ce cas, basculez simplement sur la branche existante :

git switch feature/add-gui-user



4. Modifications dans les fichiers du dépôt

4.1 Vérification de l'emplacement des fichiers

Vérifiez où se trouvent les vrais fichiers users.sls et groups.sls :

ls -la pillar/core/

Important|Les vrais fichiers sont dans pillar/core/, pas dans operations/pillar/core/.

4.2 Ajout de votre utilisateur dans users.sls

Ouvrez le fichier avec VS Code :

pillar/core/users.sls

Ajoutez votre utilisateur dans la section shellusers: par ordre alphabétique :

ptdradmin:
  fullname: Doba Gui
  ssh_keys:
    - ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAFtlR4OeXNHfJXNrvrLeU9nGu7ufcxc38xUGqlwiY5L doba.guimartinien@gmail.com
  uid: 1001

4.3 Ajout de votre compte dans groups.sls

Ouvrez également le fichier :

pillar/core/groups.sls

Ajoutez-vous dans le groupe nasqueron :

shellgroups:
  Members:
    - ptdradmin

5. Commit des modifications

5.1 Suppression des fichiers créés par erreur

Si vous avez créé des fichiers vides dans operations/ :

rm -rf operations/

5.2 Ajout des bons fichiers

git add pillar/core/users.sls pillar/core/groups.sls

5.3 Commit des changements

git commit -m "Ajout de Doba Gui comme user et dans le groupe core"

5.4 Vérification du commit

git show HEAD

Vérifiez que vous voyez seulement les lignes que vous avez vraiment modifiées.

5.5 Modification du dernier commit (si nécessaire)

Si vous avez corrigé des fichiers après le commit :

git commit --amend

6. Premier essai de arc diff (échec - arc n'existe pas)

Essayez de lancer :

arc diff

Erreur attendue :

arc: command not found

Il faut installer Arcanist.


7. Installation d'Arcanist avec WSL

Pourquoi installer Arcanist ?

Arcanist (ou arc) est l'outil officiel de ligne de commande pour interagir avec Phabricator, le système de revue de code utilisé par le projet Operations.

  • Il permet de créer, mettre à jour et soumettre des révisions (arc diff) directement depuis votre environnement local
  • Il gère les linters et les tests automatiques configurés par le projet avant l'envoi de modifications
  • Sans Arcanist, vous ne pouvez pas soumettre vos changements pour revue ni intégrer les vérifications automatiques du projet

7.1 Mise à jour d'Ubuntu

Avant d'installer quoi que ce soit :

sudo apt update
sudo apt upgrade -y

7.2 Installation des dépendances

Arcanist a besoin de PHP et Git :

sudo apt install -y php-cli php-curl php-xml php-mbstring git curl unzip

7.3 Téléchargement d'Arcanist

Création d'un dossier pour Arcanist :

mkdir -p ~/phabricator
cd ~/phabricator

Téléchargement des fichiers :

git clone https://github.com/phacility/arcanist.git
git clone https://github.com/phacility/libphutil.git

7.4 Rendre arc accessible partout

Pour ne pas devoir écrire tout le chemin :

sudo ln -s ~/phabricator/arcanist/bin/arc /usr/local/bin/arc

Si le cache Bash ne reconnaît pas la commande :

hash -r

7.5 Vérification de l'installation

Test de la commande :

arc version

Note|Une erreur sur shellcheck-linter peut apparaître, mais la version devrait s'afficher. Répondre "y" pour continuer.


8. Deuxième essai de arc diff (échec - authentification requise)

Retournez dans le projet :

cd /mnt/c/STAGE\ 2025/operations
arc diff

Erreur attendue :

YOU NEED TO AUTHENTICATE TO CONTINUE

Il faut installer le certificat.


9. Authentification Arcanist

Pourquoi exécuter arc install-certificate ?

Cette commande permet d'associer votre environnement local à votre compte Phabricator via un token sécurisé.

  • Elle est nécessaire pour que Arcanist puisse créer, mettre à jour et soumettre vos révisions (arc diff) sur le serveur Phabricator
  • Sans ce certificat, Arcanist ne peut pas authentifier vos commandes et toutes les opérations de soumission de code échoueront
  • Le token est spécifique à votre compte et doit être généré depuis l'interface web de Phabricator

9.1 Installation du certificat

arc install-certificate

Suivez le lien fourni, récupérez le token API et collez-le dans le terminal. Arcanist est maintenant connecté à votre compte.


10. Troisième essai de arc diff (échec - shellcheck-linter manquant)

arc diff

Arc vous demande de choisir la branche de référence, choisissez origin/main.

Nouvelle erreur :

Failed to load library at location "shellcheck-linter"

11. Installation de shellcheck-linter

cd ~/phabricator
git clone https://github.com/pinterest/arcanist-linters.git shellcheck-linter

12. Quatrième essai de arc diff (échec - linter invalide)

Retournez dans le projet :

cd /mnt/c/STAGE\ 2025/operations
arc diff

Nouvelle erreur :

Linter 'shell' specifies invalid type 'shellcheck'

Le type shellcheck n'est pas reconnu.


13. Correction du linter shellcheck

Ouvrez .arclint avec VS Code et modifiez :

Avant :

"shell": {
  "type": "shellcheck",
  "include": ["(\\.sh$)"]
}

Après :

"shell": {
  "type": "text",
  "include": ["(\\.sh$)"]
}

Avertissement|Ne pas commiter ce changement, c'est juste pour que ça fonctionne localement.

Alternative : Bypass des tests si nécessaire :

arc diff --nolint

14. Cinquième essai de arc diff (échec - problème CRLF)

arc diff

Arc détecte 1,011 fichiers modifiés. C'est un problème de fins de ligne Windows/Linux.

14.1 Correction des problèmes de fins de ligne

git config --global core.autocrlf input
git restore .

Avertissement|Assurez-vous d'être bien dans /mnt/c/STAGE\ 2025/operations avant d'exécuter ces commandes.


15. Sixième essai de arc diff (succès !)

15.1 Vérification de l'état de Git

Pour vous assurer qu'il n'y a pas de fichiers non suivis :

git status

Résultat attendu : Aucun fichier non commité ne doit apparaître.

15.2 Lancement d'Arcanist

arc diff

Arc vous demande si vous voulez amend les changements dans .arclint :

Do you want to amend these 1 change(s) to the current commit? [y/N] y

Puis il vous demande si vous voulez utiliser le message sauvegardé :

Do you want to use this message? [Y/n] Y

15.3 Remplissage des informations de révision

L'éditeur (nano) s'ouvre avec les informations à remplir :

Summary: Ajout de Doba Gui comme user et dans le groupe core
Test Plan: Vérification de la syntaxe YAML et des informations utilisateur
Reviewers: dereckson
Subscribers:

15.4 Sauvegarde dans nano

  1. Sauvegarder le fichier :
    • Appuyez sur Ctrl + O (la lettre O, pas zéro)
    • Nano vous demandera le nom du fichier → appuyez sur Entrée pour garder le même
  2. Quitter nano :
    • Appuyez sur Ctrl + X

Après ça, vous retournez dans votre terminal et arc diff continuera le processus.

15.5 Pour mettre à jour une révision existante

Si vous voulez mettre à jour une révision existante (ex. : D3888) :

arc diff --update D3888

16. Vérification finale

Vérifiez que tout est propre :

git status

Aucun fichier ne doit rester non commité.

Assurez-vous que votre révision contient bien vos modifications :

arc diff

Succès|À ce stade, votre révision est prête à être relue par votre reviewer.


Résumé des problèmes rencontrés

Problème Solution
Fichiers vides dans operations/ rm -rf operations/ puis travailler dans pillar/core/
Cache Bash pour arc hash -r
Authentification manquante arc install-certificate
Bibliothèque shellcheck-linter manquante Cloner dans ~/phabricator/
Erreur linter shellcheck Changer "type": "shellcheck" en "type": "text" dans .arclint
Problème CRLF/LF git config --global core.autocrlf input puis git restore .

Points importants à retenir

Avertissement|

  • Toutes les commandes Git et Arcanist doivent être exécutées dans /mnt/c/STAGE\ 2025/operations, et non dans ~/phabricator.
  • Ne pas commiter les modifications du fichier .arclint (changement de shellcheck en text).
  • Les vrais fichiers sont dans pillar/core/, pas dans operations/pillar/core/.