diff --git a/.github/workflows/integrate.yaml b/.github/workflows/integrate.yaml index 38dc81b..5daf59d 100644 --- a/.github/workflows/integrate.yaml +++ b/.github/workflows/integrate.yaml @@ -53,8 +53,8 @@ jobs: with: provider: microk8s channel: 1.29-strict/stable - juju-channel: 3.4/stable - charmcraft-channel: latest/candidate + juju-channel: 3.6/stable + charmcraft-channel: 3.x/stable - name: Test run: sg snap_microk8s -c "tox -vve integration -- --model testing" diff --git a/.github/workflows/publish.yaml b/.github/workflows/publish.yaml index 5765f96..93a1594 100644 --- a/.github/workflows/publish.yaml +++ b/.github/workflows/publish.yaml @@ -91,4 +91,4 @@ jobs: charm-path: ${{ matrix.charm-path }} channel: ${{ steps.parse-inputs.outputs.destination_channel }} tag-prefix: ${{ steps.parse-inputs.outputs.tag_prefix }} - charmcraft-channel: latest/candidate + charmcraft-channel: 3.x/stable diff --git a/requirements-fmt.txt b/requirements-fmt.txt index 84fabbf..0c65b6e 100644 --- a/requirements-fmt.txt +++ b/requirements-fmt.txt @@ -2,23 +2,23 @@ # This file is autogenerated by pip-compile with Python 3.8 # by the following command: # -# pip-compile requirements-fmt.in +# pip-compile ./requirements-fmt.in # -black==23.7.0 - # via -r requirements-fmt.in +black==24.8.0 + # via -r ./requirements-fmt.in click==8.1.7 # via black -isort==5.12.0 - # via -r requirements-fmt.in +isort==5.13.2 + # via -r ./requirements-fmt.in mypy-extensions==1.0.0 # via black -packaging==23.1 +packaging==24.2 # via black -pathspec==0.11.2 +pathspec==0.12.1 # via black -platformdirs==3.10.0 +platformdirs==4.3.6 # via black -tomli==2.0.1 +tomli==2.2.1 # via black -typing-extensions==4.7.1 +typing-extensions==4.12.2 # via black diff --git a/requirements-integration.txt b/requirements-integration.txt index 4366c77..5c74244 100644 --- a/requirements-integration.txt +++ b/requirements-integration.txt @@ -2,45 +2,47 @@ # This file is autogenerated by pip-compile with Python 3.8 # by the following command: # -# pip-compile requirements-integration.in +# pip-compile ./requirements-integration.in # -aiohttp==3.8.5 - # via -r requirements-integration.in +aiohappyeyeballs==2.4.4 + # via aiohttp +aiohttp==3.10.11 + # via -r ./requirements-integration.in aiosignal==1.3.1 # via aiohttp -anyio==4.4.0 +anyio==4.5.2 # via httpx -asttokens==2.4.0 +asttokens==3.0.0 # via stack-data -async-timeout==4.0.3 +async-timeout==5.0.1 # via aiohttp -attrs==23.1.0 +attrs==24.2.0 # via # aiohttp # jsonschema backcall==0.2.0 # via ipython -bcrypt==4.0.1 +backports-strenum==1.3.1 + # via juju +bcrypt==4.2.1 # via paramiko -cachetools==5.3.1 +cachetools==5.5.0 # via google-auth -certifi==2023.7.22 +certifi==2024.8.30 # via # httpcore # httpx # kubernetes # requests -cffi==1.15.1 +cffi==1.17.1 # via # cryptography # pynacl charmed-kubeflow-chisme==0.4.3 - # via -r requirements-integration.in -charset-normalizer==3.2.0 - # via - # aiohttp - # requests -cryptography==41.0.3 + # via -r ./requirements-integration.in +charset-normalizer==3.4.0 + # via requests +cryptography==44.0.0 # via paramiko decorator==5.1.1 # via @@ -48,67 +50,67 @@ decorator==5.1.1 # ipython deepdiff==6.2.1 # via charmed-kubeflow-chisme -exceptiongroup==1.1.3 +exceptiongroup==1.2.2 # via # anyio # pytest -executing==1.2.0 +executing==2.1.0 # via stack-data -frozenlist==1.4.0 +frozenlist==1.5.0 # via # aiohttp # aiosignal -google-auth==2.22.0 +google-auth==2.36.0 # via kubernetes h11==0.14.0 # via httpcore -httpcore==1.0.5 +httpcore==1.0.7 # via httpx -httpx==0.27.0 +httpx==0.28.0 # via lightkube -hvac==1.2.1 +hvac==2.3.0 # via juju -idna==3.4 +idna==3.10 # via # anyio # httpx # requests # yarl -importlib-resources==6.4.3 +importlib-resources==6.4.5 # via jsonschema iniconfig==2.0.0 # via pytest ipdb==0.13.13 # via pytest-operator -ipython==8.12.2 +ipython==8.12.3 # via ipdb -jedi==0.19.0 +jedi==0.19.2 # via ipython -jinja2==3.1.2 +jinja2==3.1.4 # via - # -r requirements-integration.in + # -r ./requirements-integration.in # charmed-kubeflow-chisme # pytest-operator jsonschema==4.17.3 # via serialized-data-interface -juju==3.2.2 +juju==3.6.0.0 # via - # -r requirements-integration.in + # -r ./requirements-integration.in # charmed-kubeflow-chisme # pytest-operator -kubernetes==27.2.0 +kubernetes==30.1.0 # via juju -lightkube==0.15.3 +lightkube==0.15.5 # via charmed-kubeflow-chisme -lightkube-models==1.30.0.8 +lightkube-models==1.31.1.8 # via lightkube -macaroonbakery==1.3.1 +macaroonbakery==1.3.4 # via juju -markupsafe==2.1.3 +markupsafe==2.1.5 # via jinja2 -matplotlib-inline==0.1.6 +matplotlib-inline==0.1.7 # via ipython -multidict==6.0.4 +multidict==6.1.0 # via # aiohttp # yarl @@ -118,47 +120,49 @@ oauthlib==3.2.2 # via # kubernetes # requests-oauthlib -ops==2.15.0 +ops==2.17.1 # via # charmed-kubeflow-chisme # serialized-data-interface ordered-set==4.1.0 # via deepdiff -packaging==23.1 - # via pytest -paramiko==2.12.0 +packaging==24.2 + # via + # juju + # pytest +paramiko==3.5.0 # via juju -parso==0.8.3 +parso==0.8.4 # via jedi -pexpect==4.8.0 +pexpect==4.9.0 # via ipython pickleshare==0.7.5 # via ipython pkgutil-resolve-name==1.3.10 # via jsonschema -pluggy==1.3.0 +pluggy==1.5.0 # via pytest -prompt-toolkit==3.0.39 +prompt-toolkit==3.0.48 # via ipython -protobuf==3.20.3 +propcache==0.2.0 + # via yarl +protobuf==5.29.0 # via macaroonbakery ptyprocess==0.7.0 # via pexpect -pure-eval==0.2.2 +pure-eval==0.2.3 # via stack-data -pyasn1==0.5.0 +pyasn1==0.6.1 # via # juju # pyasn1-modules # rsa -pyasn1-modules==0.3.0 +pyasn1-modules==0.4.1 # via google-auth -pycparser==2.21 +pycparser==2.22 # via cffi -pygments==2.16.1 +pygments==2.18.0 # via ipython -pyhcl==0.4.5 - # via hvac pymacaroons==0.13.0 # via macaroonbakery pynacl==1.5.0 @@ -172,37 +176,37 @@ pyrfc3339==1.1 # macaroonbakery pyrsistent==0.20.0 # via jsonschema -pytest==7.4.2 +pytest==8.3.4 # via - # -r requirements-integration.in + # -r ./requirements-integration.in # pytest-asyncio # pytest-operator -pytest-asyncio==0.21.1 +pytest-asyncio==0.21.2 # via pytest-operator -pytest-operator==0.29.0 - # via -r requirements-integration.in -python-dateutil==2.8.2 +pytest-operator==0.38.0 + # via -r ./requirements-integration.in +python-dateutil==2.9.0.post0 # via kubernetes -pytz==2023.3.post1 +pytz==2024.2 # via pyrfc3339 -pyyaml==6.0.1 +pyyaml==6.0.2 # via - # -r requirements-integration.in + # -r ./requirements-integration.in # juju # kubernetes # lightkube # ops # pytest-operator # serialized-data-interface -requests==2.31.0 +requests==2.32.3 # via - # -r requirements-integration.in + # -r ./requirements-integration.in # hvac # kubernetes # macaroonbakery # requests-oauthlib # serialized-data-interface -requests-oauthlib==1.3.1 +requests-oauthlib==2.0.0 # via kubernetes rsa==4.9 # via google-auth @@ -214,54 +218,50 @@ serialized-data-interface==0.7.0 # via charmed-kubeflow-chisme six==1.16.0 # via - # asttokens - # google-auth # kubernetes # macaroonbakery - # paramiko # pymacaroons # python-dateutil sniffio==1.3.1 - # via - # anyio - # httpx -stack-data==0.6.2 + # via anyio +stack-data==0.6.3 # via ipython -tenacity==8.2.3 +tenacity==9.0.0 # via - # -r requirements-integration.in + # -r ./requirements-integration.in # charmed-kubeflow-chisme -tomli==2.0.1 +tomli==2.2.1 # via # ipdb # pytest toposort==1.10 # via juju -traitlets==5.9.0 +traitlets==5.14.3 # via # ipython # matplotlib-inline -typing-extensions==4.7.1 +typing-extensions==4.12.2 # via # anyio # ipython + # juju + # multidict # typing-inspect typing-inspect==0.9.0 # via juju -urllib3==1.26.16 +urllib3==2.2.3 # via - # google-auth # kubernetes # requests -wcwidth==0.2.6 +wcwidth==0.2.13 # via prompt-toolkit -websocket-client==1.6.3 +websocket-client==1.8.0 # via # kubernetes # ops -websockets==8.1 +websockets==13.1 # via juju -yarl==1.9.2 +yarl==1.15.2 # via aiohttp -zipp==3.20.0 +zipp==3.20.2 # via importlib-resources diff --git a/requirements-lint.txt b/requirements-lint.txt index c46eb2a..78a5455 100644 --- a/requirements-lint.txt +++ b/requirements-lint.txt @@ -2,49 +2,49 @@ # This file is autogenerated by pip-compile with Python 3.8 # by the following command: # -# pip-compile requirements-lint.in +# pip-compile ./requirements-lint.in # -black==23.7.0 - # via -r requirements-lint.in +black==24.8.0 + # via -r ./requirements-lint.in click==8.1.7 # via black -codespell==2.2.5 - # via -r requirements-lint.in -flake8==6.0.0 +codespell==2.3.0 + # via -r ./requirements-lint.in +flake8==7.0.0 # via - # -r requirements-lint.in + # -r ./requirements-lint.in # flake8-builtins # pep8-naming # pyproject-flake8 -flake8-builtins==2.1.0 - # via -r requirements-lint.in +flake8-builtins==2.5.0 + # via -r ./requirements-lint.in flake8-copyright==0.2.4 - # via -r requirements-lint.in -isort==5.12.0 - # via -r requirements-lint.in + # via -r ./requirements-lint.in +isort==5.13.2 + # via -r ./requirements-lint.in mccabe==0.7.0 # via flake8 mypy-extensions==1.0.0 # via black -packaging==23.1 +packaging==24.2 # via black -pathspec==0.11.2 +pathspec==0.12.1 # via black -pep8-naming==0.13.3 - # via -r requirements-lint.in -platformdirs==3.10.0 +pep8-naming==0.14.1 + # via -r ./requirements-lint.in +platformdirs==4.3.6 # via black -pycodestyle==2.10.0 +pycodestyle==2.11.1 # via flake8 -pyflakes==3.0.1 +pyflakes==3.2.0 # via flake8 -pyproject-flake8==6.0.0.post1 - # via -r requirements-lint.in -tomli==2.0.1 +pyproject-flake8==7.0.0 + # via -r ./requirements-lint.in +tomli==2.2.1 # via # black # pyproject-flake8 -typing-extensions==4.7.1 +typing-extensions==4.12.2 # via black # The following packages are considered to be unsafe in a requirements file: diff --git a/requirements-unit.txt b/requirements-unit.txt index c112ed8..6dc1f17 100644 --- a/requirements-unit.txt +++ b/requirements-unit.txt @@ -2,37 +2,41 @@ # This file is autogenerated by pip-compile with Python 3.8 # by the following command: # -# pip-compile requirements-unit.in +# pip-compile ./requirements-unit.in # -anyio==4.0.0 - # via httpcore -cachetools==5.3.1 +annotated-types==0.7.0 + # via pydantic +anyio==4.5.2 + # via httpx +cachetools==5.5.0 # via google-auth -certifi==2023.7.22 +certifi==2024.8.30 # via # httpcore # httpx # kubernetes # requests -charset-normalizer==3.2.0 +charset-normalizer==3.4.0 # via requests -cosl==0.0.11 - # via -r requirements.in -coverage==7.3.0 - # via -r requirements-unit.in -exceptiongroup==1.1.3 +cosl==0.0.45 + # via -r ./requirements.in +coverage==7.6.1 + # via -r ./requirements-unit.in +durationpy==0.9 + # via kubernetes +exceptiongroup==1.2.2 # via # anyio # pytest -google-auth==2.22.0 +google-auth==2.36.0 # via kubernetes h11==0.14.0 # via httpcore -httpcore==0.17.3 +httpcore==1.0.7 # via httpx -httpx==0.24.1 +httpx==0.28.0 # via lightkube -idna==3.4 +idna==3.10 # via # anyio # httpx @@ -40,87 +44,94 @@ idna==3.4 iniconfig==2.0.0 # via pytest jinja2==3.1.4 - # via -r requirements.in -kubernetes==27.2.0 - # via -r requirements.in -lightkube==0.14.0 + # via -r ./requirements.in +kubernetes==31.0.0 + # via -r ./requirements.in +lightkube==0.15.5 # via - # -r requirements-unit.in - # -r requirements.in -lightkube-models==1.28.1.4 + # -r ./requirements-unit.in + # -r ./requirements.in + # cosl +lightkube-models==1.31.1.8 # via - # -r requirements.in + # -r ./requirements.in # lightkube -markupsafe==2.1.3 +markupsafe==2.1.5 # via jinja2 oauthlib==3.2.2 # via # kubernetes # requests-oauthlib oci-image==1.0.0 - # via -r requirements.in -ops==2.6.0 + # via -r ./requirements.in +ops==2.17.1 # via - # -r requirements-unit.in - # -r requirements.in + # -r ./requirements-unit.in + # -r ./requirements.in # cosl -packaging==23.1 +packaging==24.2 # via pytest -pluggy==1.3.0 +pluggy==1.5.0 # via pytest -pyasn1==0.5.0 +pyasn1==0.6.1 # via # pyasn1-modules # rsa -pyasn1-modules==0.3.0 +pyasn1-modules==0.4.1 # via google-auth -pytest==7.4.1 +pydantic==2.10.2 + # via cosl +pydantic-core==2.27.1 + # via pydantic +pytest==8.3.4 # via - # -r requirements-unit.in + # -r ./requirements-unit.in # pytest-lazy-fixture # pytest-mock pytest-lazy-fixture==0.6.3 - # via -r requirements-unit.in -pytest-mock==3.11.1 - # via -r requirements-unit.in -python-dateutil==2.8.2 + # via -r ./requirements-unit.in +pytest-mock==3.14.0 + # via -r ./requirements-unit.in +python-dateutil==2.9.0.post0 # via kubernetes -pyyaml==6.0.1 +pyyaml==6.0.2 # via # cosl # kubernetes # lightkube # ops -requests==2.31.0 +requests==2.32.3 # via # kubernetes # requests-oauthlib -requests-oauthlib==1.3.1 +requests-oauthlib==2.0.0 # via kubernetes rsa==4.9 # via google-auth six==1.16.0 # via - # google-auth # kubernetes # python-dateutil -sniffio==1.3.0 +sniffio==1.3.1 + # via anyio +tenacity==9.0.0 # via - # anyio - # httpcore - # httpx -tenacity==8.2.3 - # via -r requirements.in -tomli==2.0.1 + # -r ./requirements.in + # cosl +tomli==2.2.1 # via pytest -typing-extensions==4.11.0 - # via cosl -urllib3==1.26.16 +typing-extensions==4.12.2 + # via + # annotated-types + # anyio + # cosl + # pydantic + # pydantic-core +urllib3==2.2.3 # via - # google-auth # kubernetes # requests -websocket-client==1.6.2 +websocket-client==1.8.0 # via # kubernetes # ops diff --git a/requirements.txt b/requirements.txt index 10e0fe2..71abd2e 100644 --- a/requirements.txt +++ b/requirements.txt @@ -2,101 +2,113 @@ # This file is autogenerated by pip-compile with Python 3.8 # by the following command: # -# pip-compile requirements.in +# pip-compile ./requirements.in # -anyio==4.0.0 - # via httpcore -cachetools==5.3.1 +annotated-types==0.7.0 + # via pydantic +anyio==4.5.2 + # via httpx +cachetools==5.5.0 # via google-auth -certifi==2023.7.22 +certifi==2024.8.30 # via # httpcore # httpx # kubernetes # requests -charset-normalizer==3.2.0 +charset-normalizer==3.4.0 # via requests -cosl==0.0.11 - # via -r requirements.in -exceptiongroup==1.1.3 +cosl==0.0.45 + # via -r ./requirements.in +durationpy==0.9 + # via kubernetes +exceptiongroup==1.2.2 # via anyio -google-auth==2.22.0 +google-auth==2.36.0 # via kubernetes h11==0.14.0 # via httpcore -httpcore==0.17.3 +httpcore==1.0.7 # via httpx -httpx==0.24.1 +httpx==0.28.0 # via lightkube -idna==3.4 +idna==3.10 # via # anyio # httpx # requests jinja2==3.1.4 - # via -r requirements.in -kubernetes==27.2.0 - # via -r requirements.in -lightkube==0.14.0 - # via -r requirements.in -lightkube-models==1.28.1.4 + # via -r ./requirements.in +kubernetes==31.0.0 + # via -r ./requirements.in +lightkube==0.15.5 # via - # -r requirements.in + # -r ./requirements.in + # cosl +lightkube-models==1.31.1.8 + # via + # -r ./requirements.in # lightkube -markupsafe==2.1.3 +markupsafe==2.1.5 # via jinja2 oauthlib==3.2.2 # via # kubernetes # requests-oauthlib oci-image==1.0.0 - # via -r requirements.in -ops==2.6.0 + # via -r ./requirements.in +ops==2.17.1 # via - # -r requirements.in + # -r ./requirements.in # cosl -pyasn1==0.5.0 +pyasn1==0.6.1 # via # pyasn1-modules # rsa -pyasn1-modules==0.3.0 +pyasn1-modules==0.4.1 # via google-auth -python-dateutil==2.8.2 +pydantic==2.10.2 + # via cosl +pydantic-core==2.27.1 + # via pydantic +python-dateutil==2.9.0.post0 # via kubernetes -pyyaml==6.0.1 +pyyaml==6.0.2 # via # cosl # kubernetes # lightkube # ops -requests==2.31.0 +requests==2.32.3 # via # kubernetes # requests-oauthlib -requests-oauthlib==1.3.1 +requests-oauthlib==2.0.0 # via kubernetes rsa==4.9 # via google-auth six==1.16.0 # via - # google-auth # kubernetes # python-dateutil -sniffio==1.3.0 +sniffio==1.3.1 + # via anyio +tenacity==9.0.0 # via + # -r ./requirements.in + # cosl +typing-extensions==4.12.2 + # via + # annotated-types # anyio - # httpcore - # httpx -tenacity==8.2.3 - # via -r requirements.in -typing-extensions==4.11.0 - # via cosl -urllib3==1.26.16 + # cosl + # pydantic + # pydantic-core +urllib3==2.2.3 # via - # google-auth # kubernetes # requests -websocket-client==1.6.2 +websocket-client==1.8.0 # via # kubernetes # ops diff --git a/tox.ini b/tox.ini index 1b21448..5ab6dda 100644 --- a/tox.ini +++ b/tox.ini @@ -38,6 +38,8 @@ commands = bash -c 'find . -type f -name "requirements*.in" | xargs --replace=\{\} pip-compile --resolver=backtracking \{\}' deps = pip-tools + # Pin due to https://github.com/jazzband/pip-tools/issues/2131 + pip==24.2 description = Update requirements files by executing pip-compile on all requirements*.in files, including those in subdirs. [testenv:fmt]