Release rally 2.1.0

* update changelog
* remove direct netaddr requirement
* fix several warnings

Change-Id: I96514e763e4e85474f414beb1148fd466e0e9464
This commit is contained in:
Andrey Kurilin 2019-11-15 14:34:17 +02:00
parent c7d1fabb91
commit cebecc512e
10 changed files with 62 additions and 93 deletions

View File

@ -17,6 +17,28 @@ Changelog
.. Release notes for existing releases are MUTABLE! If there is something that .. Release notes for existing releases are MUTABLE! If there is something that
was missed or can be improved, feel free to change it! 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 <https://launchpad.net/bugs/1844884>`_
[2.0.0] - 2019-09-13 [2.0.0] - 2019-09-13
-------------------- --------------------

View File

@ -17,7 +17,7 @@ additional plugins:
# for rally user is used. # for rally user is used.
# #
# Tags of the image are the same as releases of xRally/Rally # 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, # "rally" user (which is selected by-default) is owner of "/rally" directory,
# so there is no need to call chown or switch the user # 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 First of all, you need to pull the container. We suggest to use the last
tagged version: tagged version:
# pull the 2.0.0 image (the latest release at the point of writing the note) # pull the 2.1.0 image (the latest release at the point of writing the note)
$ docker pull xrally/xrally:2.0.0 $ docker pull xrally/xrally:2.1.0
**WARNING: never attach folders and volumes to `/rally` inside the container. It can break everything.** **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: * use docker volumes. It is the easiest way. You just need to do something like:
$ docker volume create --name rally_volume $ 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 * mount outer directory inside the container

View File

@ -239,12 +239,12 @@ class _Task(APIGroup):
# NOTE(boris-42): Removing variables that have default values from # NOTE(boris-42): Removing variables that have default values from
# missing. Construction that won't be properly # missing. Construction that won't be properly
# checked is {% set x = x or 1} # 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): task_template):
return False return False
# NOTE(jlk): Also check for a default filter which can show up as # NOTE(jlk): Also check for a default filter which can show up as
# a missing variable # 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 False
return True return True

View File

@ -18,8 +18,8 @@ import sys
PARAM_OR_RETURNS_REGEX = re.compile(":(?:param|returns)") PARAM_OR_RETURNS_REGEX = re.compile(":(?:param|returns)")
RETURNS_REGEX = re.compile(":returns: (?P<doc>.*)", re.S) RETURNS_REGEX = re.compile(":returns: (?P<doc>.*)", re.S)
PARAM_REGEX = re.compile(":param (?P<name>[\*\w]+): (?P<doc>.*?)" PARAM_REGEX = re.compile(r":param (?P<name>[\*\w]+): (?P<doc>.*?)"
"(?:(?=:param)|(?=:return)|(?=:raises)|\Z)", re.S) r"(?:(?=:param)|(?=:return)|(?=:raises)|\Z)", re.S)
def trim(docstring): def trim(docstring):

View File

@ -25,7 +25,7 @@ from rally.ui import utils as ui_utils
from rally.verification import reporter from rally.verification import reporter
SKIP_RE = re.compile("Skipped until Bug: ?(?P<bug_number>\d+) is resolved.") SKIP_RE = re.compile(r"Skipped until Bug: ?(?P<bug_number>\d+) is resolved.")
LP_BUG_LINK = "https://launchpad.net/bugs/%s" LP_BUG_LINK = "https://launchpad.net/bugs/%s"
TIME_FORMAT = consts.TimeFormat.ISO8601 TIME_FORMAT = consts.TimeFormat.ISO8601

View File

