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., RPC, OF-Config, OVSDB) 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 <[email protected]>
---
 README.rst              | 11 +++++------
 tools/install_venv.py   |  3 +++
 tools/optional-requires |  5 +++++
 tools/test-requires     |  6 ------
 tox.ini                 |  1 +
 5 files changed, 14 insertions(+), 12 deletions(-)
 create mode 100644 tools/optional-requires

diff --git a/README.rst b/README.rst
index 77df3b3..89f8021 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, RPC API) requires paramiko and tinyrpc
 
 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 09b321b..2963980 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 0000000..7d9e44f
--- /dev/null
+++ b/tools/optional-requires
@@ -0,0 +1,5 @@
+lxml      # OF-Config
+ncclient  # OF-Config
+cryptography!=1.5.2  # Required by paramiko
+paramiko  # NETCONF, BGPSpeaker SSH console
+tinyrpc   # RPC API
diff --git a/tools/test-requires b/tools/test-requires
index 8510ede..9d59a70 100644
--- a/tools/test-requires
+++ b/tools/test-requires
@@ -4,9 +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
-tinyrpc   # RPC
-ncclient  # OF-Config
diff --git a/tox.ini b/tox.ini
index ae9fd33..f87480a 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
-- 
2.7.4


------------------------------------------------------------------------------
Developer Access Program for Intel Xeon Phi Processors
Access to Intel Xeon Phi processor-based developer platforms.
With one year of Intel Parallel Studio XE.
Training and support from Colfax.
Order your platform today. http://sdm.link/xeonphi
_______________________________________________
Ryu-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ryu-devel

Reply via email to