blob: c43a1c74a28aec33dc1d8c70075884800839389c [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
22- Pull requests that involve code must follow the
Laurens Van Houtven5a422982014-03-15 21:42:31 +010023 `Twisted Coding Standard`_. For example, ``methodNamesLikeThis``,
Laurens Van Houtven290aba12014-03-14 15:20:18 +010024 three empty lines between module-level elements, and two empty lines
25 between class-level elements.
26- Pull requests that introduce code must test all new behavior they
27 introduce, as well as previously untested or poorly tested behavior
28 that they touch.
29- Pull requests are not allowed to break existing tests.
Laurens Van Houtven5a422982014-03-15 21:42:31 +010030- Pull requests that introduce features or fix bugs should note those
Laurens Van Houtvendf531cc2014-03-15 21:48:53 +010031 changes in the ``ChangeLog`` text file in the root of the
32 repository. They should also document the changes, both in
33 docstrings and in the documentation in the ``doc/`` directory.
Laurens Van Houtven290aba12014-03-14 15:20:18 +010034
35Finally, pull requests must be reviewed before merging. This process
Laurens Van Houtven5a422982014-03-15 21:42:31 +010036mirrors the `cryptography code review process`_. Everyone can perform
37reviews; this is a very valuable way to contribute, and is highly
38encouraged.
Laurens Van Houtven290aba12014-03-14 15:20:18 +010039
40All members of the pyca Github organization can merge pull requests,
41of course keeping in mind all the requirements detailed in this
42document as well as the pyca/cryptography merge requirements.
43
44The final responsibility for the reviewing of merged code lies with
Laurens Van Houtvendc06b702014-03-15 18:11:47 +010045the person merging it; since pyOpenSSL is obviously a sensitive
Laurens Van Houtven290aba12014-03-14 15:20:18 +010046project from a security perspective, so reviewers are strongly
47encouraged to take this review and merge process very seriously.
48
Laurens Van Houtven5a422982014-03-15 21:42:31 +010049.. _cryptography code review process: https://cryptography.io/en/latest/development/reviewing-patches/