Contributions can be bug reports, feature requests, testing and documentation
in addition to code. Please see the github guide on
[Collaborating on projects using issues and pull requests](https://help.github.com/categories/collaborating-on-projects-using-issues-and-pull-requests/) for details.
To make this understanding explicit -- and for you to assert
that you have the right to make the contribution -- commits must be
signed off indicating acceptance of the
[Developer Certificate of Origin 1.1](https://developercertificate.org/).
A nice explanation of the DCO has been provided by
[Karl Fogel](https://www.red-bean.com/kfogel/)
in his excellent book [Producing Open Source Software](https://producingoss.com/en/contributor-agreements.html#developer-certificate-of-origin).
An explanation of the "sign-off" procedure is given by
[Linus Torvalds](https://en.wikipedia.org/wiki/Linus_Torvalds) in [Linux](https://github.com/torvalds/linux/blob/master/Documentation/process/submitting-patches.rst#11-sign-your-work---the-developers-certificate-of-origin).
## Code of Conduct
Please note that this project is released with a
[Contributor Code of Conduct](CODE_OF_CONDUCT.md)
(adopted from the [Contributor Covenant v2.0](https://www.contributor-covenant.org/)).
By participating in this project you agree to abide by the
[Contributor Code of Conduct](CODE_OF_CONDUCT.md)
(please read the full text so that you can understand what actions will and
will not be tolerated).
## Contribution Workflow
This is an overview of the contribution workflow:
* Fork the repository on Github
* Create a topic branch from where you want to base your work (usually from the master branch)
* Check the formatting rules from existing code (no trailing whitespace, mostly default indentation)
* Ensure any new code is well-tested, and if possible, any issue fixed is covered by one or more new tests
* Make commits to your branch using the following guidelines:
* Start with a subject line (beginning with a capital, ending without a period, no more than 50 characters)
* If you use **caff** (from [signing-party](https://packages.debian.org/sid/signing-party)) to sign and distribute signatures please verify that the *separate* [caff configuration is accurate](https://github.com/tmarble/kspsig).
Simply paste the contents of that file in the **SSH and GPG keys** section of your [Github settings](https://help.github.com/articles/adding-a-new-gpg-key-to-your-github-account/).