# Requirements lower bounds listed here are our best effort to keep them up to
# date but we do not test them so no guarantee of having them all correct. If
# you find any incorrect lower bounds, let us know or propose a fix.

pbr!=2.1.0,>=2.0.0 # Apache-2.0

# xml parsing
keystoneauth1>=5.1.1 # Apache-2.0
lxml!=3.7.0,>=3.4.1 # BSD
tempest>=17.1.0 # Apache-2.0
oslo.config>=5.2.0 # Apache-2.0
testtools>=2.2.0 # MIT
requests>=2.14.2 # Apache-2.0
