diff --git a/doc/source/development_guidelines.rst b/doc/source/development_guidelines.rst index fd3607015f..6f0012c35f 100644 --- a/doc/source/development_guidelines.rst +++ b/doc/source/development_guidelines.rst @@ -27,6 +27,12 @@ To execute the tests: pip install tox +* Generate list of distribution packages to install for testing:: + + tox -e bindep + + Now install these packages using your distribution package manager + like apt-get, dnf, yum, or zypper. * Run Tox from the root of the swift repo:: diff --git a/doc/source/getting_started.rst b/doc/source/getting_started.rst index ba8790821b..8308c130ae 100644 --- a/doc/source/getting_started.rst +++ b/doc/source/getting_started.rst @@ -15,6 +15,7 @@ Swift is written in Python and has these dependencies: * rsync 3.0 * The Python packages listed in `the requirements file `_ * Testing additionally requires `the test dependencies `_ +* Testing requires `these distribution packages `_ There is no current support for Python 3. diff --git a/other-requirements.txt b/other-requirements.txt new file mode 100644 index 0000000000..394f2b0f7a --- /dev/null +++ b/other-requirements.txt @@ -0,0 +1,15 @@ +# This is a cross-platform list tracking distribution packages needed by tests; +# see http://docs.openstack.org/infra/bindep/ for additional information. + +build-essential [platform:dpkg] +gcc [platform:rpm] +gettext +liberasurecode-dev [platform:dpkg] +liberasurecode-devel [platform:rpm] +libffi-dev [platform:dpkg] +libffi-devel [platform:rpm] +memcached +python-dev [platform:dpkg] +python-devel [platform:rpm] +rsync +xfsprogs diff --git a/tox.ini b/tox.ini index f016316c49..68c1f6a0bd 100644 --- a/tox.ini +++ b/tox.ini @@ -80,3 +80,11 @@ commands = bandit -c bandit.yaml -r swift bin -n 5 -p gate ignore = F812,H101,H202,H233,H301,H306,H401,H403,H404,H405,H501,H703 exclude = .venv,.tox,dist,*egg show-source = True + +[testenv:bindep] +# Do not install any requirements. We want this to be fast and work even if +# system dependencies are missing, since it's used to tell you what system +# dependencies are missing! This also means that bindep must be installed +# separately, outside of the requirements files. +deps = bindep +commands = bindep test