summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulien Danjou <julien@danjou.info>2016-05-26 14:39:52 +0200
committerJulien Danjou <julien@danjou.info>2016-06-09 10:40:48 +0200
commite8d37b018a08fd68673facaa8be7ef9e556450af (patch)
tree50ca606a420a00197106c2d37f0219127031df89
parent7360f85dabd13f87d2fbf56fb924e2cb9d382dc0 (diff)
downloadtooz-e8d37b018a08fd68673facaa8be7ef9e556450af.tar.gz
Change dependency to use flavors
This makes sure we install the correct and only the correct dependencies when installing tooz, based on the driver one wants to use. Change-Id: I58825cf228771a00b28d515a552141b42f884efa
-rw-r--r--requirements.txt3
-rw-r--r--setup.cfg41
-rw-r--r--test-requirements.txt20
-rw-r--r--tox.ini16
4 files changed, 55 insertions, 25 deletions
diff --git a/requirements.txt b/requirements.txt
index 4e47534..826db66 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -5,7 +5,6 @@ pbr>=1.6 # Apache-2.0
stevedore>=1.10.0 # Apache-2.0
six>=1.9.0 # MIT
enum34;python_version=='2.7' or python_version=='2.6' or python_version=='3.3' # BSD
-zake>=0.1.6 # Apache-2.0
voluptuous>=0.8.9 # BSD License
msgpack-python>=0.4.0 # Apache-2.0
fasteners>=0.7 # Apache-2.0
@@ -14,5 +13,3 @@ futures>=3.0;python_version=='2.7' or python_version=='2.6' # BSD
futurist>=0.11.0 # Apache-2.0
oslo.utils>=3.11.0 # Apache-2.0
oslo.serialization>=1.10.0 # Apache-2.0
-requests>=2.10.0 # Apache-2.0
-python-consul>=0.4.7 # MIT License
diff --git a/setup.cfg b/setup.cfg
index f821efc..c30a5cf 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -37,6 +37,47 @@ tooz.backends =
zookeeper = tooz.drivers.zookeeper:KazooDriver
consul = tooz.drivers.consul:ConsulDriver
+[extras]
+consul =
+ python-consul>=0.4.7 # MIT License
+
+etcd =
+ requests>=2.10.0 # Apache-2.0
+
+zake =
+ zake>=0.1.6 # Apache-2.0
+
+redis =
+ redis>=2.10.0 # MIT
+
+postgresql =
+ psycopg2>=2.5 # LGPL/ZPL
+
+mysql =
+ PyMySQL>=0.6.2 # MIT License
+
+zookeeper =
+ kazoo>=2.2 # Apache-2.0
+
+memcached =
+ pymemcache!=1.3.0,>=1.2.9 # Apache 2.0 License
+
+ipc =
+ sysv-ipc>=0.6.8 # BSD License
+
+test =
+ mock>=2.0 # BSD
+ python-subunit>=0.0.18 # Apache-2.0/BSD
+ testrepository>=0.0.18 # Apache-2.0/BSD
+ testtools>=1.4.0 # MIT
+ coverage>=3.6 # Apache-2.0
+ fixtures>=3.0.0 # Apache-2.0/BSD
+ pifpaf>=0.4.0 # Apache-2.0
+
+doc =
+ sphinx!=1.2.0,!=1.3b1,<1.3,>=1.1.2 # BSD
+ oslosphinx!=3.4.0,>=2.5.0 # Apache-2.0
+
[pbr]
warnerrors = True
diff --git a/test-requirements.txt b/test-requirements.txt
deleted file mode 100644
index 77d7c40..0000000
--- a/test-requirements.txt
+++ /dev/null
@@ -1,20 +0,0 @@
-# The order of packages is significant, because pip processes them in the order
-# of appearance. Changing the order has an impact on the overall integration
-# process, which may cause wedges in the gate later.
-mock>=2.0 # BSD
-sphinx!=1.2.0,!=1.3b1,<1.3,>=1.1.2 # BSD
-oslosphinx!=3.4.0,>=2.5.0 # Apache-2.0
-python-subunit>=0.0.18 # Apache-2.0/BSD
-testrepository>=0.0.18 # Apache-2.0/BSD
-testtools>=1.4.0 # MIT
-coverage>=3.6 # Apache-2.0
-fixtures>=3.0.0 # Apache-2.0/BSD
-pifpaf>=0.4.0 # Apache-2.0
-
-# All the various optional drivers require these...
-psycopg2>=2.5 # LGPL/ZPL
-PyMySQL>=0.6.2 # MIT License
-sysv-ipc>=0.6.8 # BSD License
-kazoo>=2.2 # Apache-2.0
-pymemcache!=1.3.0,>=1.2.9 # Apache 2.0 License
-redis>=2.10.0 # MIT
diff --git a/tox.ini b/tox.ini
index b2619c2..6e78135 100644
--- a/tox.ini
+++ b/tox.ini
@@ -1,12 +1,24 @@
[tox]
-minversion = 1.6
+minversion = 1.8
envlist = py27,py34,py27-zookeeper,py34-zookeeper,py27-redis,py34-redis,py27-sentinel,py34-sentinel,py27-memcached,py34-memcached,py27-postgresql,py34-postgresql,py27-mysql,py34-mysql,py27-consul,py34-consul,pep8
[testenv]
-deps = -r{toxinidir}/test-requirements.txt
+# We need to install a bit more than just `test' because those drivers have
+# custom tests that we always run
+deps = .[test,zake,ipc,memcached,mysql]
+ py{27,34}-zookeeper: .[zookeeper]
+ py{27,34}-redis: .[redis]
+ py{27,34}-sentinel: .[redis]
+ py{27,34}-memcached: .[memcached]
+ py{27,34}-postgresql: .[postgresql]
+ py{27,34}-mysql: .[mysql]
+ py{27,34}-etcd: .[etcd]
+ py{27,34}-consul: .[consul]
commands = python setup.py testr --slowest --testr-args="{posargs}"
[testenv:venv]
+# This target is used by the gate go run Sphinx to build the doc
+deps = .[doc]
commands = {posargs}
[testenv:py27]