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 <[email protected]>
---
README.rst | 11 +++++------
tools/install_venv.py | 3 +++
tools/optional-requires | 4 ++++
tools/test-requires | 5 -----
tox.ini | 1 +
5 files changed, 13 insertions(+), 11 deletions(-)
create mode 100644 tools/optional-requires
diff --git a/README.rst b/README.rst
index 77df3b3..a601820 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 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..a17b175
--- /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 009adfc..9d59a70 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 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
------------------------------------------------------------------------------
_______________________________________________
Ryu-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ryu-devel