From cebecc512e37889d7e6fc7d89591f14bf6e8eda8 Mon Sep 17 00:00:00 2001 From: Andrey Kurilin Date: Fri, 15 Nov 2019 14:34:17 +0200 Subject: [PATCH] Release rally 2.1.0 * update changelog * remove direct netaddr requirement * fix several warnings Change-Id: I96514e763e4e85474f414beb1148fd466e0e9464 --- CHANGELOG.rst | 22 +++++ etc/docker/README.md | 8 +- rally/api.py | 4 +- rally/common/plugin/info.py | 4 +- .../plugins/common/verification/reporters.py | 2 +- requirements.txt | 10 +- test-requirements.txt | 8 +- tests/unit/common/test_version.py | 2 +- tests/unit/doc/test_format.py | 2 +- upper-constraints.txt | 93 ++++--------------- 10 files changed, 62 insertions(+), 93 deletions(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 1cdd44a526..50ddc72b80 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -17,6 +17,28 @@ Changelog .. Release notes for existing releases are MUTABLE! If there is something that was missed or can be improved, feel free to change it! + +[2.1.0] - 2019-11-19 +-------------------- + +Please note that Python 2.7 will reach the end of its life on +January 1st, 2020. A future version of Rally will drop support for Python 2.7, +it will happen soon. Also, the same will happen with support of Python 3.4 and +Python 3.5 + +Removed +~~~~~~~ + +Library *netaddr* from direct project requirements. We never use it at Rally +framework. + +Fixed +~~~~~ + +Support of latest alembic + +`Launchpad-bug #1844884 `_ + [2.0.0] - 2019-09-13 -------------------- diff --git a/etc/docker/README.md b/etc/docker/README.md index 817cfa073e..584ffd124b 100644 --- a/etc/docker/README.md +++ b/etc/docker/README.md @@ -17,7 +17,7 @@ additional plugins: # for rally user is used. # # Tags of the image are the same as releases of xRally/Rally - FROM xrally/xrally:2.0.0 + FROM xrally/xrally:2.1.0 # "rally" user (which is selected by-default) is owner of "/rally" directory, # so there is no need to call chown or switch the user @@ -39,8 +39,8 @@ details) First of all, you need to pull the container. We suggest to use the last tagged version: - # pull the 2.0.0 image (the latest release at the point of writing the note) - $ docker pull xrally/xrally:2.0.0 + # pull the 2.1.0 image (the latest release at the point of writing the note) + $ docker pull xrally/xrally:2.1.0 **WARNING: never attach folders and volumes to `/rally` inside the container. It can break everything.** @@ -56,7 +56,7 @@ docker volumes or mount the directory. * use docker volumes. It is the easiest way. You just need to do something like: $ docker volume create --name rally_volume - $ docker run -v rally_volume:/home/rally/.rally xrally/xrally:2.0.0 env create --name "foo" + $ docker run -v rally_volume:/home/rally/.rally xrally/xrally:2.1.0 env create --name "foo" * mount outer directory inside the container diff --git a/rally/api.py b/rally/api.py index 2e8dfe6442..3053888e62 100644 --- a/rally/api.py +++ b/rally/api.py @@ -239,12 +239,12 @@ class _Task(APIGroup): # NOTE(boris-42): Removing variables that have default values from # missing. Construction that won't be properly # checked is {% set x = x or 1} - if re.search(mis.join(["{%\s*set\s+", "\s*=\s*", "[^\w]+"]), + if re.search(mis.join([r"{%\s*set\s+", r"\s*=\s*", r"[^\w]+"]), task_template): return False # NOTE(jlk): Also check for a default filter which can show up as # a missing variable - if re.search(mis + "\s*\|\s*default\(", task_template): + if re.search(mis + r"\s*\|\s*default\(", task_template): return False return True diff --git a/rally/common/plugin/info.py b/rally/common/plugin/info.py index eba08180b0..d060e0e8ee 100644 --- a/rally/common/plugin/info.py +++ b/rally/common/plugin/info.py @@ -18,8 +18,8 @@ import sys PARAM_OR_RETURNS_REGEX = re.compile(":(?:param|returns)") RETURNS_REGEX = re.compile(":returns: (?P.*)", re.S) -PARAM_REGEX = re.compile(":param (?P[\*\w]+): (?P.*?)" - "(?:(?=:param)|(?=:return)|(?=:raises)|\Z)", re.S) +PARAM_REGEX = re.compile(r":param (?P[\*\w]+): (?P.*?)" + r"(?:(?=:param)|(?=:return)|(?=:raises)|\Z)", re.S) def trim(docstring): diff --git a/rally/plugins/common/verification/reporters.py b/rally/plugins/common/verification/reporters.py index f52ebc1082..b70c45553b 100644 --- a/rally/plugins/common/verification/reporters.py +++ b/rally/plugins/common/verification/reporters.py @@ -25,7 +25,7 @@ from rally.ui import utils as ui_utils from rally.verification import reporter -SKIP_RE = re.compile("Skipped until Bug: ?(?P\d+) is resolved.") +SKIP_RE = re.compile(r"Skipped until Bug: ?(?P\d+) is resolved.") LP_BUG_LINK = "https://launchpad.net/bugs/%s" TIME_FORMAT = consts.TimeFormat.ISO8601 diff --git a/requirements.txt b/requirements.txt index 340bfcafb2..3abfe25801 100644 --- a/requirements.txt +++ b/requirements.txt @@ -3,11 +3,10 @@ # process, which may cause wedges in the gate later. # Rally core dependencies -alembic # MIT +alembic!=1.2.0 # MIT decorator # new BSD License -Jinja2 # BSD +Jinja2 # BSD-3-Clause jsonschema # MIT -netaddr # BSD oslo.config!=4.3.0,!=4.4.0 # Apache Software License # do not forget to remove `testresources` from test-requirements. it is a # dependency of oslo.db for tests @@ -19,7 +18,8 @@ PrettyTable<0.8 # BSD pyOpenSSL # Apache License, Version 2.0 PyYAML # MIT python-subunit -requests # Apache License, Version 2.0 +requests<2.20.0;python_version=='3.4' # Apache License, Version 2.0 +requests!=2.20.0;python_version!='3.4' # Apache License, Version 2.0 SQLAlchemy!=1.1.5,!=1.1.6,!=1.1.7,!=1.1.8 # MIT six # MIT -virtualenv # MIT +virtualenv!=16.3.0 # MIT diff --git a/test-requirements.txt b/test-requirements.txt index 090c0e349b..fda0a0ac59 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -4,7 +4,8 @@ hacking>=0.12.0,!=0.13.0 # Apache Software License -pytest>=2.7 # MIT +pytest>=2.7,<5.0.0;python_version<='3.4' # MIT +pytest>=2.7;python_version>'3.4' # MIT # py.test plugin for measuring coverage. pytest-cov>=2.2.1 # MIT # py.test plugin for generating HTML reports @@ -13,12 +14,11 @@ pytest-html>=1.10.0 # Mozilla Public License pytest-xdist # MIT ddt # MIT -mock # UNKNOWN +mock # OSI Approved :: BSD License python-dateutil # Dual License testtools # UNKNOWN -sphinx!=1.6.6,!=1.6.7,>=1.6.2,<2.0.0;python_version=='2.7' # BSD -sphinx!=1.6.6,!=1.6.7,>=1.6.2;python_version>='3.4' # BSD +sphinx!=1.6.6,!=1.6.7,!=2.1.0 # BSD oslosphinx # Apache Software License testresources # UNKNOWN diff --git a/tests/unit/common/test_version.py b/tests/unit/common/test_version.py index 4e5866643a..e368f3fefb 100644 --- a/tests/unit/common/test_version.py +++ b/tests/unit/common/test_version.py @@ -19,7 +19,7 @@ from tests.unit import test class ModuleTestCase(test.TestCase): - VERSION_REGEX = "^\d+\.\d+\.\d+(~dev\d+)?$" + VERSION_REGEX = r"^\d+\.\d+\.\d+(~dev\d+)?$" def test_version_info(self): version_str = version.version_info.semantic_version().debian_string() diff --git a/tests/unit/doc/test_format.py b/tests/unit/doc/test_format.py index dafb4c6886..c14653922e 100644 --- a/tests/unit/doc/test_format.py +++ b/tests/unit/doc/test_format.py @@ -58,7 +58,7 @@ class TestFormat(testtools.TestCase): def _check_trailing_spaces(self, doc_file, raw): for i, line in enumerate(raw.split("\n")): - trailing_spaces = re.findall("\s+$", line) + trailing_spaces = re.findall(r"\s+$", line) self.assertEqual( len(trailing_spaces), 0, "Found trailing spaces on line %s of %s" % (i + 1, doc_file)) diff --git a/upper-constraints.txt b/upper-constraints.txt index 50d198a411..d25bb5f209 100644 --- a/upper-constraints.txt +++ b/upper-constraints.txt @@ -1,73 +1,20 @@ -alembic==1.0.6 -asn1crypto==0.24.0 -Babel==2.5.3 -bcrypt==3.1.4 -certifi==2018.1.18 -cffi==1.11.4 -chardet==3.0.4 -cryptography==2.3.1 -debtcollector==1.19.0 -decorator==4.3.0 -enum34==1.1.6 -extras==1.0.0 -fixtures==3.0.0 -funcsigs==1.0.2 -functools32==3.2.3.post2 -idna==2.6 -ipaddress==1.0.19 -iso8601==0.1.12 -Jinja2==2.10 -jsonschema==3.0.1 -linecache2==1.0.0 -Mako==1.0.7 -MarkupSafe==1.0 -monotonic==1.4 -msgpack==0.5.4 -netaddr==0.7.19 -netifaces==0.10.6 -oslo.config==6.4.0 -oslo.context==2.20.0 -oslo.db==4.40.0 -oslo.i18n==3.23.0 -oslo.log==3.39.0 -oslo.serialization==2.24.0 -oslo.utils==3.40.0 -packaging==16.8 -paramiko==2.4.1 -pbr==4.1.1 -prettytable==0.7.2 -pyasn1==0.4.2 -pycparser==2.18 -pyinotify==0.9.6 -Pygments==2.3.1;python_version=='3.4' -PyNaCl==1.2.1 -pyOpenSSL==18.0.0 -pyparsing==2.2.0 -pytest==3.3.0 -pytest-cov==2.5.1 -pytest-forked==0.2 -pytest-html==1.16.0 -pytest-metadata==1.5.1 -pytest-xdist==1.20.1 -python-dateutil==2.6.1 -python-editor==1.0.3 -python-mimeparse==1.6.0 -python-subunit==1.3.0 -pytz==2018.3 -PyYAML==3.13 -requests==2.21.0 -rfc3986==1.1.0 -six==1.11.0 -Sphinx==1.8.5;python_version=='2.7' -Sphinx==1.8.5;python_version=='3.4' -SQLAlchemy==1.3.4 -sqlalchemy-migrate==0.12.0 -sqlparse==0.2.4 -stevedore==1.28.0 -Tempita==0.5.2 -testtools==2.3.0 -traceback2==1.4.0 -unittest2==1.1.0 -urllib3==1.24.1 -virtualenv==16.0.0 -wrapt==1.10.11 +alembic===1.3.0 +decorator===4.4.1 +Jinja2===2.10.3 +jsonschema===3.1.1 +oslo.config===6.11.1 +oslo.db===5.0.2 +oslo.log===3.44.1 +paramiko===2.6.0 +pbr===5.4.3 +PrettyTable===0.7.2 +Pygments==2.3.1;python_version=='3.4' +pyOpenSSL===19.0.0 +python-subunit===1.3.0 +PyYAML===5.1.2 +requests===2.21.0;python_version=='3.4' +six===1.13.0 +Sphinx==1.8.5;python_version=='2.7' +Sphinx==1.8.5;python_version=='3.4' +SQLAlchemy===1.3.10 +virtualenv===16.7.7