Contributing

Thank you for considering contributing to khard!

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: ci status

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.