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

It is recommended to create a virtualenv to isolate the development
environment for Khard from your system’s Python installation:

   python3 -m venv khard-dev-venv
   . khard-dev-venv/bin/activate

The you can install the dependencies with "pip":

   pip3 install --editable .
   khard --help

If you have the Nix package manager installed you can use the
"flake.nix" that is provided with Khard.  It provides an isolated
Python version with all dependencies with "nix develop".
