Contributing
============

How
---

All contributions must pass the test suite and must generate no warnings with the latest available version of mypy.

The best way of sending changes is to use git-send-mail to tiposchi@tiscali.it

It is acceptable also to use codeberg's pull request functionality.

Testing
-------

It is expected to run `make test` and `make mypy` before proposing changes.

The target `make full_tests` will run the tests on all the supported python versions. The script itself is experimental and might fail. I've only tested it on Debian unstable.


Copyright and license
---------------------

Contributors retain the copyright of their contributions. They must accept that the project uses GPL3 and LGPL3 licenses; but their contributions must be under LGPL3.

As a consequence the owners of the project can grant LGPL3 exceptions by giving permission to use the LGPL3 license to someone. But in general the owners of the project grant the use under GPL3.

Contributors have no control on who gets LGPL3 exceptions, but by retaining copyright they know the project will not be able to change license to anything more permissive than LGPL3.

Contributors contributing on behalf of companies are required to disclose the fact and to assign their copyright to the project owners. This can be done in a signed commit message.

Contributors must accept that the project might move to future versions of the GPL and LGPL, published by the Free Software Foundation, but that will not happen automatically and the decision will be made by the project owners if that should happen.
