summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorIWASE Yusuke <iwase.yusuke0@gmail.com>2016-11-15 11:23:14 +0900
committerFUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>2016-11-15 20:58:06 +0900
commit03f77e7279d3e7f4c0c581f32cb99322e65195a6 (patch)
treef546bce82233ad7d253ff323c84a7e974e0e694e
parent1af384fa17e58d52a5b1826fa3f2ce3a5b1b260a (diff)
pip: Separate test-requires
Currently, in addition to "requirements for tests", test-requires includes "optional requirements". This makes it unclear to identify which packages are surely required to use optional features (e.g., OF-Config, NETCONF, BGP speaker) and causes the redundant installation when building Docker images. This patch separates test-requires into two files("test requirements" and "optional requirements"). Also, this patch reverts the version fixation for some packages. Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
-rw-r--r--README.rst11
-rw-r--r--tools/install_venv.py3
-rw-r--r--tools/optional-requires4
-rw-r--r--tools/test-requires5
-rw-r--r--tox.ini1
5 files changed, 13 insertions, 11 deletions
diff --git a/README.rst b/README.rst
index 77df3b33..a6018200 100644
--- a/README.rst
+++ b/README.rst
@@ -35,16 +35,15 @@ Optional Requirements
Some functionalities of ryu requires extra packages:
-- OF-Config requires lxml
+- OF-Config requires lxml and ncclient
- NETCONF requires paramiko
-- BGP speaker (ssh console) requires paramiko
-- OVSDB support requires ovs (Note: python 3.4 requires ovs>=2.6.0.dev0)
+- BGP speaker (SSH console) requires paramiko
If you want to use the functionalities, please install requirements::
- % pip install lxml
- % pip install paramiko
- % pip install ovs
+ % pip install -r tools/optional-requires
+
+Please refer to tools/optional-requires for details.
Support
diff --git a/tools/install_venv.py b/tools/install_venv.py
index 09b321bd..29639801 100644
--- a/tools/install_venv.py
+++ b/tools/install_venv.py
@@ -31,6 +31,7 @@ import sys
ROOT = os.path.dirname(os.path.dirname(os.path.realpath(__file__)))
VENV = os.path.join(ROOT, '.venv')
PIP_REQUIRES = os.path.join(ROOT, 'tools', 'pip-requires')
+OPTIONAL_REQUIRES = os.path.join(ROOT, 'tools', 'optional-requires')
TEST_REQUIRES = os.path.join(ROOT, 'tools', 'test-requires')
PY_VERSION = "python%s.%s" % (sys.version_info[0], sys.version_info[1])
@@ -95,6 +96,8 @@ def install_dependencies(venv=VENV):
run_command(['tools/with_venv.sh', 'pip', 'install', '-r',
PIP_REQUIRES], redirect_output=False)
run_command(['tools/with_venv.sh', 'pip', 'install', '-r',
+ OPTIONAL_REQUIRES], redirect_output=False)
+ run_command(['tools/with_venv.sh', 'pip', 'install', '-r',
TEST_REQUIRES], redirect_output=False)
# Tell the virtual env how to "import quantum"
diff --git a/tools/optional-requires b/tools/optional-requires
new file mode 100644
index 00000000..a17b1752
--- /dev/null
+++ b/tools/optional-requires
@@ -0,0 +1,4 @@
+lxml # OF-Config
+ncclient # OF-Config
+cryptography!=1.5.2 # Required by paramiko
+paramiko # NETCONF, BGP speaker (SSH console)
diff --git a/tools/test-requires b/tools/test-requires
index 009adfc3..9d59a70c 100644
--- a/tools/test-requires
+++ b/tools/test-requires
@@ -4,8 +4,3 @@ nose
pep8
pylint
formencode
-lxml; platform_python_implementation != 'PyPy' # OF-Config
-lxml==3.4.0; platform_python_implementation == 'PyPy'
-cryptography==1.5
-paramiko # NETCONF, BGP speaker
-ncclient # OF-Config
diff --git a/tox.ini b/tox.ini
index ae9fd330..f87480aa 100644
--- a/tox.ini
+++ b/tox.ini
@@ -4,6 +4,7 @@ envlist = py27,py34,py35,pypy26,pep8
[testenv]
deps = -U
-r{toxinidir}/tools/pip-requires
+ -r{toxinidir}/tools/optional-requires
-r{toxinidir}/tools/test-requires
--no-cache-dir
usedevelop = True