blob: 1827d48cf20b93290c1800fbe601d1e920807cd8 [file] [log] [blame]
Laurens Van Houtven5a422982014-03-15 21:42:31 +01001Contributing
2============
Laurens Van Houtven290aba12014-03-14 15:20:18 +01003
4First of all, thank you for your interest in contributing to
Laurens Van Houtvendc06b702014-03-15 18:11:47 +01005pyOpenSSL!
Laurens Van Houtven290aba12014-03-14 15:20:18 +01006
Laurens Van Houtven5a422982014-03-15 21:42:31 +01007Filing bug reports
8------------------
Laurens Van Houtven290aba12014-03-14 15:20:18 +01009
10Bug reports are very welcome. Please file them on the Github issue
11tracker. Good bug reports come with extensive descriptions of the
12error and how to reproduce it. Reporters are strongly encouraged to
Laurens Van Houtven5a422982014-03-15 21:42:31 +010013include an `SSCCE <http://www.sscce.org/>`_.
Laurens Van Houtven290aba12014-03-14 15:20:18 +010014
Laurens Van Houtven5a422982014-03-15 21:42:31 +010015Patches
16-------
Laurens Van Houtven290aba12014-03-14 15:20:18 +010017
Laurens Van Houtvendc06b702014-03-15 18:11:47 +010018All patches to pyOpenSSL should be submitted in the form of pull
Laurens Van Houtven5a422982014-03-15 21:42:31 +010019requests to the main pyOpenSSL repository, ``pyca/pyopenssl``. These
Laurens Van Houtven290aba12014-03-14 15:20:18 +010020pull requests should satisfy the following properties:
21
Laurens Van Houtven757807e2014-03-15 21:49:03 +010022- Code should mostly follow `PEP 8`_, especially in the "do what code
23 around you does" sense. One notable way pyOpenSSL code differs, for
24 example, is that there should be three empty lines between
25 module-level elements, and two empty lines between class-level
26 elements. Methods and functions are named in ``snake_case``. Follow
27 OpenSSL naming for callables whenever possible is preferred.
Laurens Van Houtven290aba12014-03-14 15:20:18 +010028- Pull requests that introduce code must test all new behavior they
29 introduce, as well as previously untested or poorly tested behavior
30 that they touch.
31- Pull requests are not allowed to break existing tests.
Laurens Van Houtven5a422982014-03-15 21:42:31 +010032- Pull requests that introduce features or fix bugs should note those
Laurens Van Houtvendf531cc2014-03-15 21:48:53 +010033 changes in the ``ChangeLog`` text file in the root of the
34 repository. They should also document the changes, both in
35 docstrings and in the documentation in the ``doc/`` directory.
Laurens Van Houtven290aba12014-03-14 15:20:18 +010036
37Finally, pull requests must be reviewed before merging. This process
Laurens Van Houtven5a422982014-03-15 21:42:31 +010038mirrors the `cryptography code review process`_. Everyone can perform
39reviews; this is a very valuable way to contribute, and is highly
40encouraged.
Laurens Van Houtven290aba12014-03-14 15:20:18 +010041
42All members of the pyca Github organization can merge pull requests,
43of course keeping in mind all the requirements detailed in this
44document as well as the pyca/cryptography merge requirements.
45
46The final responsibility for the reviewing of merged code lies with
Laurens Van Houtvendc06b702014-03-15 18:11:47 +010047the person merging it; since pyOpenSSL is obviously a sensitive
Laurens Van Houtven290aba12014-03-14 15:20:18 +010048project from a security perspective, so reviewers are strongly
49encouraged to take this review and merge process very seriously.
50
Laurens Van Houtven757807e2014-03-15 21:49:03 +010051.. _PEP 8: http://legacy.python.org/dev/peps/pep-0008/
Laurens Van Houtven5a422982014-03-15 21:42:31 +010052.. _cryptography code review process: https://cryptography.io/en/latest/development/reviewing-patches/