# How to contribute

## Reporting Bugs
If you notice a bug, please open an issue.

The issue should include the expected behaviour and the observed behaviour.
Additionally the issue should contain a description, which is as detailed as possible.
This description can be given as a list of steps to execute or ideally as a snippet of code. If the code requires a kdbx file to exist, it is also great to provide one.

## Requesting Features
This library is far from complete so it is very likely that a functionality that was expected to be there is not supported.
Additionally KeePass is regularly updated and new features that are available there might not be reflected here.

When requesting a feature, please try to write in an as detailed as possible fashion the desired behaviour as well as your usecase.

## Contributing Code
In order to contribute code, please raise an issue to have a discussion about the desired changes.
Once we have come to a rough alignment, please fork this repository, make the changes you want to make, and create a pull request.
If there is an open issue for the code, please reference the issue in the commit messages or at least in the merge request text.
Otherwise please refer to [Reporting Bugs](#reporting-bugs) or [Requesting Features](#requesting-features) when writing an explanation for the pull request.
