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