# 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.
hacking>=0.12.0,!=0.13.0,<0.14  # Apache-2.0

sphinx>=1.2.1,!=1.3b1,<1.4  # BSD
oslosphinx>=4.7.0 # Apache-2.0
reno>=1.8.0 # Apache-2.0
mock>=2.0 # BSD
coverage>=4.0 # Apache-2.0
nose # LGPL
nosexcover # BSD
oslotest>=1.10.0 # Apache-2.0
oslo.policy>=1.17.0  # Apache-2.0
oslo.log>=3.11.0 # Apache-2.0
tempest>=12.1.0  # Apache-2.0
