[requirements] Update requirements
* delete upper limits * upgrades sync_requirements file: - write constant values of versions in case of min == max versions - ignore update version in case of [do-not-touch] tag Change-Id: I8b28761b6c365eb3ecbaabf4142edacf36a1a213
This commit is contained in:
parent
b6bedc5b78
commit
58782d1cd0
@ -1,7 +1,8 @@
|
||||
python-mistralclient>=2.0.0,<=2.1.1
|
||||
python-mistralclient>=2.0.0
|
||||
# [do-not-touch] our plugins support only one version of fuelclient
|
||||
python-fuelclient==6.1.0 # Apache Software License
|
||||
python-muranoclient>=0.8.2,<=0.11.0 # Apache License, Version 2.0
|
||||
python-cueclient>=1.0.0,<=1.0.0 # Apache License, Version 2.0
|
||||
python-senlinclient>=0.3.0,<=1.0.0 # Apache Software License
|
||||
python-magnumclient>=2.0.0,<=2.3.0 # Apache Software License
|
||||
gnocchiclient>=2.2.0,<=2.5.0 # Apache Software License
|
||||
python-muranoclient>=0.8.2 # Apache License, Version 2.0
|
||||
python-cueclient>=1.0.0 # Apache License, Version 2.0
|
||||
python-senlinclient>=0.3.0 # Apache Software License
|
||||
python-magnumclient>=2.0.0 # Apache Software License
|
||||
gnocchiclient>=2.2.0 # Apache Software License
|
||||
|
@ -1,45 +1,41 @@
|
||||
# The order of packages is significant, because pip processes them in the order
|
||||
# of appearance. Changing the order has an impact on the overall integration
|
||||
# process, which may cause wedges in the gate later.
|
||||
alembic>=0.8.4,<=0.8.7 # MIT
|
||||
boto>=2.32.1,<=2.42.0 # MIT
|
||||
decorator>=3.4.0,<=4.0.10 # new BSD License
|
||||
Jinja2>=2.8,<=2.8 # BSD
|
||||
# [constant-upper-limit]
|
||||
jsonschema!=2.5.0,>=2.0.0,<3.0.0 # MIT
|
||||
netaddr!=0.7.16,>=0.7.12,<=0.7.18 # BSD
|
||||
oslo.config>=3.14.0,<=3.17.0 # Apache Software License
|
||||
oslo.db>=4.10.0,<=4.13.1 # Apache Software License
|
||||
oslo.i18n>=2.1.0,<=3.9.0 # Apache Software License
|
||||
oslo.log>=1.14.0,<=3.16.0 # Apache Software License
|
||||
oslo.serialization>=1.10.0,<=2.13.0 # Apache Software License
|
||||
oslo.utils>=3.16.0,<=3.16.0 # Apache Software License
|
||||
paramiko>=2.0,<=2.0.2 # LGPL
|
||||
pbr>=1.6,<=1.10.0 # Apache Software License
|
||||
# [constant-upper-limit]
|
||||
alembic>=0.8.4 # MIT
|
||||
boto>=2.32.1 # MIT
|
||||
decorator>=3.4.0 # new BSD License
|
||||
Jinja2>=2.8 # BSD
|
||||
jsonschema>=2.0.0,!=2.5.0,<3.0.0 # MIT
|
||||
netaddr>=0.7.12,!=0.7.16 # BSD
|
||||
oslo.config>=3.14.0 # Apache Software License
|
||||
oslo.db>=4.10.0 # Apache Software License
|
||||
oslo.i18n>=2.1.0 # Apache Software License
|
||||
oslo.log>=1.14.0 # Apache Software License
|
||||
oslo.serialization>=1.10.0 # Apache Software License
|
||||
oslo.utils>=3.16.0 # Apache Software License
|
||||
paramiko>=2.0 # LGPL
|
||||
pbr>=1.6 # Apache Software License
|
||||
PrettyTable>=0.7,<0.8 # BSD
|
||||
PyYAML>=3.1.0,<=3.12 # MIT
|
||||
python-designateclient>=1.5.0,<=2.3.0 # Apache License, Version 2.0
|
||||
python-glanceclient!=2.4.0,>=2.3.0,<=2.5.0 # Apache License, Version 2.0
|
||||
python-keystoneclient!=2.1.0,>=2.0.0,<=3.5.0 # Apache Software License
|
||||
keystoneauth1>=2.10.0,<=2.12.1 # Apache Software License
|
||||
python-novaclient!=2.33.0,>=2.29.0,<=6.0.0 # Apache License, Version 2.0
|
||||
python-neutronclient>=5.1.0,<=6.0.0 # Apache Software License
|
||||
python-cinderclient!=1.7.0,!=1.7.1,>=1.6.0,<=1.9.0 # Apache Software License
|
||||
python-manilaclient>=1.10.0,<=1.11.0 # Apache Software License
|
||||
python-monascaclient>=1.1.0,<=1.2.0 # Apache Software License
|
||||
python-heatclient>=1.4.0,<=1.4.0 # Apache Software License
|
||||
python-ceilometerclient>=2.5.0,<=2.6.0 # Apache Software License
|
||||
python-ironicclient>=1.6.0,<=1.7.0 # Apache Software License
|
||||
python-saharaclient>=0.18.0,<=0.18.0 # Apache License, Version 2.0
|
||||
python-troveclient>=2.2.0,<=2.5.0 # Apache Software License
|
||||
python-zaqarclient>=1.0.0,<=1.2.0 # Apache Software License
|
||||
python-swiftclient>=2.2.0,<=3.1.0 # Apache Software License
|
||||
python-watcherclient>=0.23.0,<=0.25.0 # Apache Software License
|
||||
python-subunit>=0.0.18,<=1.2.0
|
||||
requests>=2.10.0,<=2.11.1 # Apache License, Version 2.0
|
||||
# [constant-upper-limit]
|
||||
PyYAML>=3.1.0 # MIT
|
||||
python-designateclient>=1.5.0 # Apache License, Version 2.0
|
||||
python-glanceclient>=2.3.0,!=2.4.0 # Apache License, Version 2.0
|
||||
python-keystoneclient>=2.0.0,!=2.1.0 # Apache Software License
|
||||
keystoneauth1>=2.10.0 # Apache Software License
|
||||
python-novaclient>=2.29.0,!=2.33.0 # Apache License, Version 2.0
|
||||
python-neutronclient>=5.1.0 # Apache Software License
|
||||
python-cinderclient>=1.6.0,!=1.7.0,!=1.7.1 # Apache Software License
|
||||
python-manilaclient>=1.10.0 # Apache Software License
|
||||
python-monascaclient>=1.1.0 # Apache Software License
|
||||
python-heatclient>=1.4.0 # Apache Software License
|
||||
python-ceilometerclient>=2.5.0 # Apache Software License
|
||||
python-ironicclient>=1.6.0 # Apache Software License
|
||||
python-saharaclient>=0.18.0 # Apache License, Version 2.0
|
||||
python-troveclient>=2.2.0 # Apache Software License
|
||||
python-zaqarclient>=1.0.0 # Apache Software License
|
||||
python-swiftclient>=2.2.0 # Apache Software License
|
||||
python-watcherclient>=0.23.0 # Apache Software License
|
||||
python-subunit>=0.0.18
|
||||
requests>=2.10.0 # Apache License, Version 2.0
|
||||
SQLAlchemy>=1.0.10,<1.1.0 # MIT
|
||||
# [constant-upper-limit]
|
||||
sphinx!=1.3b1,>=1.2.1,<1.3 # BSD
|
||||
six>=1.9.0,<=1.10.0 # MIT
|
||||
sphinx>=1.2.1,!=1.3b1,<1.3 # BSD
|
||||
six>=1.9.0 # MIT
|
||||
|
@ -1,18 +1,21 @@
|
||||
# The order of packages is significant, because pip processes them in the order
|
||||
# of appearance. Changing the order has an impact on the overall integration
|
||||
# process, which may cause wedges in the gate later.
|
||||
# [constant-upper-limit]
|
||||
|
||||
# [do-not-touch] we need to modify our code to support latest release of this
|
||||
# lib
|
||||
hacking>=0.9.2,<0.10 # Apache Software License
|
||||
pytest>=2.7,<=3.0.2 # MIT
|
||||
pytest-cov>=2.2.1,<=2.3.1 # MIT
|
||||
pytest-html>=1.10.0,<=1.10.0 # Mozilla Public License 2.0 (MPL 2.0)
|
||||
|
||||
pytest>=2.7 # MIT
|
||||
pytest-cov>=2.2.1 # MIT
|
||||
pytest-html>=1.10.0 # Mozilla Public License 2.0 (MPL 2.0)
|
||||
pytest-xdist # MIT
|
||||
|
||||
coverage>=3.6,<=4.2 # Apache License, Version 2.0
|
||||
ddt>=1.0.1,<=1.1.0
|
||||
mock>=2.0,<=2.0.0
|
||||
python-dateutil>=2.4.2,<=2.5.3 # Simplified BSD
|
||||
testtools>=1.4.0,<=2.2.0
|
||||
coverage>=3.6 # Apache License, Version 2.0
|
||||
ddt>=1.0.1
|
||||
mock>=2.0
|
||||
python-dateutil>=2.4.2 # Simplified BSD
|
||||
testtools>=1.4.0
|
||||
|
||||
oslosphinx!=3.4.0,>=2.5.0,<=4.7.0 # Apache Software License
|
||||
oslotest>=1.10.0,<=2.10.0 # Apache Software License
|
||||
oslosphinx>=2.5.0,!=3.4.0 # Apache Software License
|
||||
oslotest>=1.10.0 # Apache Software License
|
||||
|
@ -43,13 +43,13 @@ RALLY_REQUIREMENTS_FILES = (
|
||||
"test-requirements.txt",
|
||||
"optional-requirements.txt"
|
||||
)
|
||||
UPPER_LIMIT_TAG = "[constant-upper-limit]"
|
||||
DO_NOT_TOUCH_TAG = "[do-not-touch]"
|
||||
|
||||
|
||||
class Comment(object):
|
||||
def __init__(self, s=None):
|
||||
def __init__(self, s=None, finished=False):
|
||||
self._comments = []
|
||||
self.is_finished = False
|
||||
self.is_finished = finished
|
||||
if s:
|
||||
self.append(s)
|
||||
|
||||
@ -82,7 +82,7 @@ class Requirement(object):
|
||||
self.version = version
|
||||
self._license = None
|
||||
self._pypy_info = None
|
||||
self.upper_limit_flag = False
|
||||
self.do_not_touch = False
|
||||
|
||||
def sync_max_version_with_pypy(self):
|
||||
if isinstance(self.version, dict) and not self.upper_limit_flag:
|
||||
@ -151,26 +151,41 @@ class Requirement(object):
|
||||
|
||||
def __str__(self):
|
||||
if isinstance(self.version, dict):
|
||||
version = ""
|
||||
if self.version["ne"]:
|
||||
version += ",".join(self.version["ne"])
|
||||
if self.version["min"]:
|
||||
if version:
|
||||
version += ","
|
||||
version += self.version["min"]
|
||||
if self.version["max"]:
|
||||
if version:
|
||||
version += ","
|
||||
version += self.version["max"]
|
||||
version = []
|
||||
|
||||
min_equal_to_max = False
|
||||
if self.version["min"] and self.version["max"]:
|
||||
if (self.version["min"].startswith(">=") and
|
||||
self.version["max"].startswith("<=") and
|
||||
self.version["min"][2:] == self.version["max"][2:]):
|
||||
# min and max versions are equal there is no need to write
|
||||
# both of them
|
||||
min_equal_to_max = True
|
||||
version.append("==%s" % self.version["min"][2:])
|
||||
|
||||
if not min_equal_to_max and self.version["min"]:
|
||||
version.append(self.version["min"])
|
||||
|
||||
if not min_equal_to_max and self.version["ne"]:
|
||||
version.extend(self.version["ne"])
|
||||
|
||||
if not min_equal_to_max and self.version["max"]:
|
||||
version.append(self.version["max"])
|
||||
|
||||
version = ",".join(version)
|
||||
else:
|
||||
version = self.version
|
||||
if self.do_not_touch:
|
||||
version = self.version
|
||||
else:
|
||||
# remove const version
|
||||
version = ">=%s" % self.version[2:]
|
||||
|
||||
string = "%s%s" % (self.package_name, version)
|
||||
if self.license:
|
||||
# NOTE(andreykurilin): When I start implementation of this script,
|
||||
# python-keystoneclient dependency took around ~45-55, so let's
|
||||
# use this length as indent. Feel free to modify it to lower or
|
||||
# greater value.
|
||||
# python-keystoneclient dependency string took around ~45-55
|
||||
# chars, so let's use this length as indent. Feel free to modify
|
||||
# it to lower or greater value.
|
||||
magic_number = 55
|
||||
if len(string) < magic_number:
|
||||
indent = magic_number - len(string)
|
||||
@ -192,30 +207,33 @@ def parse_data(raw_data, include_comments=True):
|
||||
if not include_comments:
|
||||
continue
|
||||
|
||||
if (isinstance(requirements[-1], Comment) and
|
||||
UPPER_LIMIT_TAG in line):
|
||||
requirements[-1].is_finished = True
|
||||
|
||||
if getattr(requirements[-1], "is_finished", True):
|
||||
requirements.append(Comment())
|
||||
|
||||
requirements[-1].append(line)
|
||||
elif line == "":
|
||||
# just empty line
|
||||
if isinstance(requirements[-1], Comment):
|
||||
requirements[-1].finish_him()
|
||||
requirements.append(Comment(finished=True))
|
||||
else:
|
||||
if (isinstance(requirements[-1], Comment) and
|
||||
not requirements[-1].is_finished):
|
||||
requirements[-1].finish_him()
|
||||
if line == "":
|
||||
requirements.append("")
|
||||
else:
|
||||
# parse_line
|
||||
req = Requirement.parse_line(line)
|
||||
if req:
|
||||
if (isinstance(requirements[-1], Comment) and
|
||||
str(requirements[-1]).endswith(UPPER_LIMIT_TAG)):
|
||||
req.upper_limit_flag = True
|
||||
requirements.append(req)
|
||||
if not requirements[-1]:
|
||||
requirements.pop()
|
||||
# parse_line
|
||||
req = Requirement.parse_line(line)
|
||||
if req:
|
||||
if (isinstance(requirements[-1], Comment) and
|
||||
DO_NOT_TOUCH_TAG in str(requirements[-1])):
|
||||
req.do_not_touch = True
|
||||
requirements.append(req)
|
||||
for i in range(len(requirements) - 1, 0, -1):
|
||||
# remove empty lines at the end of file
|
||||
if isinstance(requirements[i], Comment):
|
||||
if str(requirements[i]) == "":
|
||||
requirements.pop(i)
|
||||
else:
|
||||
break
|
||||
return requirements[1:]
|
||||
|
||||
|
||||
@ -261,12 +279,14 @@ def _sync():
|
||||
gr = parse_data(raw_gr, include_comments=False)
|
||||
for filename, requirements in _read_requirements():
|
||||
for i in range(0, len(requirements)):
|
||||
if isinstance(requirements[i], Requirement):
|
||||
if (isinstance(requirements[i], Requirement) and
|
||||
not requirements[i].do_not_touch):
|
||||
try:
|
||||
gr_item = gr[gr.index(requirements[i])]
|
||||
except ValueError:
|
||||
# it not g-r requirements
|
||||
pass
|
||||
if isinstance(requirements[i].version, dict):
|
||||
requirements[i].version["max"] = None
|
||||
else:
|
||||
requirements[i].version = gr_item.version
|
||||
yield filename, requirements
|
||||
@ -290,7 +310,8 @@ def add_uppers():
|
||||
LOG.info("Obtaining latest versions of packages from %s." % filename)
|
||||
for req in requirements:
|
||||
if isinstance(req, Requirement):
|
||||
req.sync_max_version_with_pypy()
|
||||
if isinstance(req.version, dict) and not req.version["max"]:
|
||||
req.sync_max_version_with_pypy()
|
||||
_write_requirements(filename, requirements)
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user