List system dependencies for running common tests

Add a bindep.txt file containing a cross-platform list
of dependencies needed for running included tox-based tests. Also
include a tox environment for convenience calling the bindep[*]
utility to list any missing system requirements, and simplify the
contributor documentation to recommend this rather than embedding an
ad-hoc list of package names in an untestable document.

This change is self-testing.

[*] http://docs.openstack.org/infra/bindep/

Change-Id: I7c18b0921c39b99df89f2c356208303c2bad5a97
This commit is contained in:
Jeremy Stanley 2015-07-10 18:38:51 +00:00 committed by Andreas Jaeger
parent 20d28386d1
commit 7c0af3bb49
2 changed files with 45 additions and 0 deletions

34
bindep.txt Normal file
View File

@ -0,0 +1,34 @@
# This is a cross-platform list tracking distribution packages needed for install and tests;
# see http://docs.openstack.org/infra/bindep/ for additional information.
build-essential [platform:dpkg test]
gcc [platform:rpm test]
gettext [test]
graphviz [test]
language-pack-en [platform:ubuntu]
libffi-dev [platform:dpkg test]
libffi-devel [platform:rpm test]
libmysqlclient-dev [platform:dpkg]
libpq-dev [platform:dpkg test]
libsqlite3-dev [platform:dpkg test]
libxml2-dev [platform:dpkg test]
libxslt-devel [platform:rpm test]
libxslt1-dev [platform:dpkg test]
locales [platform:debian]
mysql [platform:rpm]
mysql-client [platform:dpkg]
mysql-devel [platform:rpm test]
mysql-server
pkg-config [platform:dpkg test]
pkgconfig [platform:rpm test]
postgresql
postgresql-client [platform:dpkg]
postgresql-devel [platform:rpm test]
postgresql-server [platform:rpm]
python-dev [platform:dpkg test]
python-devel [platform:rpm test]
python3-all [platform:dpkg !platform:ubuntu-precise]
python3-all-dev [platform:dpkg !platform:ubuntu-precise]
python3-devel [platform:fedora]
python34-devel [platform:centos]
sqlite-devel [platform:rpm test]

11
tox.ini
View File

@ -131,3 +131,14 @@ import_exceptions = nova.i18n
# of the requirements.txt files
deps = pip_missing_reqs
commands=pip-missing-reqs -d --ignore-file=nova/tests/* --ignore-file=nova/test.py nova
[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, and develop mode disabled
# explicitly to avoid unnecessarily installing the checked-out repo too (this
# further relies on "tox.skipsdist = True" above).
deps = bindep
commands = bindep test
usedevelop = False