openstack-charmers / zaza

A Python3-only functional test framework for Charms
Apache License 2.0
10 stars 46 forks source link

Pin dependencies for py36 compatibility #633

Closed freyes closed 8 months ago

freyes commented 8 months ago

macaroonbakery in version 1.3.4 started depending on protobuf>3.20 which it's not compatible with python 3.6, so this change pins macaroonbakery to 1.3.2 which was the last release compatible with older versions of protobuf.

For more details see:

It's worth to mention that there is no protobuf-4.0, it goes from 3.20 to 4.21 - https://pypi.org/project/protobuf/#history

:warning: I'm proposing this change for stable/xena instead of master, because only Xena and older are the ones that run py36 tests in the Charmed OpenStack gate.

freyes commented 8 months ago

This is the result of pip-compile when using the pinning proposed

#
# This file is autogenerated by pip-compile with python 3.6
# To update, run:
#
#    pip-compile --output-file=requirements.txt.compiled requirements.in
#
aiohttp==3.8.6
    # via
    #   -r requirements.in
    #   python-libmaas
aiosignal==1.2.0
    # via aiohttp
argcomplete==3.1.2
    # via python-libmaas
async-generator==1.10
    # via -r requirements.in
async-timeout==4.0.2
    # via aiohttp
asynctest==0.13.0
    # via aiohttp
attrs==22.2.0
    # via aiohttp
bcrypt==4.0.1
    # via paramiko
cachetools==4.2.4
    # via google-auth
certifi==2023.11.17
    # via
    #   kubernetes
    #   requests
cffi==1.15.1
    # via
    #   cryptography
    #   pynacl
charset-normalizer==2.0.12
    # via
    #   aiohttp
    #   requests
colorclass==2.2.2
    # via python-libmaas
cryptography==3.3.2
    # via
    #   -r requirements.in
    #   paramiko
debtcollector==2.5.0
    # via oslo.config
frozenlist==1.2.0
    # via
    #   aiohttp
    #   aiosignal
google-auth==2.22.0
    # via kubernetes
hvac==0.6.4
    # via -r requirements.in
idna==3.6
    # via
    #   idna-ssl
    #   requests
    #   yarl
idna-ssl==1.1.0
    # via aiohttp
importlib-metadata==4.8.3
    # via
    #   argcomplete
    #   debtcollector
    #   stevedore
importlib-resources==5.4.0
    # via netaddr
jinja2==3.0.3
    # via -r requirements.in
juju==2.9.46.0
    # via -r requirements.in
juju-wait==2.8.4
    # via -r requirements.in
jujubundlelib==0.5.7
    # via theblues
kubernetes==28.1.0
    # via juju
macaroonbakery==1.3.2
    # via
    #   -r requirements.in
    #   juju
    #   python-libmaas
    #   theblues
markupsafe==2.0.1
    # via jinja2
multidict==5.2.0
    # via
    #   aiohttp
    #   yarl
mypy-extensions==1.0.0
    # via typing-inspect
netaddr==0.9.0
    # via oslo.config
oauthlib==3.2.2
    # via
    #   kubernetes
    #   python-libmaas
    #   requests-oauthlib
oslo.config==6.11.3
    # via -r requirements.in
oslo.i18n==5.1.0
    # via oslo.config
paramiko==2.12.0
    # via juju
pbr==6.0.0
    # via
    #   oslo.i18n
    #   stevedore
protobuf==3.19.6 ; python_version <= "3.6"
    # via
    #   -r requirements.in
    #   macaroonbakery
pyasn1==0.5.1
    # via
    #   juju
    #   pyasn1-modules
    #   rsa
pyasn1-modules==0.3.0
    # via google-auth
pycparser==2.21
    # via cffi
pymacaroons==0.13.0
    # via macaroonbakery
pymongo==4.1.1
    # via python-libmaas
pynacl==1.5.0
    # via
    #   macaroonbakery
    #   paramiko
    #   pymacaroons
pyrfc3339==1.1
    # via
    #   juju
    #   macaroonbakery
python-dateutil==2.8.2
    # via kubernetes
python-libmaas==0.6.8
    # via -r requirements.in
pytz==2023.3.post1
    # via
    #   pyrfc3339
    #   python-libmaas
pyyaml==6.0.1
    # via
    #   -r requirements.in
    #   juju
    #   juju-wait
    #   jujubundlelib
    #   kubernetes
    #   oslo.config
    #   python-libmaas
requests==2.27.1
    # via
    #   hvac
    #   kubernetes
    #   macaroonbakery
    #   oslo.config
    #   requests-oauthlib
    #   theblues
requests-oauthlib==1.3.1
    # via kubernetes
rfc3986==1.5.0
    # via oslo.config
rsa==4.9
    # via google-auth
six==1.16.0
    # via
    #   cryptography
    #   google-auth
    #   kubernetes
    #   macaroonbakery
    #   oslo.config
    #   paramiko
    #   pymacaroons
    #   python-dateutil
stevedore==3.5.2
    # via oslo.config
tenacity==8.2.2
    # via -r requirements.in
terminaltables==3.1.10
    # via python-libmaas
theblues==0.5.2
    # via juju
toposort==1.10
    # via juju
typing-extensions==4.1.1
    # via
    #   aiohttp
    #   async-timeout
    #   importlib-metadata
    #   typing-inspect
    #   yarl
typing-inspect==0.9.0
    # via juju
urllib3==1.26.18
    # via
    #   google-auth
    #   kubernetes
    #   requests
websocket-client==1.3.1
    # via kubernetes
websockets==7.0
    # via juju
wrapt==1.16.0
    # via debtcollector
yarl==1.7.2
    # via aiohttp
zipp==3.6.0
    # via
    #   importlib-metadata
    #   importlib-resources
freyes commented 8 months ago

This change will need to be backported to wallaby, victoria, ussuri and train.