# Pip requirements file for Ansible zhmc modules runtime dependencies.
#
# 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.

# Make sure that the package versions in minimum-constraints.txt are also
# the minimum versions required in requirements.txt and dev-requirements.txt.


# Direct dependencies (except pip, setuptools, wheel):

ansible>=2.4.0.0 # GPLv3 + BSD
# Note: The zhmc-ansible-modules only use ansible/module_utils/basic.py
# of the ansible package, which is BSD licensed.
pbr>=1.10.0 # Apache-2.0
requests>=2.20.0 # Apache-2.0 (requests.packages.urllib3 and from zhmcclient)
# certify is needed by requests
certifi>=2017.4.17

zhmcclient>=0.20.0 # Apache-2.0
# git+https://github.com/zhmcclient/python-zhmcclient@master#egg=zhmcclient

# Indirect dependencies (commented out, only listed to document their license):

# cryptography 3.1 has deprecated Python 3.5 support and issues a deprecation
# warning that causes ansible-test to fail
# cryptography 3.2 addresses a dependabot security issue
cryptography>=3.0,<3.1; python_version <= '3.5'  # BSD, from paramiko -> ansible
cryptography>=3.2; python_version >= '3.6'  # BSD, from paramiko -> ansible
packaging>=20.0
# PyYAML 5.3 has removed support for Python 3.4
PyYAML>=5.1; python_version == '2.7'
PyYAML>=5.1,<5.3; python_version == '3.4'
PyYAML>=5.1; python_version >= '3.5' and python_version <= '3.7'
PyYAML>=5.1.2; python_version >= '3.8'

# bcrypt is used by paramiko -> ansible
# bcrypt 3.2.0 removed support for Python 2.7, 3.4, 3.5
bcrypt>=3.0.0,<3.2.0; python_version <= '3.5'
bcrypt>=3.2.0; python_version >= '3.6'

# asn1crypto  # MIT, from cryptography -> ansible
# certifi # ISC, from requests
# cffi # MIT, from cryptography -> paramiko -> ansible
# chardet # LGPL, from requests
# decorator # new BSD, from zhmcclient
# docopt # MIT, from stomp.py -> zhmcclient
# enum34 # BSD, from cryptography -> paramiko -> ansible and flake8 for py<3.4
# idna # BSD, from requests
# ipaddress # PSF, from cryptography -> paramiko -> ansible
# Jinja2 # BSD, from ansible
# MarkupSafe # BSD, from Jinja2 -> ansible
# paramiko # LGPL, from ansible
# pyasn1 # BSD, from paramiko -> ansible
# pycparser # BSD, from cffi -> cryptography -> paramiko -> ansible
# pycrypto # Public domain, from ansible<2.4
# PyNaCl # Apache 2.0, from paramiko -> ansible
# PyYAML # MIT, from ansible and zhmcclient
# pytz # MIT, from zhmcclient and Babel -> Sphinx
# six # MIT, from zhmcclient and others
# stomp.py # Apache, from zhmcclient
# urllib3 # MIT, from requests
