From dc080a98fbe9dc23b8318e9c806b9f296fa18a82 Mon Sep 17 00:00:00 2001 From: Andrew Scribner Date: Mon, 7 Aug 2023 03:22:22 -0400 Subject: [PATCH] update tox.ini's update-requirements (#19) - Updates tox.ini's `update-requirements` as described in https://github.com/canonical/argo-operators/pull/100 - requirements: Update requirements.txt files - requirements: Pin juju<3.0 in integration environment Co-authored-by: Orfeas Kourkakis --- requirements-fmt.txt | 22 ++-- requirements-integration.in | 3 + requirements-integration.txt | 202 +++++++++++++++++++++-------------- requirements-lint.txt | 20 ++-- requirements-unit.txt | 143 +++++++++++++++++-------- requirements.txt | 66 ++++++++---- tox.ini | 6 +- 7 files changed, 296 insertions(+), 166 deletions(-) diff --git a/requirements-fmt.txt b/requirements-fmt.txt index c4e65b8..a0318fe 100644 --- a/requirements-fmt.txt +++ b/requirements-fmt.txt @@ -2,21 +2,23 @@ # This file is autogenerated by pip-compile with Python 3.8 # by the following command: # -# pip-compile --resolver=backtracking ./requirements-fmt.in +# pip-compile requirements-fmt.in # -black==22.12.0 - # via -r ./requirements-fmt.in -click==8.1.3 +black==23.7.0 + # via -r requirements-fmt.in +click==8.1.6 # via black -isort==5.10.1 - # via -r ./requirements-fmt.in -mypy-extensions==0.4.3 +isort==5.12.0 + # via -r requirements-fmt.in +mypy-extensions==1.0.0 # via black -pathspec==0.10.2 +packaging==23.1 # via black -platformdirs==2.6.0 +pathspec==0.11.2 + # via black +platformdirs==3.10.0 # via black tomli==2.0.1 # via black -typing-extensions==4.4.0 +typing-extensions==4.7.1 # via black diff --git a/requirements-integration.in b/requirements-integration.in index 0686bc3..292ca9b 100644 --- a/requirements-integration.in +++ b/requirements-integration.in @@ -1,2 +1,5 @@ pytest-operator +# Pinning to <3.0 to ensure compatibility with the 2.9 controller version +# Note: 3.0 is not being maintained anymore +juju<3.0 -r requirements.txt diff --git a/requirements-integration.txt b/requirements-integration.txt index 0b6e23a..b621d17 100644 --- a/requirements-integration.txt +++ b/requirements-integration.txt @@ -2,25 +2,27 @@ # This file is autogenerated by pip-compile with Python 3.8 # by the following command: # -# pip-compile --resolver=backtracking ./requirements-integration.in +# pip-compile requirements-integration.in # -anyio==3.6.2 +anyio==3.7.1 # via - # -r ./requirements.txt + # -r requirements.txt # httpcore asttokens==2.2.1 # via stack-data -attrs==22.1.0 - # via pytest +attrs==23.1.0 + # via + # -r requirements.txt + # jsonschema backcall==0.2.0 # via ipython bcrypt==4.0.1 # via paramiko -cachetools==5.2.0 +cachetools==5.3.1 # via google-auth -certifi==2022.12.7 +certifi==2023.7.22 # via - # -r ./requirements.txt + # -r requirements.txt # httpcore # httpx # kubernetes @@ -29,11 +31,13 @@ cffi==1.15.1 # via # cryptography # pynacl -charmed-kubeflow-chisme==0.0.5 - # via -r ./requirements.txt -charset-normalizer==2.1.1 - # via requests -cryptography==38.0.4 +charmed-kubeflow-chisme==0.2.0 + # via -r requirements.txt +charset-normalizer==3.2.0 + # via + # -r requirements.txt + # requests +cryptography==41.0.3 # via paramiko decorator==5.1.1 # via @@ -41,82 +45,98 @@ decorator==5.1.1 # ipython deepdiff==6.2.1 # via - # -r ./requirements.txt + # -r requirements.txt # charmed-kubeflow-chisme -exceptiongroup==1.0.4 - # via pytest +exceptiongroup==1.1.2 + # via + # -r requirements.txt + # anyio + # pytest executing==1.2.0 # via stack-data -google-auth==2.15.0 +google-auth==2.17.3 # via kubernetes h11==0.14.0 # via - # -r ./requirements.txt + # -r requirements.txt # httpcore -httpcore==0.16.2 +httpcore==0.17.3 # via - # -r ./requirements.txt + # -r requirements.txt # httpx -httpx==0.23.1 +httpx==0.24.1 # via - # -r ./requirements.txt + # -r requirements.txt # lightkube idna==3.4 # via - # -r ./requirements.txt + # -r requirements.txt # anyio + # httpx # requests - # rfc3986 -iniconfig==1.1.1 +importlib-resources==6.0.0 + # via + # -r requirements.txt + # jsonschema +iniconfig==2.0.0 # via pytest -ipdb==0.13.9 +ipdb==0.13.13 # via pytest-operator -ipython==8.7.0 +ipython==8.12.2 # via ipdb -jedi==0.18.2 +jedi==0.19.0 # via ipython jinja2==3.1.2 # via - # -r ./requirements.txt + # -r requirements.txt # charmed-kubeflow-chisme # pytest-operator -juju==3.0.4 - # via pytest-operator +jsonschema==4.17.3 + # via + # -r requirements.txt + # serialized-data-interface +juju==2.9.44.0 + # via + # -r requirements-integration.in + # pytest-operator jujubundlelib==0.5.7 # via theblues -kubernetes==25.3.0 +kubernetes==27.2.0 # via juju -lightkube==0.11.0 +lightkube==0.14.0 # via - # -r ./requirements.txt + # -r requirements.txt # charmed-kubeflow-chisme -lightkube-models==1.25.4.4 +lightkube-models==1.27.1.4 # via - # -r ./requirements.txt + # -r requirements.txt # lightkube macaroonbakery==1.3.1 # via # juju # theblues -markupsafe==2.1.1 +markupsafe==2.1.3 # via - # -r ./requirements.txt + # -r requirements.txt # jinja2 matplotlib-inline==0.1.6 # via ipython -mypy-extensions==0.4.3 +mypy-extensions==1.0.0 # via typing-inspect oauthlib==3.2.2 - # via requests-oauthlib -ops==1.5.4 # via - # -r ./requirements.txt + # kubernetes + # requests-oauthlib +ops==2.5.0 + # via + # -r requirements.txt # charmed-kubeflow-chisme + # serialized-data-interface ordered-set==4.1.0 # via - # -r ./requirements.txt + # -r requirements.txt # deepdiff -packaging==22.0 +packaging==23.1 # via pytest paramiko==2.12.0 # via juju @@ -126,9 +146,13 @@ pexpect==4.8.0 # via ipython pickleshare==0.7.5 # via ipython -pluggy==1.0.0 +pkgutil-resolve-name==1.3.10 + # via + # -r requirements.txt + # jsonschema +pluggy==1.2.0 # via pytest -prompt-toolkit==3.0.36 +prompt-toolkit==3.0.39 # via ipython protobuf==3.20.3 # via macaroonbakery @@ -136,16 +160,16 @@ ptyprocess==0.7.0 # via pexpect pure-eval==0.2.2 # via stack-data -pyasn1==0.4.8 +pyasn1==0.5.0 # via # juju # pyasn1-modules # rsa -pyasn1-modules==0.2.8 +pyasn1-modules==0.3.0 # via google-auth pycparser==2.21 # via cffi -pygments==2.13.0 +pygments==2.15.1 # via ipython pymacaroons==0.13.0 # via macaroonbakery @@ -158,49 +182,56 @@ pyrfc3339==1.1 # via # juju # macaroonbakery -pytest==7.2.0 +pyrsistent==0.19.3 + # via + # -r requirements.txt + # jsonschema +pytest==7.4.0 # via # pytest-asyncio # pytest-operator -pytest-asyncio==0.20.3 +pytest-asyncio==0.21.1 # via pytest-operator -pytest-operator==0.22.0 - # via -r ./requirements-integration.in +pytest-operator==0.28.0 + # via -r requirements-integration.in python-dateutil==2.8.2 # via kubernetes -pytz==2022.6 +pytz==2023.3 # via pyrfc3339 -pyyaml==6.0 +pyyaml==6.0.1 # via - # -r ./requirements.txt + # -r requirements.txt # juju # jujubundlelib # kubernetes # lightkube # ops # pytest-operator -requests==2.28.1 + # serialized-data-interface +requests==2.31.0 # via + # -r requirements.txt # kubernetes # macaroonbakery # requests-oauthlib + # serialized-data-interface # theblues requests-oauthlib==1.3.1 # via kubernetes -rfc3986[idna2008]==1.5.0 - # via - # -r ./requirements.txt - # httpx rsa==4.9 # via google-auth -ruamel-yaml==0.17.21 +ruamel-yaml==0.17.32 # via - # -r ./requirements.txt + # -r requirements.txt # charmed-kubeflow-chisme ruamel-yaml-clib==0.2.7 # via - # -r ./requirements.txt + # -r requirements.txt # ruamel-yaml +serialized-data-interface==0.7.0 + # via + # -r requirements.txt + # charmed-kubeflow-chisme six==1.16.0 # via # asttokens @@ -212,38 +243,49 @@ six==1.16.0 # python-dateutil sniffio==1.3.0 # via - # -r ./requirements.txt + # -r requirements.txt # anyio # httpcore # httpx stack-data==0.6.2 # via ipython +tenacity==8.2.2 + # via + # -r requirements.txt + # charmed-kubeflow-chisme theblues==0.5.2 # via juju -toml==0.10.2 - # via ipdb tomli==2.0.1 - # via pytest -toposort==1.7 + # via + # ipdb + # pytest +toposort==1.10 # via juju -traitlets==5.7.0 +traitlets==5.9.0 # via # ipython # matplotlib-inline -typing-extensions==4.4.0 - # via typing-inspect -typing-inspect==0.8.0 +typing-extensions==4.7.1 + # via + # ipython + # typing-inspect +typing-inspect==0.9.0 # via juju -urllib3==1.26.13 +urllib3==2.0.4 # via + # -r requirements.txt # kubernetes # requests -wcwidth==0.2.5 +wcwidth==0.2.6 # via prompt-toolkit -websocket-client==1.4.2 - # via kubernetes +websocket-client==1.6.1 + # via + # -r requirements.txt + # kubernetes + # ops websockets==7.0 # via juju - -# The following packages are considered to be unsafe in a requirements file: -# setuptools +zipp==3.16.2 + # via + # -r requirements.txt + # importlib-resources diff --git a/requirements-lint.txt b/requirements-lint.txt index d7b8c89..96e927b 100644 --- a/requirements-lint.txt +++ b/requirements-lint.txt @@ -2,11 +2,11 @@ # This file is autogenerated by pip-compile with Python 3.8 # by the following command: # -# pip-compile --resolver=backtracking requirements-lint.in +# pip-compile requirements-lint.in # -black==22.12.0 +black==23.7.0 # via -r requirements-fmt.txt -click==8.1.3 +click==8.1.6 # via # -r requirements-fmt.txt # black @@ -25,21 +25,25 @@ flake8-copyright==0.2.4 # via -r requirements-lint.in flake8-docstrings==1.7.0 # via -r requirements-lint.in -isort==5.10.1 +isort==5.12.0 # via -r requirements-fmt.txt mccabe==0.7.0 # via flake8 -mypy-extensions==0.4.3 +mypy-extensions==1.0.0 # via # -r requirements-fmt.txt # black -pathspec==0.10.2 +packaging==23.1 + # via + # -r requirements-fmt.txt + # black +pathspec==0.11.2 # via # -r requirements-fmt.txt # black pep8-naming==0.13.3 # via -r requirements-lint.in -platformdirs==2.6.0 +platformdirs==3.10.0 # via # -r requirements-fmt.txt # black @@ -58,7 +62,7 @@ tomli==2.0.1 # -r requirements-fmt.txt # black # pyproject-flake8 -typing-extensions==4.4.0 +typing-extensions==4.7.1 # via # -r requirements-fmt.txt # black diff --git a/requirements-unit.txt b/requirements-unit.txt index 72f7b3d..3fd53d0 100644 --- a/requirements-unit.txt +++ b/requirements-unit.txt @@ -2,104 +2,153 @@ # This file is autogenerated by pip-compile with Python 3.8 # by the following command: # -# pip-compile --resolver=backtracking ./requirements-unit.in +# pip-compile requirements-unit.in # -anyio==3.6.2 +anyio==3.7.1 # via - # -r ./requirements.txt + # -r requirements.txt # httpcore -attrs==22.1.0 - # via pytest -certifi==2022.12.7 +attrs==23.1.0 + # via + # -r requirements.txt + # jsonschema +certifi==2023.7.22 # via - # -r ./requirements.txt + # -r requirements.txt # httpcore # httpx -charmed-kubeflow-chisme==0.0.5 - # via -r ./requirements.txt -coverage==6.5.0 - # via -r ./requirements-unit.in + # requests +charmed-kubeflow-chisme==0.2.0 + # via -r requirements.txt +charset-normalizer==3.2.0 + # via + # -r requirements.txt + # requests +coverage==7.2.7 + # via -r requirements-unit.in deepdiff==6.2.1 # via - # -r ./requirements.txt + # -r requirements.txt # charmed-kubeflow-chisme -exceptiongroup==1.0.4 - # via pytest +exceptiongroup==1.1.2 + # via + # -r requirements.txt + # anyio + # pytest h11==0.14.0 # via - # -r ./requirements.txt + # -r requirements.txt # httpcore -httpcore==0.16.2 +httpcore==0.17.3 # via - # -r ./requirements.txt + # -r requirements.txt # httpx -httpx==0.23.1 +httpx==0.24.1 # via - # -r ./requirements.txt + # -r requirements.txt # lightkube idna==3.4 # via - # -r ./requirements.txt + # -r requirements.txt # anyio - # rfc3986 -iniconfig==1.1.1 + # httpx + # requests +importlib-resources==6.0.0 + # via + # -r requirements.txt + # jsonschema +iniconfig==2.0.0 # via pytest jinja2==3.1.2 # via - # -r ./requirements.txt + # -r requirements.txt # charmed-kubeflow-chisme -lightkube==0.11.0 +jsonschema==4.17.3 + # via + # -r requirements.txt + # serialized-data-interface +lightkube==0.14.0 # via - # -r ./requirements.txt + # -r requirements.txt # charmed-kubeflow-chisme -lightkube-models==1.25.4.4 +lightkube-models==1.27.1.4 # via - # -r ./requirements.txt + # -r requirements.txt # lightkube -markupsafe==2.1.1 +markupsafe==2.1.3 # via - # -r ./requirements.txt + # -r requirements.txt # jinja2 -ops==1.5.4 +ops==2.5.0 # via - # -r ./requirements.txt + # -r requirements.txt # charmed-kubeflow-chisme + # serialized-data-interface ordered-set==4.1.0 # via - # -r ./requirements.txt + # -r requirements.txt # deepdiff -packaging==22.0 +packaging==23.1 # via pytest -pluggy==1.0.0 +pkgutil-resolve-name==1.3.10 + # via + # -r requirements.txt + # jsonschema +pluggy==1.2.0 # via pytest -pytest==7.2.0 +pyrsistent==0.19.3 + # via + # -r requirements.txt + # jsonschema +pytest==7.4.0 # via - # -r ./requirements-unit.in + # -r requirements-unit.in # pytest-mock -pytest-mock==3.10.0 - # via -r ./requirements-unit.in -pyyaml==6.0 +pytest-mock==3.11.1 + # via -r requirements-unit.in +pyyaml==6.0.1 # via - # -r ./requirements.txt + # -r requirements.txt # lightkube # ops -rfc3986[idna2008]==1.5.0 + # serialized-data-interface +requests==2.31.0 # via - # -r ./requirements.txt - # httpx -ruamel-yaml==0.17.21 + # -r requirements.txt + # serialized-data-interface +ruamel-yaml==0.17.32 # via - # -r ./requirements.txt + # -r requirements.txt # charmed-kubeflow-chisme ruamel-yaml-clib==0.2.7 # via - # -r ./requirements.txt + # -r requirements.txt # ruamel-yaml +serialized-data-interface==0.7.0 + # via + # -r requirements.txt + # charmed-kubeflow-chisme sniffio==1.3.0 # via - # -r ./requirements.txt + # -r requirements.txt # anyio # httpcore # httpx +tenacity==8.2.2 + # via + # -r requirements.txt + # charmed-kubeflow-chisme tomli==2.0.1 # via pytest +urllib3==2.0.4 + # via + # -r requirements.txt + # requests +websocket-client==1.6.1 + # via + # -r requirements.txt + # ops +zipp==3.16.2 + # via + # -r requirements.txt + # importlib-resources diff --git a/requirements.txt b/requirements.txt index e970155..8c39090 100644 --- a/requirements.txt +++ b/requirements.txt @@ -2,58 +2,86 @@ # This file is autogenerated by pip-compile with Python 3.8 # by the following command: # -# pip-compile --resolver=backtracking ./requirements.in +# pip-compile requirements.in # -anyio==3.6.2 +anyio==3.7.1 # via httpcore -certifi==2022.12.7 +attrs==23.1.0 + # via jsonschema +certifi==2023.7.22 # via # httpcore # httpx -charmed-kubeflow-chisme==0.0.5 - # via -r ./requirements.in + # requests +charmed-kubeflow-chisme==0.2.0 + # via -r requirements.in +charset-normalizer==3.2.0 + # via requests deepdiff==6.2.1 # via charmed-kubeflow-chisme +exceptiongroup==1.1.2 + # via anyio h11==0.14.0 # via httpcore -httpcore==0.16.2 +httpcore==0.17.3 # via httpx -httpx==0.23.1 +httpx==0.24.1 # via lightkube idna==3.4 # via # anyio - # rfc3986 + # httpx + # requests +importlib-resources==6.0.0 + # via jsonschema jinja2==3.1.2 # via charmed-kubeflow-chisme -lightkube==0.11.0 +jsonschema==4.17.3 + # via serialized-data-interface +lightkube==0.14.0 # via - # -r ./requirements.in + # -r requirements.in # charmed-kubeflow-chisme -lightkube-models==1.25.4.4 +lightkube-models==1.27.1.4 # via - # -r ./requirements.in + # -r requirements.in # lightkube -markupsafe==2.1.1 +markupsafe==2.1.3 # via jinja2 -ops==1.5.4 +ops==2.5.0 # via - # -r ./requirements.in + # -r requirements.in # charmed-kubeflow-chisme + # serialized-data-interface ordered-set==4.1.0 # via deepdiff -pyyaml==6.0 +pkgutil-resolve-name==1.3.10 + # via jsonschema +pyrsistent==0.19.3 + # via jsonschema +pyyaml==6.0.1 # via # lightkube # ops -rfc3986[idna2008]==1.5.0 - # via httpx -ruamel-yaml==0.17.21 + # serialized-data-interface +requests==2.31.0 + # via serialized-data-interface +ruamel-yaml==0.17.32 # via charmed-kubeflow-chisme ruamel-yaml-clib==0.2.7 # via ruamel-yaml +serialized-data-interface==0.7.0 + # via charmed-kubeflow-chisme sniffio==1.3.0 # via # anyio # httpcore # httpx +tenacity==8.2.2 + # via charmed-kubeflow-chisme +urllib3==2.0.4 + # via requests +websocket-client==1.6.1 + # via ops +zipp==3.16.2 + # via importlib-resources diff --git a/tox.ini b/tox.ini index df1ae0a..a6a86c6 100644 --- a/tox.ini +++ b/tox.ini @@ -32,8 +32,10 @@ allowlist_externals = pip-compile xargs commands = -; uses 'bash -c' because piping didn't work in regular tox commands - bash -c \'find . -type f -name "requirements*.in" | xargs --replace=\{\} pip-compile --resolver=backtracking \{\}' + ; we must preserve the order of compilation, since each *.in file depends on some *.txt file. + ; For example, requirements-unit.in depends on requirements.txt and we must compile first + ; requirements.txt to ensure that requirements-unit.txt get the same dependency as the requirements.txt + bash -c 'for pattern in "requirements.in" "requirements-fmt.in" "requirements*.in"; do find . -type f -name "$pattern" -exec bash -c "cd \$(dirname "{}") && pip-compile --resolver=backtracking \$(basename "{}")" \;; done' deps = pip-tools description = Update requirements files by executing pip-compile on all requirements*.in files, including those in subdirs.