# Contributing to Papillon

Papillon is an open project and any contributions which improve or extend Papillon is wellcomed. The purpose of this document is to make the contribution process easier.

## Contribution process

When you have written some code you want to contribute to Papillon, the first thing you should do is to ensure that your code is contained in one or several git commits which have commit messages appropriately describing their content.

The recommended way to send your code is to create a pull request on github containing the code. For this you have to push your commits into a fork of Papillon owned by you.
The code will be reviewed and discussed. If it is found suitable for inclusion into Papillon, your code will be merged into Papillon master repository.
Of course, feel free to ask for help at any time.

## License

By submitting contributions to Papillon, you give the right to publish your code under Papillon's license. In order to do so, you need to have the copyright for your code. If you do not hold the copyright, you have to ask the copyright holder for permission to contribute the code to Papillon.

Papillon's license (Mozilla Public License 2.0 - MPL) is a simple copyleft license. The MPL is designed to encourage contributors to share modifications they make to your code, while still allowing them to combine your code with code under other licenses (open or proprietary) with minimal restrictions.

Please note that the copyright over your code is fully retained by you and not transferred in any way to the Papillon project. However, you should be aware that there is no turning back: once your code is published under the MPL license, there is no way of revoking this license. Of course, you are free to not publish future versions of your code under the same license.

## Attribution

When you have contributed code to Papillon you and the content of your contribution will be mentioned in the project's AUTHORS.md file.
If, for some reason, you do not wish to be mentioned in the AUTHORS.md file, please just say so.

## Coding style

Papillon follows the coding style of PEP8.
All functions and classes should be sufficiently well documented.

## Becoming a main developer
Papillon's main developers, have the job of guiding and maintaining the future development of Papillon. They have administrative priviliges over the Papillon organization on github.

As Papillon is an open project, everyone is invited to step up to become a main developer. The current main developers will decide. In order to be accepted, an applicant should have made major contributions to Papillon, both in form of code and by taking part in discussions through github.
