Skip to content

Broken and outdated requirements.txt file #2063

@sean-freeman

Description

@sean-freeman
SUMMARY

Broken and outdated requirements.txt file

Requirements file should track MS Azure CLI releases, aiding compatibility and end-user experience. Notably as there is a hidden dependency for the main MS Azure CLI azure-cli Python Package.

At the moment the requirements file version locks various Python Packages to much older versions that cause conflict/incompatibility with later releases of the MS Azure CLI.

Most of the commits for the requirements file are to version bump the MS Azure CLI (see file history https://github.com/ansible-collections/azure/commits/dev/requirements.txt), and others fear to amend other version locked packages.

In addition, this requirements file is effectively a pip freeze and can be much shorter if importing only the "top" packages which would automatically resolve their own dependencies.

ISSUE TYPE
  • Bug Report
COLLECTION VERSION

ALL

STEPS TO REPRODUCE

Setup isolated test

brew install python@3.12
python -m venv /venv
source /venv/bin/activate
pip install ansible-core

Option 1 - lazy

# Due to Python Package conflicts, MS Azure CLI must always be installed first
# and then the version-locked Python Packages required by the Ansible Collection for MS Azure
# which will downgrade various Python Packages.

# Append 'msrestazure' Python Package that is hidden dependency for azure-common Python Package,
# which would cause Ansible Module util 'azure_rm_common' to break login

pip install --resume-retries 10 \
azure-cli==2.75.0 \
msrestazure \
msgraph-sdk \
azure-mgmt-resourcehealth

pip install -r https://raw.githubusercontent.com/ansible-collections/azure/refs/heads/dev/requirements.txt --resume-retries 10

Option 2 - detailed

# Due to Python Package conflicts, MS Azure CLI must always be installed first
# and then the version-locked Python Packages required by the Ansible Collection for MS Azure
# which will downgrade various Python Packages.

# Append 'msrestazure' Python Package that is hidden dependency for azure-common Python Package,
# which would cause Ansible Module util 'azure_rm_common' to break login

pip install --resume-retries 10 \
azure-cli==2.75.0 \
msrestazure \
msgraph-sdk \
azure-mgmt-resourcehealth
pip after initial Azure CLI 2.75.0 installation
adal==1.2.7
aiohappyeyeballs==2.6.1
aiohttp==3.12.15
aiosignal==1.4.0
antlr4-python3-runtime==4.13.2
anyio==4.10.0
applicationinsights==0.11.10
argcomplete==3.5.3
attrs==25.3.0
azure-appconfiguration==1.7.1
azure-batch==15.0.0b2
azure-cli==2.75.0
azure-cli-core==2.75.0
azure-cli-telemetry==1.1.0
azure-common==1.1.28
azure-core==1.35.1
azure-cosmos==3.2.0
azure-data-tables==12.4.0
azure-datalake-store==1.0.1
azure-identity==1.25.0
azure-keyvault-administration==4.4.0b2
azure-keyvault-certificates==4.7.0
azure-keyvault-keys==4.11.0b1
azure-keyvault-secrets==4.7.0
azure-keyvault-securitydomain==1.0.0b1
azure-mgmt-advisor==9.0.0
azure-mgmt-apimanagement==4.0.0
azure-mgmt-appconfiguration==3.1.0
azure-mgmt-appcontainers==2.0.0
azure-mgmt-applicationinsights==1.0.0
azure-mgmt-authorization==4.0.0
azure-mgmt-batch==17.3.0
azure-mgmt-batchai==7.0.0b1
azure-mgmt-billing==6.0.0
azure-mgmt-botservice==2.0.0
azure-mgmt-cdn==12.0.0
azure-mgmt-cognitiveservices==13.5.0
azure-mgmt-compute==34.1.0
azure-mgmt-containerinstance==10.2.0b1
azure-mgmt-containerregistry==14.1.0b1
azure-mgmt-containerservice==37.0.0
azure-mgmt-core==1.6.0
azure-mgmt-cosmosdb==9.8.0
azure-mgmt-databoxedge==1.0.0
azure-mgmt-datalake-store==1.1.0b1
azure-mgmt-datamigration==10.0.0
azure-mgmt-dns==8.0.0
azure-mgmt-eventgrid==10.2.0b2
azure-mgmt-eventhub==10.1.0
azure-mgmt-extendedlocation==1.0.0b2
azure-mgmt-hdinsight==9.0.0b3
azure-mgmt-imagebuilder==1.3.0
azure-mgmt-iotcentral==10.0.0b2
azure-mgmt-iothub==3.0.0
azure-mgmt-iothubprovisioningservices==1.1.0
azure-mgmt-keyvault==11.0.0
azure-mgmt-loganalytics==13.0.0b4
azure-mgmt-managementgroups==1.0.0
azure-mgmt-maps==2.0.0
azure-mgmt-marketplaceordering==1.1.0
azure-mgmt-media==9.0.0
azure-mgmt-monitor==7.0.0
azure-mgmt-msi==7.0.0
azure-mgmt-mysqlflexibleservers==1.0.0b3
azure-mgmt-netapp==10.1.0
azure-mgmt-policyinsights==1.1.0b4
azure-mgmt-postgresqlflexibleservers==1.1.0b2
azure-mgmt-privatedns==1.0.0
azure-mgmt-rdbms==10.2.0b17
azure-mgmt-recoveryservices==3.1.0
azure-mgmt-recoveryservicesbackup==9.2.0
azure-mgmt-redhatopenshift==1.5.0
azure-mgmt-redis==14.5.0
azure-mgmt-resource==23.3.0
azure-mgmt-resourcehealth==1.0.0b6
azure-mgmt-search==9.2.0
azure-mgmt-security==6.0.0
azure-mgmt-servicebus==8.2.1
azure-mgmt-servicefabric==2.1.0
azure-mgmt-servicefabricmanagedclusters==2.1.0b1
azure-mgmt-servicelinker==1.2.0b3
azure-mgmt-signalr==2.0.0b2
azure-mgmt-sql==4.0.0b21
azure-mgmt-sqlvirtualmachine==1.0.0b5
azure-mgmt-storage==23.0.0
azure-mgmt-synapse==2.1.0b5
azure-mgmt-trafficmanager==1.0.0
azure-mgmt-web==7.3.1
azure-monitor-query==1.2.0
azure-multiapi-storage==1.4.1
azure-storage-common==1.4.2
azure-synapse-accesscontrol==0.5.0
azure-synapse-artifacts==0.20.0
azure-synapse-managedprivateendpoints==0.4.0
azure-synapse-spark==0.7.0
bcrypt==4.3.0
certifi==2025.8.3
cffi==2.0.0
chardet==5.2.0
charset-normalizer==3.4.3
colorama==0.4.6
cryptography==46.0.1
decorator==5.2.1
Deprecated==1.2.18
fabric==3.2.2
frozenlist==1.7.0
h11==0.16.0
h2==4.3.0
hpack==4.1.0
httpcore==1.0.9
httpx==0.28.1
humanfriendly==10.0
hyperframe==6.1.0
idna==3.10
importlib_metadata==8.7.0
invoke==2.2.0
isodate==0.7.2
javaproperties==0.5.2
jmespath==1.0.1
jsondiff==2.0.0
knack==0.11.0
microsoft-kiota-abstractions==1.9.7
microsoft-kiota-authentication-azure==1.9.7
microsoft-kiota-http==1.9.7
microsoft-kiota-serialization-form==1.9.7
microsoft-kiota-serialization-json==1.9.7
microsoft-kiota-serialization-multipart==1.9.7
microsoft-kiota-serialization-text==1.9.7
microsoft-security-utilities-secret-masker==1.0.0b4
msal==1.33.0b1
msal-extensions==1.2.0
msgraph-core==1.3.8
msgraph-sdk==1.45.0
msrest==0.7.1
msrestazure==0.6.4.post1
multidict==6.6.4
oauthlib==3.3.1
opentelemetry-api==1.37.0
opentelemetry-sdk==1.37.0
opentelemetry-semantic-conventions==0.58b0
packaging==25.0
paramiko==3.5.1
pip==25.1.1
pkginfo==1.12.1.2
portalocker==2.10.1
propcache==0.3.2
psutil==7.1.0
py-deviceid==0.1.1
pycomposefile==0.0.34
pycparser==2.23
PyGithub==1.59.1
Pygments==2.19.2
PyJWT==2.10.1
PyNaCl==1.5.0
pyOpenSSL==25.3.0
PySocks==1.7.1
python-dateutil==2.9.0.post0
PyYAML==6.0.2
requests==2.32.5
requests-oauthlib==2.0.0
scp==0.13.6
semver==3.0.4
setuptools==80.9.0
six==1.17.0
sniffio==1.3.1
sshtunnel==0.1.5
std-uritemplate==2.0.5
tabulate==0.9.0
typing_extensions==4.15.0
urllib3==2.5.0
websocket-client==1.3.3
wrapt==1.17.3
xmltodict==0.15.1
yarl==1.20.1
zipp==3.23.0
# Remove 'azure-iot-hub' Python Package that is abandoned, which will require 'azure-macro-utils', and which uses 'uamqp' that has a compile cmake error - https://github.com/ansible-collections/azure/issues/1511

# Install downgraded Python Packages for Ansible Collection to avoid errors
pip install --resume-retries 10 \
azure-mgmt-core==1.4.0 \
azure-mgmt-automation==1.1.0b4 \
azure-mgmt-compute==33.0.0 \
azure-mgmt-containerregistry==10.3.0 \
azure-mgmt-containerservice==32.1.0 \
azure-mgmt-datafactory==9.0.0 \
azure-mgmt-managedservices==7.0.0b2 \
azure-mgmt-monitor==6.0.2 \
azure-mgmt-network==28.0.0 \
azure-mgmt-notificationhubs==8.1.0b1 \
azure-mgmt-search==9.2.0b2 \
azure-mgmt-storage==21.2.1 \
azure-storage-blob==12.23.0b1

# Ignore - seemingly unnecessary packages
# pip install --resume-retries 10 \
# azure-containerregistry \
# azure-keyvault \
# azure-nspkg \
# azure-servicebus
# azure-mgmt-nspkg \
# azure-mgmt-resourcegraph \
# azure-mgmt-devtestlabs \
# netaddr \
# oras \
# pandas
pip after downgraded Python Packages are installed
adal==1.2.7
aiohappyeyeballs==2.6.1
aiohttp==3.12.15
aiosignal==1.4.0
antlr4-python3-runtime==4.13.2
anyio==4.10.0
applicationinsights==0.11.10
argcomplete==3.5.3
attrs==25.3.0
azure-appconfiguration==1.7.1
azure-batch==15.0.0b2
azure-cli==2.75.0
azure-cli-core==2.75.0
azure-cli-telemetry==1.1.0
azure-common==1.1.28
azure-core==1.35.1
azure-cosmos==3.2.0
azure-data-tables==12.4.0
azure-datalake-store==1.0.1
azure-identity==1.25.0
azure-keyvault-administration==4.4.0b2
azure-keyvault-certificates==4.7.0
azure-keyvault-keys==4.11.0b1
azure-keyvault-secrets==4.7.0
azure-keyvault-securitydomain==1.0.0b1
azure-mgmt-advisor==9.0.0
azure-mgmt-apimanagement==4.0.0
azure-mgmt-appconfiguration==3.1.0
azure-mgmt-appcontainers==2.0.0
azure-mgmt-applicationinsights==1.0.0
azure-mgmt-authorization==4.0.0
azure-mgmt-automation==1.1.0b4
azure-mgmt-batch==17.3.0
azure-mgmt-batchai==7.0.0b1
azure-mgmt-billing==6.0.0
azure-mgmt-botservice==2.0.0
azure-mgmt-cdn==12.0.0
azure-mgmt-cognitiveservices==13.5.0
azure-mgmt-compute==33.0.0
azure-mgmt-containerinstance==10.2.0b1
azure-mgmt-containerregistry==10.3.0
azure-mgmt-containerservice==32.1.0
azure-mgmt-core==1.4.0
azure-mgmt-cosmosdb==9.8.0
azure-mgmt-databoxedge==1.0.0
azure-mgmt-datafactory==9.0.0
azure-mgmt-datalake-store==1.1.0b1
azure-mgmt-datamigration==10.0.0
azure-mgmt-dns==8.0.0
azure-mgmt-eventgrid==10.2.0b2
azure-mgmt-eventhub==10.1.0
azure-mgmt-extendedlocation==1.0.0b2
azure-mgmt-hdinsight==9.0.0b3
azure-mgmt-imagebuilder==1.3.0
azure-mgmt-iotcentral==10.0.0b2
azure-mgmt-iothub==3.0.0
azure-mgmt-iothubprovisioningservices==1.1.0
azure-mgmt-keyvault==11.0.0
azure-mgmt-loganalytics==13.0.0b4
azure-mgmt-managedservices==7.0.0b2
azure-mgmt-managementgroups==1.0.0
azure-mgmt-maps==2.0.0
azure-mgmt-marketplaceordering==1.1.0
azure-mgmt-media==9.0.0
azure-mgmt-monitor==6.0.2
azure-mgmt-msi==7.0.0
azure-mgmt-mysqlflexibleservers==1.0.0b3
azure-mgmt-netapp==10.1.0
azure-mgmt-network==28.0.0
azure-mgmt-notificationhubs==8.1.0b1
azure-mgmt-policyinsights==1.1.0b4
azure-mgmt-postgresqlflexibleservers==1.1.0b2
azure-mgmt-privatedns==1.0.0
azure-mgmt-rdbms==10.2.0b17
azure-mgmt-recoveryservices==3.1.0
azure-mgmt-recoveryservicesbackup==9.2.0
azure-mgmt-redhatopenshift==1.5.0
azure-mgmt-redis==14.5.0
azure-mgmt-resource==23.3.0
azure-mgmt-resourcehealth==1.0.0b6
azure-mgmt-search==9.2.0b2
azure-mgmt-security==6.0.0
azure-mgmt-servicebus==8.2.1
azure-mgmt-servicefabric==2.1.0
azure-mgmt-servicefabricmanagedclusters==2.1.0b1
azure-mgmt-servicelinker==1.2.0b3
azure-mgmt-signalr==2.0.0b2
azure-mgmt-sql==4.0.0b21
azure-mgmt-sqlvirtualmachine==1.0.0b5
azure-mgmt-storage==21.2.1
azure-mgmt-synapse==2.1.0b5
azure-mgmt-trafficmanager==1.0.0
azure-mgmt-web==7.3.1
azure-monitor-query==1.2.0
azure-multiapi-storage==1.4.1
azure-storage-blob==12.23.0b1
azure-storage-common==1.4.2
azure-synapse-accesscontrol==0.5.0
azure-synapse-artifacts==0.20.0
azure-synapse-managedprivateendpoints==0.4.0
azure-synapse-spark==0.7.0
bcrypt==4.3.0
certifi==2025.8.3
cffi==2.0.0
chardet==5.2.0
charset-normalizer==3.4.3
colorama==0.4.6
cryptography==46.0.1
decorator==5.2.1
Deprecated==1.2.18
fabric==3.2.2
frozenlist==1.7.0
h11==0.16.0
h2==4.3.0
hpack==4.1.0
httpcore==1.0.9
httpx==0.28.1
humanfriendly==10.0
hyperframe==6.1.0
idna==3.10
importlib_metadata==8.7.0
invoke==2.2.0
isodate==0.7.2
javaproperties==0.5.2
jmespath==1.0.1
jsondiff==2.0.0
knack==0.11.0
microsoft-kiota-abstractions==1.9.7
microsoft-kiota-authentication-azure==1.9.7
microsoft-kiota-http==1.9.7
microsoft-kiota-serialization-form==1.9.7
microsoft-kiota-serialization-json==1.9.7
microsoft-kiota-serialization-multipart==1.9.7
microsoft-kiota-serialization-text==1.9.7
microsoft-security-utilities-secret-masker==1.0.0b4
msal==1.33.0b1
msal-extensions==1.2.0
msgraph-core==1.3.8
msgraph-sdk==1.45.0
msrest==0.7.1
msrestazure==0.6.4.post1
multidict==6.6.4
oauthlib==3.3.1
opentelemetry-api==1.37.0
opentelemetry-sdk==1.37.0
opentelemetry-semantic-conventions==0.58b0
packaging==25.0
paramiko==3.5.1
pkginfo==1.12.1.2
portalocker==2.10.1
propcache==0.3.2
psutil==7.1.0
py-deviceid==0.1.1
pycomposefile==0.0.34
pycparser==2.23
PyGithub==1.59.1
Pygments==2.19.2
PyJWT==2.10.1
PyNaCl==1.5.0
pyOpenSSL==25.3.0
PySocks==1.7.1
python-dateutil==2.9.0.post0
PyYAML==6.0.2
requests==2.32.5
requests-oauthlib==2.0.0
scp==0.13.6
semver==3.0.4
setuptools==80.9.0
six==1.17.0
sniffio==1.3.1
sshtunnel==0.1.5
std-uritemplate==2.0.5
tabulate==0.9.0
typing_extensions==4.15.0
urllib3==2.5.0
websocket-client==1.3.3
wrapt==1.17.3
xmltodict==0.15.1
yarl==1.20.1
zipp==3.23.0

Create test file ansible_playbook_test.yml

---

- name: Ansible Task to test MS Azure connectivity
  hosts: localhost
  any_errors_fatal: true
  environment:
    ANSIBLE_AZURE_AUTH_SOURCE: "auto" # Set to auto to use module parameters

  tasks:
    - name: Get all SSH Public Keys in MS Azure
      azure.azcollection.azure_rm_sshpublickey_info:
        subscription_id: ""
        tenant: ""

Execute Ansible Playbook test

export ANSIBLE_COLLECTIONS_PATH="$PWD/ansible_collections"
ansible-galaxy collection install -p ./ansible_collections azure.azcollection
ansible-playbook ansible_playbook_test.yml -e "@./ansible_extravars.yml"

Metadata

Metadata

Assignees

No one assigned

    Labels

    work inIn trying to solve, or in working with contributors

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions