]> git.apps.os.sepia.ceph.com Git - teuthology.git/commitdiff
Use pip-tools to manage dependencies 1063/head
authorZack Cerza <zack@redhat.com>
Mon, 17 Apr 2017 21:24:39 +0000 (15:24 -0600)
committerZack Cerza <zack@redhat.com>
Mon, 17 Apr 2017 22:19:11 +0000 (16:19 -0600)
After yet another instance of pip failing to resolve dependencies, I
think it's time to pin everything. The pip-tools utilities provide a
simple way to pin libraries and update them when necessary.

Signed-off-by: Zack Cerza <zack@redhat.com>
bootstrap
requirements.txt
setup.py
tox.ini

index 2604749566d18a0fcbe79040dfb5a82e23937c56..b0bd347c45cea8275330737e4a9185fad94871fd 100755 (executable)
--- a/bootstrap
+++ b/bootstrap
@@ -133,9 +133,17 @@ fi
 # Upgrade pip first
 ./virtualenv/bin/pip install --upgrade pip
 
+# Ensure setuptools is installed
 ./virtualenv/bin/pip install setuptools --upgrade
 
+# Install all requirements
 ./virtualenv/bin/pip install --upgrade -r requirements.txt
 
+# Invoke pip-sync
+./virtualenv/bin/pip-sync requirements.txt
+
+# Check to make sure requirements are met
+./virtualenv/bin/pip check
+
 # Remove leftover .pyc files
 find teuthology -name '*.pyc' -exec rm {} \;
index cd8c47d3d7e46ef695ddb5cc3b9c2d4dfc633d8d..19cc14c4f1f137f960316095716145673c58fede 100644 (file)
@@ -1,3 +1,96 @@
---index-url https://pypi.python.org/simple/
-
--e .
+#
+# This file is autogenerated by pip-compile
+# To update, run:
+#
+#    pip-compile --output-file requirements.txt setup.py
+#
+ansible==2.3.0.0
+apache-libcloud==1.5.0
+appdirs==1.4.3            # via os-client-config
+argparse==1.4.0
+asn1crypto==0.22.0        # via cryptography
+babel==2.4.0              # via osc-lib, oslo.i18n, python-cinderclient, python-glanceclient, python-neutronclient, python-novaclient, python-openstackclient
+backports.ssl-match-hostname==3.5.0.1
+beanstalkc==0.4.0
+boto==2.46.1
+bunch==1.0.1
+cffi==1.10.0              # via cryptography
+click==6.7                # via pip-tools
+cliff==2.5.0              # via osc-lib, python-neutronclient, python-openstackclient
+cmd2==0.7.0               # via cliff
+configobj==5.0.6
+configparser==3.5.0
+contextlib2==0.5.4        # via raven
+cryptography==1.8.1       # via paramiko, pyopenssl
+debtcollector==1.13.0     # via oslo.config, oslo.utils, python-keystoneclient, python-neutronclient
+deprecation==1.0          # via openstacksdk
+docopt==0.6.2
+enum34==1.1.6             # via cryptography
+first==2.0.1              # via pip-tools
+funcsigs==1.0.2           # via debtcollector, oslo.utils
+functools32==3.2.3.post2  # via jsonschema
+gevent==1.2.1
+greenlet==0.4.12          # via gevent
+httplib2==0.10.3
+idna==2.5                 # via cryptography
+ipaddress==1.0.18         # via cryptography
+iso8601==0.1.11           # via keystoneauth1, oslo.utils, python-neutronclient, python-novaclient
+jinja2==2.9.6             # via ansible
+jsonpatch==1.15           # via warlock
+jsonpointer==1.10         # via jsonpatch
+jsonschema==2.6.0         # via warlock
+keystoneauth1==2.19.0     # via openstacksdk, os-client-config, osc-lib, python-cinderclient, python-glanceclient, python-keystoneclient, python-neutronclient, python-novaclient, python-openstackclient
+libvirt-python==3.2.0
+manhole==1.3.0
+markupsafe==1.0           # via jinja2
+monotonic==1.3            # via oslo.utils
+msgpack-python==0.4.8     # via oslo.serialization
+mysql-python==1.2.3
+ndg-httpsclient==0.4.2
+netaddr==0.7.19           # via oslo.config, oslo.utils, python-neutronclient
+netifaces==0.10.5         # via oslo.utils
+openstacksdk==0.9.15      # via python-openstackclient
+os-client-config==1.26.0  # via openstacksdk, osc-lib, python-neutronclient
+osc-lib==1.3.0            # via python-neutronclient, python-openstackclient
+oslo.config==3.24.0       # via python-keystoneclient
+oslo.i18n==3.15.0         # via osc-lib, oslo.config, oslo.utils, python-cinderclient, python-glanceclient, python-keystoneclient, python-neutronclient, python-novaclient, python-openstackclient
+oslo.serialization==2.18.0  # via python-keystoneclient, python-neutronclient, python-novaclient
+oslo.utils==3.25.0        # via osc-lib, oslo.serialization, python-cinderclient, python-glanceclient, python-keystoneclient, python-neutronclient, python-novaclient, python-openstackclient
+packaging==16.8           # via cryptography
+paramiko==2.1.2
+pbr==2.0.0                # via cliff, debtcollector, keystoneauth1, openstacksdk, osc-lib, oslo.i18n, oslo.serialization, oslo.utils, positional, python-cinderclient, python-glanceclient, python-keystoneclient, python-neutronclient, python-novaclient, python-openstackclient, requestsexceptions, stevedore
+pexpect==4.2.1
+pip-tools==1.9.0
+pluggy==0.4.0             # via tox
+positional==1.1.1         # via keystoneauth1, python-keystoneclient
+prettytable==0.7.2
+psutil==5.2.2
+ptyprocess==0.5.1         # via pexpect
+py==1.4.33                # via tox
+pyasn1==0.2.3
+pycparser==2.17           # via cffi
+pycrypto==2.6.1           # via ansible
+pyopenssl==16.2.0
+pyparsing==2.2.0          # via cliff, cmd2, oslo.utils, packaging
+python-cinderclient==2.0.1  # via python-openstackclient
+python-dateutil==2.6.0
+python-glanceclient==2.6.0  # via python-openstackclient
+python-keystoneclient==3.10.0  # via python-neutronclient, python-openstackclient
+python-neutronclient==6.2.0
+python-novaclient==8.0.0
+python-openstackclient==3.9.0
+pytz==2017.2              # via babel, oslo.serialization, oslo.utils
+pyyaml==3.12
+raven==6.0.0
+requests==2.12.5
+requestsexceptions==1.2.0  # via os-client-config
+rfc3986==0.4.1            # via oslo.config
+simplejson==3.10.0        # via osc-lib, python-cinderclient, python-neutronclient, python-novaclient
+six==1.10.0
+stevedore==1.21.0         # via cliff, keystoneauth1, openstacksdk, osc-lib, oslo.config, python-keystoneclient
+tox==2.7.0
+unicodecsv==0.14.1        # via cliff
+virtualenv==15.1.0        # via tox
+warlock==1.2.0            # via python-glanceclient
+web.py==0.38
+wrapt==1.10.10            # via debtcollector, positional, python-glanceclient
index 5683bde1111ef507063f5982302ece943ed6a7d4..5f5be1986e4ab21add82411e9481ed8d05f0acb9 100644 (file)
--- a/setup.py
+++ b/setup.py
@@ -48,7 +48,8 @@ setup(
         'Topic :: System :: Distributed Computing',
         'Topic :: System :: Filesystems',
     ],
-    install_requires=['setuptools',
+    install_requires=['pip-tools',
+                      'tox',
                       'gevent',
                       # For teuthology-coverage
                       'MySQL-python == 1.2.3',
@@ -68,10 +69,6 @@ setup(
                       'docopt',
                       'psutil >= 2.1.0',
                       'configparser',
-                      'pytest',
-                      'pytest-capturelog',
-                      'mock',
-                      'fudge',
                       'ansible>=2.0',
                       'pyopenssl>=0.13',
                       'ndg-httpsclient',
@@ -82,9 +79,6 @@ setup(
                       # python-novaclient 4.0.0
                       'python-novaclient',
                       'python-openstackclient',
-                      # Copy the below from python-openstackclient's
-                      # requirements to avoid a conflict
-                      'openstacksdk!=0.9.11,!=0.9.12,>=0.9.10',
                       # with openstacklient >= 2.1.0, neutronclient no longer is
                       # a dependency but we need it anyway.
                       'python-neutronclient',
diff --git a/tox.ini b/tox.ini
index 276bdc68fb097ae1f37af2850c72b36e04918327..27da6002b7405fa8f02f4dffa0a6b9edc4012150 100644 (file)
--- a/tox.ini
+++ b/tox.ini
@@ -7,10 +7,11 @@ passenv = HOME
 sitepackages=True
 deps=
   -r{toxinidir}/requirements.txt
+  pytest
+  pytest-capturelog
   mock
   fudge
   nose
-  pytest-capturelog
   pytest-cov==1.6
   coverage==3.7.1
 
@@ -23,6 +24,8 @@ passenv = HOME OS_REGION_NAME OS_AUTH_URL OS_TENANT_ID OS_TENANT_NAME OS_PASSWOR
 sitepackages=True
 deps=
   -r{toxinidir}/requirements.txt
+  pytest
+  pytest-capturelog
   mock
   fudge
   nose
@@ -42,7 +45,12 @@ commands=flake8 --select=F,E9 {posargs:teuthology scripts}
 install_command = pip install --upgrade {opts} {packages}
 basepython=python
 changedir=docs
-deps=sphinx
+deps=
+  -r{toxinidir}/requirements.txt
+  sphinx
+  pytest
+  pytest-capturelog
+  mock
 commands=
     sphinx-apidoc -f -o . ../teuthology ../teuthology/test ../teuthology/orchestra/test ../teuthology/task/test
     sphinx-build -b html -d {envtmpdir}/doctrees .  {envtmpdir}/html
@@ -53,8 +61,9 @@ passenv = HOME OS_REGION_NAME OS_AUTH_URL OS_TENANT_ID OS_TENANT_NAME OS_PASSWOR
 sitepackages=True
 deps=
   -r{toxinidir}/requirements.txt
-  mock
+  pytest
   pytest-capturelog
+  mock
 
 commands=py.test -v {posargs:teuthology/openstack/test/test_openstack.py}
 basepython=python2.7
@@ -64,6 +73,7 @@ passenv = HOME OS_REGION_NAME OS_AUTH_URL OS_TENANT_ID OS_TENANT_NAME OS_PASSWOR
 basepython=python2
 deps=
     -r{toxinidir}/requirements.txt
+    pytest
     mock
 
 commands=