@ -3,11 +3,10 @@
# process, which may cause wedges in the gate later. # process, which may cause wedges in the gate later.
# Rally core dependencies # Rally core dependencies
alembic # MIT alembic!=1.2.0 # MIT
decorator # new BSD License decorator # new BSD License
Jinja2 # BSD Jinja2 # BSD-3-Clause
jsonschema # MIT jsonschema # MIT
netaddr # BSD
oslo.config!=4.3.0,!=4.4.0 # Apache Software License oslo.config!=4.3.0,!=4.4.0 # Apache Software License
# do not forget to remove `testresources` from test-requirements. it is a # do not forget to remove `testresources` from test-requirements. it is a
# dependency of oslo.db for tests # dependency of oslo.db for tests
@ -19,7 +18,8 @@ PrettyTable<0.8 # BSD
pyOpenSSL # Apache License, Version 2.0 pyOpenSSL # Apache License, Version 2.0
PyYAML # MIT PyYAML # MIT
python-subunit 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 SQLAlchemy!=1.1.5,!=1.1.6,!=1.1.7,!=1.1.8 # MIT
six # MIT six # MIT
virtualenv # MIT virtualenv!=16.3.0 # MIT

View File

@ -4,7 +4,8 @@
hacking>=0.12.0,!=0.13.0 # Apache Software License 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. # py.test plugin for measuring coverage.
pytest-cov>=2.2.1 # MIT pytest-cov>=2.2.1 # MIT
# py.test plugin for generating HTML reports # py.test plugin for generating HTML reports
@ -13,12 +14,11 @@ pytest-html>=1.10.0 # Mozilla Public License
pytest-xdist # MIT pytest-xdist # MIT
ddt # MIT ddt # MIT
mock # UNKNOWN mock # OSI Approved :: BSD License
python-dateutil # Dual License python-dateutil # Dual License
testtools # UNKNOWN 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,!=2.1.0 # BSD
sphinx!=1.6.6,!=1.6.7,>=1.6.2;python_version>='3.4' # BSD
oslosphinx # Apache Software License oslosphinx # Apache Software License
testresources # UNKNOWN testresources # UNKNOWN

View File

@ -19,7 +19,7 @@ from tests.unit import test
class ModuleTestCase(test.TestCase): class ModuleTestCase(test.TestCase):
VERSION_REGEX = "^\d+\.\d+\.\d+(~dev\d+)?$" VERSION_REGEX = r"^\d+\.\d+\.\d+(~dev\d+)?$"
def test_version_info(self): def test_version_info(self):
version_str = version.version_info.semantic_version().debian_string() version_str = version.version_info.semantic_version().debian_string()

View File

@ -58,7 +58,7 @@ class TestFormat(testtools.TestCase):
def _check_trailing_spaces(self, doc_file, raw): def _check_trailing_spaces(self, doc_file, raw):
for i, line in enumerate(raw.split("\n")): for i, line in enumerate(raw.split("\n")):
trailing_spaces = re.findall("\s+$", line) trailing_spaces = re.findall(r"\s+$", line)
self.assertEqual( self.assertEqual(
len(trailing_spaces), 0, len(trailing_spaces), 0,
"Found trailing spaces on line %s of %s" % (i + 1, doc_file)) "Found trailing spaces on line %s of %s" % (i + 1, doc_file))

View File

@ -1,73 +1,20 @@
alembic==1.0.6 alembic===1.3.0
asn1crypto==0.24.0 decorator===4.4.1
Babel==2.5.3 Jinja2===2.10.3
bcrypt==3.1.4 jsonschema===3.1.1
certifi==2018.1.18 oslo.config===6.11.1
cffi==1.11.4 oslo.db===5.0.2
chardet==3.0.4 oslo.log===3.44.1
cryptography==2.3.1 paramiko===2.6.0
debtcollector==1.19.0 pbr===5.4.3
decorator==4.3.0 PrettyTable===0.7.2
enum34==1.1.6 Pygments==2.3.1;python_version=='3.4'
extras==1.0.0 pyOpenSSL===19.0.0
fixtures==3.0.0 python-subunit===1.3.0
funcsigs==1.0.2 PyYAML===5.1.2
functools32==3.2.3.post2 requests===2.21.0;python_version=='3.4'
idna==2.6 six===1.13.0
ipaddress==1.0.19 Sphinx==1.8.5;python_version=='2.7'
iso8601==0.1.12 Sphinx==1.8.5;python_version=='3.4'
Jinja2==2.10 SQLAlchemy===1.3.10
jsonschema==3.0.1 virtualenv===16.7.7
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