# Getting started

## Development dependencies

Working on `cryptography` requires the installation of a small number of development dependencies in addition to the dependencies for Installation. These are handled by the use of `nox`, which can be installed with `pip`.

    $ # Create a virtualenv and activate it
    $ # Set up your cryptography build environment
    $ pip install nox
    $ # Specify your Python version here.
    $ nox -e tests -p py310

### OpenSSL on macOS

You must have installed OpenSSL (via Homebrew , MacPorts, or a custom build) and must configure the build as documented here before calling `nox` or else pip will fail to compile.

## Running tests

`cryptography` unit tests are found in the `tests/` directory and are designed to be run using pytest. `nox` automatically invokes `pytest`:

    $ nox -e tests -p py310
    ...
    62746 passed in 220.43 seconds

## Building documentation

`cryptography` documentation is stored in the `docs/` directory. It is written in reStructured Text and rendered using Sphinx.

Use nox to build the documentation. For example:

    $ nox -e docs
    ...
    nox > Session docs was successful.

The HTML documentation index can now be found at `docs/_build/html/index.html`.