uncap pysaml2

This is the first step in updating pysaml2 to 4.5.0.
Only keystone needs to consume this before we update UC/GR (as they get a
pkg_resources.ContextualVersionConflict if we update everything in one go).

The versions were masked because they could bring in pycryptodome, which we do
not want.

Next step, after keystone consumes this change, is to update upper-constraints.

We also want to be able to exclude prereleases if needed, so modify the check
to allow exclusions of prereleases.

Partial-Bug: #1750843
Change-Id: I6cf9812deecbfaea5ff6e47ba3d48dd94db773b5
This commit is contained in:
Matthew Thode 2018-03-28 11:48:59 -05:00
parent 62cf13891e
commit 2987715854
No known key found for this signature in database
GPG Key ID: 64A37BEAAE19A4E8
2 changed files with 3 additions and 8 deletions

View File

@ -230,13 +230,7 @@ pyparsing>=2.1.0 # MIT
pyroute2>=0.4.21;sys_platform!='win32' # Apache-2.0 (+ dual licensed GPL2) pyroute2>=0.4.21;sys_platform!='win32' # Apache-2.0 (+ dual licensed GPL2)
pysnmp>=4.2.3 # BSD pysnmp>=4.2.3 # BSD
pystache>=0.5.4 # MIT pystache>=0.5.4 # MIT
pysaml2>=4.0.2,!=4.0.3,!=4.0.4,!=4.0.5,!=4.0.5rc1,!=4.1.0,!=4.2.0,!=4.3.0,!=4.4.0 # Apache-2.0
# NOTE(dims): pysaml 4.0.3 uses pycryptodome instead of pycrypto, for mitaka
# we cannot switch to pycryptodome as many projects are likely to break. So
# we should block versions higher then 4.0.2. Also, once all projects and
# dependencies like paramiko switch to pycryptodome, we should revisit this
# and fully switch over to pycryptodome and stop using pycrypto
pysaml2>=4.0.2,<4.0.3 # Apache-2.0
# OpenStack clients. None of these should have an upper bound # OpenStack clients. None of these should have an upper bound
# as that has implications for testing in the gate. # as that has implications for testing in the gate.

View File

@ -224,7 +224,8 @@ def check_reqs_bounds_policy(global_reqs):
lower_bound = lower_bound.pop() lower_bound = lower_bound.pop()
for spec in _specifiers: for spec in _specifiers:
if spec.operator == '!=': if spec.operator == '!=':
if not lower_bound.contains(spec.version): if not lower_bound.contains(spec.version,
prereleases=True):
yield('Requirement %s has a !=%s specifier ' yield('Requirement %s has a !=%s specifier '
'that is not >=%s' % (req.package, 'that is not >=%s' % (req.package,
spec.version, spec.version,