-pbr>=1.8 # Apache-2.0
-PyYAML>=3.10.0 # MIT
-GitPython>=1.0.1 # BSD License (3 clause)
-keystoneauth1>=2.18.0 # Apache-2.0
-python-cinderclient!=1.7.0,!=1.7.1,>=1.6.0 # Apache-2.0
-python-glanceclient>=2.5.0 # Apache-2.0
-python-heatclient>=1.6.1 # Apache-2.0
-python-keystoneclient>=3.8.0 # Apache-2.0
-python-neutronclient>=5.1.0 # Apache-2.0
-python-novaclient!=7.0.0,>=6.0.0 # Apache-2.0
-python-tackerclient>=0.8.0 # Apache-2.0
-pexpect!=3.3,>=3.1 # ISC License
-requests!=2.12.2,>=2.10.0 # Apache-2.0
-robotframework==3.0.2
-robotframework-httplibrary==0.4.2
-robotframework-requests==0.4.7
-robotframework-sshlibrary==2.1.3;python_version=='2.7'
-scp==0.10.2
-subprocess32;python_version=='2.7'
-dnspython>=1.14.0;python_version=='2.7' # http://www.dnspython.org/LICENSE
-dnspython3!=1.13.0,!=1.14.0,>=1.12.0;python_version>='3.0' # http://www.dnspython.org/LICENSE
-click==6.6
-openbaton-cli==2.2.1-beta7
-mock>=2.0 # BSD
-iniparse==0.4
-PrettyTable<0.8,>=0.7.1 # BSD
-six>=1.9.0 # MIT
-opnfv
-snaps
+# 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.
+pbr!=2.1.0 # Apache-2.0
+PyYAML # MIT
+requests!=2.20.0,!=2.24.0 # Apache-2.0
+robotframework>=3.0
+scp
+cloudify-rest-client
+mock!=4.0.0,!=4.0.1 # BSD
+PrettyTable<0.8 # BSD
+six # MIT
+paramiko # LGPLv2.1+
+Jinja2 # BSD License (3 clause)
+xtesting
+os-client-config # Apache-2.0
+shade # Apache-2.0
+ruamel.yaml.jinja2 # MIT
+tempest # Apache-2.0
+rally
+rally-openstack