summaryrefslogtreecommitdiff
path: root/CONTRIBUTING.rst
diff options
context:
space:
mode:
Diffstat (limited to 'CONTRIBUTING.rst')
-rw-r--r--CONTRIBUTING.rst43
1 files changed, 43 insertions, 0 deletions
diff --git a/CONTRIBUTING.rst b/CONTRIBUTING.rst
new file mode 100644
index 0000000..cb5fc77
--- /dev/null
+++ b/CONTRIBUTING.rst
@@ -0,0 +1,43 @@
+How To Contribute
+=================
+
+Every open source project lives from the generous help by contributors that sacrifice their time and ``service_identity`` is no different.
+
+Here are a few guidelines to get you started:
+
+- Try to limit each pull request to one change only.
+- To run the test suite, all you need is a recent tox_.
+ It will ensure the test suite runs with all dependencies against all Python versions just as it will on `Travis CI`_.
+ If you lack some Python version, you can can always limit the environments like ``tox -e py27,py35`` (in that case you may want to look into pyenv_ that makes it very easy to install many different Python versions in parallel).
+- Make sure your changes pass our CI_.
+ You won't get any feedback until it's green unless you ask for it.
+- If your change is noteworthy, add an entry to the changelog_.
+- No contribution is too small; please submit as many fixes for typos and grammar bloopers as you can!
+- Don’t break `backward compatibility`_.
+- *Always* add tests and docs for your code.
+ This is a hard rule; patches with missing tests or documentation won’t be merged.
+- Write `good test docstrings`_.
+- Obey `PEP 8`_ and `PEP 257`_.
+- If you address review feedback, make sure to bump the pull request.
+ Maintainers don’t receive notifications if you push new commits.
+
+Please note that this project is released with a Contributor `Code of Conduct`_.
+By participating in this project you agree to abide by its terms.
+Please report any harm to `Hynek Schlawack <me>`_ in any way you find appropriate.
+We can usually be found in the ``#cryptography-dev`` channel on freenode_.
+
+Thank you for considering to contribute to ``service_identity``!
+
+
+.. _me: https://hynek.me/about/
+.. _`PEP 8`: https://www.python.org/dev/peps/pep-0008/
+.. _`PEP 257`: https://www.python.org/dev/peps/pep-0257/
+.. _`good test docstrings`: https://jml.io/pages/test-docstrings.html
+.. _`Code of Conduct`: https://github.com/pyca/service_identity/blob/master/CODE_OF_CONDUCT.rst
+.. _changelog: https://github.com/pyca/service_identity/blob/master/CHANGELOG.rst
+.. _`backward compatibility`: https://service-identity.readthedocs.org/en/latest/backward-compatibility.html
+.. _`tox`: https://testrun.org/tox/
+.. _`Travis CI`: https://travis-ci.org/
+.. _pyenv: https://github.com/yyuu/pyenv
+.. _CI: https://travis-ci.org/pyca/service_identity
+.. _freenode: http://webchat.freenode.net