Manual:Pywikibot/Development

How to report a bug
When you report a bug please try to include:


 * Pywikipediabot version in use. It's recommended to test if the bug is still present in latest Git revision available.
 * Python version (python -V) and operating system you use (e.g. Windows, Linux, MacOS...)
 * For above purpose, version.py will be useful.
 * A nice summary
 * Full description of the problem/report
 * How to reproduce bug full information (script, command line, family, and language used)
 * The console output provided by the script (included the Python traceback if you are reporting a crash)

To submit a new bug visit the bug tracker provided by SourceForge.

Development
If you have a function you want to have a bot for that is not yet provided by one of the bots, you can ask one of the programmers to write it for you. Or even better, you can try to work on the bots yourself. Python is a nice language, and not hard to learn. We will welcome you.

Commit access
To request commit access, first email the mailing list and explain what you'd like to work on. Once you've gotten a little community consensus that you should get access, submit a formal commit access request and mention that you'd like pywikipediabot commit access, and point to the mailing list thread where you got an OK from the pywikipediabot community. Example.

Working with source code
Follow steps in Gerrit/Getting started and run this: and after modifying codes follow steps in Gerrit/Tutorial
 * How to submit patches...configure git/gerrit. etc.

Example (step-by-step)
So for example if you want to work with compat (formerly known as trunk), do the following, step-by-step:
 * 1) setup your software:
 * 2) 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
 * 3) install 'git' package
 * 4) install 'git-review' package (the one by openstack, NOT the one by Facebook)
 * 5) clone and setup your repo:
 * 6) clone the git repo with all submodules by using (like  )   and wait, this step will take some time
 * 7) enter the directory
 * 8) config git setting for this repo/directory only (not global, in case e.g. you have different pseudo for multiple projects)   and   in order to configure this globally, use the   parameter
 * 9) config your terminal/console to output english messages (in order to work properly with git review, see Gerrit/git-review)   this has to be done every time a new console is started, in order to configure this permanently, put this into your   or similar setup file
 * 10) setup git review for this repo only   and enter your   again, this is an important step - if you forget it, according to Gerrit/Tutorial, the final   below (needed to commit your changes for review) will fail - though this can be still solved then
 * 11) work with the repo, e.g. commit patches for review:
 * 12) switch to the master branch (might not be needed)
 * 13) update the current branch to revision online (like  )
 * 14) create your own local temporary branch for working   and try to choose a   with the help of the branch naming tips available
 * 15) 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
 * 16) commit your changes to your local temporary branch with   (you can use   instead of   and   instead of  ) and, as used from svn, enter a meaningful commit message, e.g. a short description of your code changes
 * 17) optionally check your changes by looking at the committed data   and make sure that you are sending what you wanted to
 * 18) send the data to the online repository, resp. gerrit for review (like  )
 * 19) finally go to Gerrit, click on your change and write a reviewer name in the input box near the "Add Reviewer" button

Bot & Proxy
There is probably (not tested!) draft workaround described here.