aboutsummaryrefslogtreecommitdiffstats
path: root/docs/development/getting-started.rst
diff options
context:
space:
mode:
authorPaul Kehrer <paul.l.kehrer@gmail.com>2014-02-11 22:36:51 -0600
committerPaul Kehrer <paul.l.kehrer@gmail.com>2014-02-11 22:36:51 -0600
commit0839aa858f41f71b292c387f6bc3641083b965bc (patch)
tree02ca77f0d3a017f50660fdc739f456618e6e4a68 /docs/development/getting-started.rst
parente202a049ff6e3bcd5ba3b3c95356b57982ffaa42 (diff)
downloadcryptography-0839aa858f41f71b292c387f6bc3641083b965bc.tar.gz
cryptography-0839aa858f41f71b292c387f6bc3641083b965bc.tar.bz2
cryptography-0839aa858f41f71b292c387f6bc3641083b965bc.zip
reorganize contributing into development section
Diffstat (limited to 'docs/development/getting-started.rst')
-rw-r--r--docs/development/getting-started.rst84
1 files changed, 84 insertions, 0 deletions
diff --git a/docs/development/getting-started.rst b/docs/development/getting-started.rst
new file mode 100644
index 00000000..b367119e
--- /dev/null
+++ b/docs/development/getting-started.rst
@@ -0,0 +1,84 @@
+Getting Started
+===============
+
+Working on ``cryptography`` requires the installation of a small number of
+development dependencies. These are listed in ``dev-requirements.txt`` and they
+can be installed in a `virtualenv`_ using `pip`_. Once you've installed the
+dependencies, install ``cryptography`` in ``editable`` mode. For example:
+
+.. code-block:: console
+
+ $ # Create a virtualenv and activate it
+ $ pip install --requirement dev-requirements.txt
+ $ pip install --editable .
+
+You are now ready to run the tests and build the documentation.
+
+Running Tests
+~~~~~~~~~~~~~
+
+``cryptography`` unit tests are found in the ``tests/`` directory and are
+designed to be run using `pytest`_. `pytest`_ will discover the tests
+automatically, so all you have to do is:
+
+.. code-block:: console
+
+ $ py.test
+ ...
+ 62746 passed in 220.43 seconds
+
+This runs the tests with the default Python interpreter.
+
+You can also verify that the tests pass on other supported Python interpreters.
+For this we use `tox`_, which will automatically create a `virtualenv`_ for
+each supported Python version and run the tests. For example:
+
+.. code-block:: console
+
+ $ tox
+ ...
+ ERROR: py26: InterpreterNotFound: python2.6
+ py27: commands succeeded
+ ERROR: pypy: InterpreterNotFound: pypy
+ ERROR: py32: InterpreterNotFound: python3.2
+ py33: commands succeeded
+ docs: commands succeeded
+ pep8: commands succeeded
+
+You may not have all the required Python versions installed, in which case you
+will see one or more ``InterpreterNotFound`` errors.
+
+
+Explicit Backend Selection
+~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+While testing you may want to run tests against a subset of the backends that
+cryptography supports. Explicit backend selection can be done via the
+``--backend`` flag. This flag should be passed to ``py.test`` with a comma
+delimited list of backend names. To use it with ``tox`` you must pass it as
+``tox -- --backend=openssl``.
+
+Building Documentation
+~~~~~~~~~~~~~~~~~~~~~~
+
+``cryptography`` documentation is stored in the ``docs/`` directory. It is
+written in `reStructured Text`_ and rendered using `Sphinx`_.
+
+Use `tox`_ to build the documentation. For example:
+
+.. code-block:: console
+
+ $ tox -e docs
+ ...
+ docs: commands succeeded
+ congratulations :)
+
+The HTML documentation index can now be found at
+``docs/_build/html/index.html``.
+
+.. _`pytest`: https://pypi.python.org/pypi/pytest
+.. _`tox`: https://pypi.python.org/pypi/tox
+.. _`virtualenv`: https://pypi.python.org/pypi/virtualenv
+.. _`pip`: https://pypi.python.org/pypi/pip
+.. _`sphinx`: https://pypi.python.org/pypi/Sphinx
+.. _`reStructured Text`: http://sphinx-doc.org/rest.html