Contributing
************

**Thank you for considering contributing to khard!**

* Contributing

* Benchmarking, profiling and performance

* API Reference

Khard is developed on Github where you are welcome to post bug
reports, feature requests or join the discussion in general.


Bug reports
===========

If you want to report a bug keep in mind that the following things
make it much easier for maintainers to help:

* update to the latest version if possible and verify the bug there

* report the version(s) that are affected

* state the python version you are using

* if there are stack tracebacks post them with your bug report

* supply a minimal configuration (config file and vcards) to reproduce
  the error


Feature requests
================

Please stick to the following standards when you open pull requests:

* Khard’s development tries to follow Vincent’s branching model so
  normal pull requests should be made against the develop branch. Only
  important bug fixes that affect the current release should be opened
  against master.

* Write “good” commit messages, especially a proper subject line.
  This is also explained in the Git book.

* Format your python code according to PEP 8.  Tools like pylint also
  help in writing maintainable code.

* Khard has a test suite, please provide tests for bugs that you fix
  and also for new code and new features that are introduced.

* Please verify *all* tests pass before sending a pull request, they
  will be checked again in CI but it might be a lot faster to check
  locally first: travis


Development
===========

In order to start coding you need to fetch the develop branch:

   git clone https://github.com/lucc/khard
   cd khard
   python setup.py build  # to generate the version.py file
   python -m khard --help
   # or
   pip3 install --editable .
   khard --help

Alternatively you can use the "setup.py" script directly.  If you want
to isolate khard from your system Python environment you can use a
virtualenv to do so.
