Jump to navigation Jump to search
This page is a translated version of the page Manual:Pywikibot/Gerrit and the translation is 33% complete.
Other languages:
Deutsch • ‎English • ‎español • ‎français • ‎čeština • ‎العربية • ‎中文 • ‎日本語


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

Pour les utilisateurs

Clients Git

$ git clone --recursive --branch stable

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

Note that the repositories are somewhat large (~70MB). If this is an issue, use

$ git clone --recursive --branch stable --depth 3

to just retrieve the latest versions.

En utilisant SVN

Eh, 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 module i18n.

$ svn co
$ cd stable/scripts
$ svn co 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.


Votre client vous demandera probablement l'URL du dépôt. Les urls sont construites sur le format :[repo name].

So for core:

Nightly distributions

You can download the whole packages or browse the source code via download page in 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@.

For developers

How to submit patches...configure git/gerrit. etc.

Read the guidelines, then follow steps in Gerrit/Getting started and run this:

#for hacking core
$ git clone --recursive ssh://

and after modifying codes follow steps in Gerrit/Tutoriel

Developer using Windows may also use Gerrit/TortoiseGit tutorial for further informations.

Example (step-by-step)

Do the following, step-by-step:

  1. setup your software:
    1. if not done already for svn access; create an SSH key, a developer account and add your public key to gerrit as well as to wikitech
    2. install 'git' package
    3. install 'git-review' package
      • the one by openstack [1], NOT the one by Facebook
      • any version like 1.12, 1.21, but NOT v1.18
  2. clone and setup your repo:
    1. clone the git repo with all submodules by using (like svn checkout)
      $ git clone --recursive ssh:// pywikibot-git
      and wait, this step will take some time
    2. enter the directory
      $ cd pywikibot-git
    3. config git setting for this repo/directory only (not global, in case e.g. you have different pseudo for multiple projects)
      $ git config "EMAIL"
      $ git config "USERNAME"
      in order to configure this globally, use the --global parameter
    4. config your terminal/console to output english messages (in order to work properly with git review, see Gerrit/git-review#Troubleshooting)
      $ alias git="LANG=C git"
      this has to be done every time a new console is started, in order to configure this permanently, put this into your bashrc or similar setup file
    5. setup git review for this repo only
      $ git review -s
      and enter your USERNAME again, this is an important step - if you forget it, according to Gerrit/Tutorial#Push your change set to Gerrit, the final git review below (needed to commit your changes for review) will fail - though this can be still solved then
  3. work with the repo, e.g. commit patches for review:
    1. switch to the master branch (might not be needed)
      $ git checkout master
    2. update the current branch to revision online (like svn update)
      $ git pull
    3. create your own local temporary branch for working $ git checkout -b MEANINGFUL_BRANCH_NAME and try to choose a MEANINGFUL_BRANCH_NAME with the help of the branch naming tips available – the branch can be removed when not needed anymore with $ git branch -D MEANINGFUL_BRANCH_NAME
    4. now write some code; see the Git commands add, rm and mv to add, remove or rename files - when you're ready go to the next step
    5. commit your changes to your local temporary branch with
      $ git commit --all
      (you can use -a instead of --all and -R instead of --no-rebase) and, as used from svn, enter a meaningful commit message, e.g. a short description of your code changes
    6. optionally check your changes by looking at the committed data
      $ git show HEAD
      and make sure that you are sending what you wanted to
    7. send the data to the online repository, resp. gerrit for review (like svn commit)
      $ git review
    8. finally go to Gerrit, click on your change and write a reviewer name in the input box near the "Add Reviewer" button
  4. optionally/opt-in further settings:


Patches will be linked to a Phabricator task automatically if you mention 'Bug: T12345' in a line just before 'Change-Id: ....'. See Gerrit/guide des messages Commit for more information.

Problems, issues and work-a-rounds

jenkins-bot messages : FAILURE in ?s (non-voting)

The patchset committed did not pass flake8 code style checks. That says nothing about the functionality of the code but about the syntax and style. : FAILURE in ?s (non-voting)

The patchset committed did not pass mandatory pep257 code style checks. That says nothing about the functionality of the code but about the inline documentation. : FAILURE in ?s (non-voting)

The patchset committed did not pass pre-merge test suite. That indicates the code fails the basic tests, but a pass says nothing about the functionality of the modified code. There is a more extensive set of tests which developers should run pre-submission, and will run post merge.

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

The pachset cannot be merged automatically into current HEAD. Please consider Gerrit/Advanced usage#Build failed due to merge conflict for a solution.

More info about this can be found in Gerrit/Tutorial#How to submit a patch and Gerrit/Tutorial#git review complains about multiple commits.