1 # Nominatim contribution guidelines
 
   5 Bugs can be reported at https://github.com/openstreetmap/Nominatim/issues.
 
   6 Please always open a separate issue for each problem. In particular, do
 
   7 not add your bugs to closed issues. They may looks similar to you but
 
   8 often are completely different from the maintainer's point of view.
 
  10 ## Workflow for Pull Requests
 
  12 We love to get pull requests from you. We operate the "Fork & Pull" model
 
  15 https://help.github.com/articles/using-pull-requests
 
  17 You should fork the project into your own repo, create a topic branch
 
  18 there and then make one or more pull requests back to the openstreetmap repository.
 
  19 Your pull requests will then be reviewed and discussed. Please be aware
 
  20 that you are responsible for your pull requests. You should be prepared
 
  21 to get change requests because as the maintainers we have to make sure
 
  22 that your contribution fits well with the rest of the code. Please make
 
  23 sure that you have time to react to these comments and amend the code or
 
  24 engage in a conversion. Do not expect that others will pick up your code,
 
  25 it will almost never happen.
 
  27 Please open a separate pull request for each issue you want to address.
 
  28 Don't mix multiple changes. In particular, don't mix style cleanups with
 
  29 feature pull requests. If you plan to make larger changes, please open
 
  30 an issue first or comment on the appropriate issue already existing so
 
  31 that duplicate work can be avoided.
 
  35 Nominatim historically hasn't followed a particular coding style but we
 
  36 are in process of consolidating the style. The following rules apply:
 
  38  * Python code uses the official Python style
 
  41    * all other file types use 4 spaces
 
  42    * [BSD style](https://en.wikipedia.org/wiki/Indent_style#Allman_style) for braces
 
  44    * spaces before and after equal signs and operators
 
  46    * no spaces after opening and before closing bracket
 
  47    * leave out space between a function name and bracket
 
  48      but add one between control statement(if, while, etc.) and bracket
 
  49  * for PHP variables use CamelCase with a prefixing letter indicating the type
 
  50    (i - integer, f - float, a - array, s - string, o - object)
 
  52 The coding style is enforced with PHPCS and pylint. It can be tested with:
 
  55 phpcs --report-width=120 --colors .
 
  56 pylint3 --extension-pkg-whitelist=osmium nominatim
 
  61 Before submitting a pull request make sure that the tests pass: