Contributing to Python-OVH
==========================

This project accepts contributions. In order to contribute, you should
pay attention to a few things:

1. your code must follow the coding style rules
2. your code must be unit-tested
3. your code must be documented
4. your work must be signed
5. the format of the submission must be email patches or GitHub Pull Requests


Coding and documentation Style:
-------------------------------

- The coding style follows `PEP-8: Style Guide for Python Code <http://www.python.org/dev/peps/pep-0008/>`_ (~100 chars/lines is a good limit)
- The documentation style follows `PEP-257: Docstring Conventions <http://www.python.org/dev/peps/pep-0257/>`_

A good practice is to frequently run you code through `pylint <http://www.pylint.org/>`_
and make sure the code grades does not decrease.

Submitting Modifications:
-------------------------

The contributions should be email patches. The guidelines are the same
as the patch submission for the Linux kernel except for the DCO which
is defined below. The guidelines are defined in the
'SubmittingPatches' file, available in the directory 'Documentation'
of the Linux kernel source tree.

It can be accessed online too:

https://www.kernel.org/doc/Documentation/process/submitting-patches.rst

You can submit your patches via GitHub

Licensing for new files:
------------------------

Python-OVH is licensed under a (modified) BSD license. Anything contributed to
Python-OVH must be released under this license.

When introducing a new file into the project, please make sure it has a
copyright header making clear under which license it's being released.

Developer Certificate of Origin:
--------------------------------

To improve tracking of contributions to this project we will use a
process modeled on the modified DCO 1.1 and use a "sign-off" procedure
on patches that are being emailed around or contributed in any other
way.

The sign-off is a simple line at the end of the explanation for the
patch, which certifies that you wrote it or otherwise have the right
to pass it on as an open-source patch.  The rules are pretty simple:
if you can certify the below:

By making a contribution to this project, I certify that:

(a) The contribution was created in whole or in part by me and I have
    the right to submit it under the open source license indicated in
    the file; or

(b) The contribution is based upon previous work that, to the best of
    my knowledge, is covered under an appropriate open source License
    and I have the right under that license to submit that work with
    modifications, whether created in whole or in part by me, under
    the same open source license (unless I am permitted to submit
    under a different license), as indicated in the file; or

(c) The contribution was provided directly to me by some other person
    who certified (a), (b) or (c) and I have not modified it.

(d) The contribution is made free of any other party's intellectual
    property claims or rights.

(e) I understand and agree that this project and the contribution are
    public and that a record of the contribution (including all
    personal information I submit with it, including my sign-off) is
    maintained indefinitely and may be redistributed consistent with
    this project or the open source license(s) involved.


then you just add a line saying

    Signed-off-by: Random J Developer <random@developer.org>

using your real name (sorry, no pseudonyms or anonymous contributions.)
