Manuel:Pywikibot/Gerrit

This page is a translated version of the page Manual:Pywikibot/Gerrit and the translation is 95% complete.
Outdated translations are marked like this.

Lexique

  • Git - système de contrôle de version. Il remplace SVN.
  • Gerrit - plate-forme de relecture de code (https://gerrit.wikimedia.org). Remplace Special:CodeReview
  • core - branche (master) actuelle connue précédemment comme "rewrite".

Pour les utilisateurs

Clients Git

  • Utilisateurs de macOS ou de Linux : Git en ligne de commande - $1 ou utilisez l'installation de Git (Homebrew, macOS)

- https://git-scm.com/ or brew install git(Homebrew, macOS)
Par exemple, pour télécharger la branche core en ligne de commande :

$ git clone --recursive --branch stable https://gerrit.wikimedia.org/r/pywikibot/core.git

Pour mettre à jour :

# En considérant que nous sommes déjà sur la branche ''core''
$ git pull origin stable
$ git submodule update # Updates i18n messages

Si vous êtes paresseux et que voulez pouvoir faire tout ça d'un seul coup, vous pouvez :

# En considérant que nous sommes déjà sur la branche ''core''
$ git pull origin stable --recurse-submodules # This updates everything

Notez que les dépôts peuvent être très gros quelques fois (~70Mb). Si cela pose problème, utilisez :

$ git clone --recursive --branch stable --depth 3 https://gerrit.wikimedia.org/r/pywikibot/core.git

pour ne récupérer que les dernières versions.


Utilisateurs SVN

Euh, mais... je ne veux pas utiliser Git. Puis-je encore utiliser SVN ? Oui ! Mais n'oubliez pas de configurer et de mettre à jour séparément le sous-module i18n.

$ svn co https://github.com/wikimedia/pywikibot/tags/stable
$ cd stable/scripts
$ svn co https://github.com/wikimedia/pywikibot-i18n/trunk i18n

Pour mettre à jour, il faut juste faire :

$ svn up stable
$ cd stable/scripts
$ svn up i18n
Sous Windows, il est possible d'utiliser l'extension graphique TortoiseSVN. La documentation est ici.

URLs

Votre client vous demandera probablement l'URL du dépôt. Les urls sont construites sur le format : https://gerrit.wikimedia.org/r/pywikibot/[repo name].

Ainsi pour le noyau :

https://gerrit.wikimedia.org/r/pywikibot/core.

Compilations de la nuit

Vous pouvez télécharger les paquets complets ou voir le code source via la page de téléchargement de Wikimedia Forge


Si vous avez besoin de plus d'aide pour configurer votre Pywikibot, consultez le canal IRC #pywikibot connect ou la liste de diffusion pywikibot@.


Pour les développeurs

Comment soumettre des corrections (patches)... configurer git/gerrit. etc.

Lire ces indications, puis suivre les étapes dans Gerrit/Getting started et exécuter ceci :

#pour manipuler le noyau
$ git clone --recursive ssh://USERNAME@gerrit.wikimedia.org:29418/pywikibot/core.git

et après que le code ait été modifié, suivre les étapes dans Gerrit/Tutoriel

Sous Windows
Les développeurs sous Windows peuvent également utiliser Gerrit/TortoiseGit tutorial pour les informations supplémentaires.

Exemple (pas à pas)

Exécuter chacune des étapes suivantes :

  1. configurer son logiciel :
    1. si ce n'est pas déjà fait pour l'accès svn ; créer une clé SSH, un compte développeur et ajoutez votre clé publique à Gerrit et à Wikitech
    2. installer le paquet 'git'
    3. installer le paquet 'git-review'
      • celui par openstack [1], et NON PAS celui par Facebook
      • toute version comme les 1.12, 1.21, mais PAS LA v1.18
  2. clôner et configurer son dépôt :
    1. clôner le dépôt Git avec tous les sous-modules en utilisant (comme svn checkout)
      $ git clone --recursive ssh://USERNAME@gerrit.wikimedia.org:29418/pywikibot/core.git pywikibot-git
      
      et attendre, cette étape dure quelques instants
    2. entrer dans le répertoire
      $ cd pywikibot-git
      
    3. configurer les paramètres Git pour ce dépôt/répertoire uniquement (pas globalement, dans le cas par exemple ou vous auriez différents pseudo sur plusieurs projets)
      $ git config user.email "EMAIL"
      
      et
      $ git config user.name "USERNAME"
      
      pour configurer cela globalement, utiliser le paramètre --global
    4. configurer le terminal ou la console pour voir les messages en anglais (afin de travailler proprement durant la relecture de code Gerrit/git)
      $ alias git="LANG=C git"
      
      faire ceci à chaque ouverture d'une nouvelle console; pour configurer cela de manière permanente, ajouter ces lignes dans votre fichier bashrc ou fichier de configuration équivalent
    5. configurer la revue Git sur ce dépôt uniquement
      $ git review -s
      
      et entrez à nouveau votre NOM D'UTILISATEUR , c'est une étape importante - si vous la sautez, conformément au Tutoriel Gerrit/Push, le git review final ci-dessous va échouer (il faut valider vos modifications avec commit pour la relecture de code) - bien que vous puissiez encore sauver la situation puis
  3. travaillez sur le dépôt, par exemple validez vos corrections pour la relecture avec commit :
    1. passer sur la branche master (peut être pas utile)
      $ git checkout master
      
    2. mettez à jour en ligne la branche courante à réviser (comme svn update)
      $ git pull
      
    1. créez votre propre branche locale temporaire pour travailler tmpl|0=$ git checkout -b $1 NOM_SIGNIFICATIF_DE_BRANCHE et essayez de choisir un NOM_SIGNIFICATIF_DE_BRANCHE avec l'aide des conseils de nommage des branches à disposition – la branche pourra être supprimée si elle n'est plus utile avec tmpl|0=$ git branch -D $1 NOM_SIGNIFICATIF_DE_BRANCHE
    1. écrivez maintenant votre code; lorsque vous êtes prêt a passer à l'étape suivante, voyez les commandes Git add, rm et mv pour respectivement ajouter, supprimer ou renommer des fichiers
    2. validez vos modifcations avec commit sur votre branche locale temporaire avec
      $ git commit --all
      
      (vous pouvez utiliser -a au lieu de --all et -R au lieu de --no-rebase) et, comme pour svn, entrez un message de validation significatif, par exemple une courte description de vos modifications de code
    3. vérifiez éventuelllement vos modifications en affichant les données que vous avez validées
      $ git show HEAD
      
      et assurez-vous d'avoir envoyé ce que vous souhaitiez
    4. envoyez vos données sur le dépôt en ligne par gerrit for review (comme pour svn commit)
      $ git review
      
    5. enfin rendez-vous sur Gerrit, cliquez sur vos modifications et insérez un nom de relecteur dans le champ de saisie à côté du bouton Add Reviewer
  1. optionnel /déclarer des paramètres supplémentaires :
    • permettre l'expansion des mots-clés RCS (tels que svn:keywords $Id$) en utilisant les accroches Git (détaillé ici - en allemand seulement)

Phabricator

Les corrections seront liées à une tâche Phabricator automatiquement si vous mentionnez cette tâche dans le texte tel que 'Bug: T12345' sur une ligne juste avant 'Change-Id: ....'. Voir Gerrit/guide des messages Commit pour plus d'informations.

Problèmes, bogues et palliatifs

Messages du robot jenkins

https://integration.wikimedia.org/ci/job/pywikibot-core-tox-flake8/2591/console : FAILURE in ?s (non-voting)

Les corrections soumises n'ont pas passé les vérifications flake8 concernant le style du code. Cela dit rien sur la fonctionnalité du code mais indique qu'il y a des problèmes de syntaxe ou de style.

https://integration.wikimedia.org/ci/job/pywikibot-core-tox-flake8-docstrings-mandatory/560/console : FAILURE in ?s (non-voting)

Ces corrections validées ont échoué aux contrôles obligatoires du style du code pep257. Cela dit rien sur la fonctionnalité du code mais indique qu'il y a des problèmes avec la documentation en ligne.

https://integration.wikimedia.org/ci/job/pywikibot-core-tox-nose/1448/console : FAILURE in ?s (non-voting)

L'ensemble de corrections validé n'a pas passé avec succès les tests de contrôle qui précèdent la fusion. Cela indique que le code a échoué aux vérifications de base, mais cette passe ne renseigne en rien sur la fonctionnalité du code modifié. Il existe un ensemble plus fourni de tests que les développeurs devraient faire passer avant de soumettre leur code, et qui réalisera ultérieurement la fusion (merge).

This change could not be automatically merged with the current state of the repository. Please rebase your change and upload a new patchset.

L'ensemble des corrections ne peut pas être fusionné automatiquement dans le HEAD courant. Prenez en compte Echec de la construction dû aux conflicts de fusion (merge) pour une solution possible.

Vous trouverez des informations complémentaires sur Comment soumettre un patch et Messages de relecture Git concernant les validations multiples.