diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7b548116..7d607151 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -17,7 +17,7 @@ jobs: os: - ubuntu-20.04 python-version: - - 3.8 + - 3.11 targets: [ 'quality','main.test','docs' ] steps: @@ -40,7 +40,7 @@ jobs: && export TOXENV=django42 && make test.requirements tox.requirements ${{ matrix.targets }}" - name: Run Coverage - if: matrix.python-version == '3.8' && matrix.targets=='main.test' + if: matrix.python-version == '3.11' && matrix.targets=='main.test' uses: codecov/codecov-action@v1 with: fail_ci_if_error: true diff --git a/.github/workflows/mysql8-migrations.yml b/.github/workflows/mysql8-migrations.yml index 4ca91459..d8f78c3f 100644 --- a/.github/workflows/mysql8-migrations.yml +++ b/.github/workflows/mysql8-migrations.yml @@ -14,7 +14,7 @@ jobs: strategy: matrix: os: [ ubuntu-20.04 ] - python-version: [ 3.8 ] + python-version: [ 3.11 ] steps: - name: Checkout repo diff --git a/.github/workflows/upgrade-python-requirements.yml b/.github/workflows/upgrade-python-requirements.yml index 8b797093..33356bd6 100644 --- a/.github/workflows/upgrade-python-requirements.yml +++ b/.github/workflows/upgrade-python-requirements.yml @@ -15,12 +15,12 @@ jobs: uses: openedx/.github/.github/workflows/upgrade-python-requirements.yml@master with: branch: ${{ github.event.inputs.branch || 'master' }} - python_version: "3.8" # optional parameters below; fill in if you'd like github or email notifications # user_reviewers: "" # team_reviewers: "" email_address: "cosmonauts-requirements-update@2u-internal.opsgenie.net" send_success_notification: true + python_version: 3.11 secrets: requirements_bot_github_token: ${{ secrets.REQUIREMENTS_BOT_GITHUB_TOKEN }} requirements_bot_github_email: ${{ secrets.REQUIREMENTS_BOT_GITHUB_EMAIL }} diff --git a/Dockerfile b/Dockerfile index 71026f2a..7f87c9c1 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,22 +2,40 @@ FROM ubuntu:focal as base # System requirements. +# ENV variables for Python 3.11 support +ARG PYTHON_VERSION=3.11 +ENV TZ=UTC +ENV TERM=xterm-256color +ENV DEBIAN_FRONTEND=noninteractive + +# software-properties-common is needed to setup Python 3.12 env +RUN apt-get update && \ + apt-get install -y software-properties-common && \ + apt-add-repository -y ppa:deadsnakes/ppa + # pkg-config; mysqlclient>=2.2.0 requires pkg-config (https://github.com/PyMySQL/mysqlclient/issues/620) -RUN apt update && \ - DEBIAN_FRONTEND=noninteractive apt-get install -qy \ +RUN apt-get update && \ + apt-get install -qy \ curl \ vim \ language-pack-en \ build-essential \ - python3.8-dev \ - python3-virtualenv \ - python3.8-distutils \ + libffi-dev \ + libsqlite3-dev \ + python3-pip \ + python${PYTHON_VERSION} \ + python${PYTHON_VERSION}-dev \ + python${PYTHON_VERSION}-distutils \ libmysqlclient-dev \ pkg-config \ libssl-dev && \ rm -rf /var/lib/apt/lists/* +# need to use virtualenv pypi package with Python 3.12 +RUN curl -sS https://bootstrap.pypa.io/get-pip.py | python${PYTHON_VERSION} +RUN pip install virtualenv + # Use UTF-8. RUN locale-gen en_US.UTF-8 ENV LANG en_US.UTF-8 @@ -39,7 +57,7 @@ ENV ANALYTICS_API_CFG "/edx/etc/${ANALYTICS_API_SERVICE_NAME}.yml" # Working directory will be root of repo. WORKDIR ${ANALYTICS_API_CODE_DIR} -RUN virtualenv -p python3.8 --always-copy ${ANALYTICS_API_VENV_DIR} +RUN virtualenv -p python${PYTHON_VERSION} --always-copy ${ANALYTICS_API_VENV_DIR} # Expose canonical Analytics port EXPOSE 19001 diff --git a/requirements/base.txt b/requirements/base.txt index 2a744a27..39ac3520 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -1,5 +1,5 @@ # -# This file is autogenerated by pip-compile with Python 3.8 +# This file is autogenerated by pip-compile with Python 3.11 # by the following command: # # make upgrade @@ -9,21 +9,17 @@ asgiref==3.8.1 # django # django-cors-headers # django-countries -backports-zoneinfo==0.2.1 - # via - # django - # djangorestframework boto==2.49.0 # via -r requirements/base.in -boto3==1.35.8 +boto3==1.35.14 # via -r requirements/base.in -botocore==1.35.8 +botocore==1.35.14 # via # boto3 # s3transfer -certifi==2024.7.4 +certifi==2024.8.30 # via requests -cffi==1.17.0 +cffi==1.17.1 # via # cryptography # pynacl @@ -35,11 +31,11 @@ coreapi==2.3.3 # via -r requirements/base.in coreschema==0.0.4 # via coreapi -cryptography==43.0.0 +cryptography==43.0.1 # via # django-fernet-fields-v2 # pyjwt -django==4.2.15 +django==4.2.16 # via # -c requirements/constraints.txt # -r requirements/base.in @@ -71,7 +67,7 @@ django-fernet-fields-v2==0.9 # via edx-enterprise-data django-filter==24.3 # via edx-enterprise-data -django-model-utils==4.5.1 +django-model-utils==5.0.0 # via # edx-enterprise-data # edx-rbac @@ -113,14 +109,14 @@ edx-django-utils==5.15.0 # edx-drf-extensions # edx-enterprise-data # edx-rest-api-client -edx-drf-extensions==10.3.0 +edx-drf-extensions==10.4.0 # via # -r requirements/base.in # edx-enterprise-data # edx-rbac -edx-enterprise-data==8.11.0 +edx-enterprise-data==8.11.1 # via -r requirements/base.in -edx-opaque-keys==2.10.0 +edx-opaque-keys==2.11.0 # via # -r requirements/base.in # edx-ccx-keys @@ -128,20 +124,18 @@ edx-opaque-keys==2.10.0 # edx-enterprise-data edx-rbac==1.10.0 # via edx-enterprise-data -edx-rest-api-client==5.7.1 +edx-rest-api-client==6.0.0 # via # -r requirements/base.in # edx-enterprise-data factory-boy==3.3.1 # via edx-enterprise-data -faker==28.0.0 +faker==28.4.1 # via factory-boy html5lib==1.1 # via -r requirements/base.in idna==3.8 # via requests -importlib-metadata==8.4.0 - # via markdown inflection==0.5.1 # via drf-yasg itypes==1.2.0 @@ -208,8 +202,7 @@ requests==2.32.3 # edx-drf-extensions # edx-enterprise-data # edx-rest-api-client - # slumber -rules==3.4 +rules==3.5 # via edx-enterprise-data s3transfer==0.10.2 # via boto3 @@ -222,8 +215,6 @@ six==1.16.0 # edx-rbac # html5lib # python-dateutil -slumber==0.7.1 - # via edx-rest-api-client sqlparse==0.5.1 # via django stevedore==5.3.0 @@ -234,7 +225,6 @@ tqdm==4.66.5 # via -r requirements/base.in typing-extensions==4.12.2 # via - # asgiref # django-countries # edx-opaque-keys tzdata==2024.1 @@ -243,16 +233,13 @@ uritemplate==4.1.1 # via # coreapi # drf-yasg -urllib3==1.26.19 +urllib3==2.2.2 # via - # -c requirements/constraints.txt # -r requirements/base.in # botocore # requests webencodings==0.5.1 # via html5lib -zipp==3.20.1 - # via importlib-metadata # The following packages are considered to be unsafe in a requirements file: # setuptools diff --git a/requirements/ci.txt b/requirements/ci.txt index c52b940f..1f4abdbc 100644 --- a/requirements/ci.txt +++ b/requirements/ci.txt @@ -1,5 +1,5 @@ # -# This file is autogenerated by pip-compile with Python 3.8 +# This file is autogenerated by pip-compile with Python 3.11 # by the following command: # # make upgrade diff --git a/requirements/constraints.txt b/requirements/constraints.txt index 829e5a87..590cb9c2 100644 --- a/requirements/constraints.txt +++ b/requirements/constraints.txt @@ -25,5 +25,5 @@ elasticsearch-dsl>=7.2.1,<8.0.0 pylint==2.4.4 pylint-django==2.0.11 -# botocore 1.34.144 depends on urllib3<1.27 and >=1.25.4; python_version < "3.10" -urllib3<2.0.0 +# path>16.14.0 has removed the deprecated abspath function, which is breaking the docs build +path<16.15.0 diff --git a/requirements/dev.txt b/requirements/dev.txt index 01561887..1e5c753d 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -1,5 +1,5 @@ # -# This file is autogenerated by pip-compile with Python 3.8 +# This file is autogenerated by pip-compile with Python 3.11 # by the following command: # # make upgrade @@ -9,21 +9,17 @@ asgiref==3.8.1 # django # django-cors-headers # django-countries -backports-zoneinfo==0.2.1 - # via - # django - # djangorestframework boto==2.49.0 # via -r requirements/base.in -boto3==1.35.8 +boto3==1.35.14 # via -r requirements/base.in -botocore==1.35.8 +botocore==1.35.14 # via # boto3 # s3transfer -certifi==2024.7.4 +certifi==2024.8.30 # via requests -cffi==1.17.0 +cffi==1.17.1 # via # cryptography # pynacl @@ -35,11 +31,11 @@ coreapi==2.3.3 # via -r requirements/base.in coreschema==0.0.4 # via coreapi -cryptography==43.0.0 +cryptography==43.0.1 # via # django-fernet-fields-v2 # pyjwt -django==4.2.15 +django==4.2.16 # via # -c requirements/constraints.txt # -r requirements/base.in @@ -71,7 +67,7 @@ django-fernet-fields-v2==0.9 # via edx-enterprise-data django-filter==24.3 # via edx-enterprise-data -django-model-utils==4.5.1 +django-model-utils==5.0.0 # via # edx-enterprise-data # edx-rbac @@ -113,14 +109,14 @@ edx-django-utils==5.15.0 # edx-drf-extensions # edx-enterprise-data # edx-rest-api-client -edx-drf-extensions==10.3.0 +edx-drf-extensions==10.4.0 # via # -r requirements/base.in # edx-enterprise-data # edx-rbac edx-enterprise-data==8.11.1 # via -r requirements/base.in -edx-opaque-keys==2.10.0 +edx-opaque-keys==2.11.0 # via # -r requirements/base.in # edx-ccx-keys @@ -128,20 +124,18 @@ edx-opaque-keys==2.10.0 # edx-enterprise-data edx-rbac==1.10.0 # via edx-enterprise-data -edx-rest-api-client==5.7.1 +edx-rest-api-client==6.0.0 # via # -r requirements/base.in # edx-enterprise-data factory-boy==3.3.1 # via edx-enterprise-data -faker==28.0.0 +faker==28.4.1 # via factory-boy html5lib==1.1 # via -r requirements/base.in idna==3.8 # via requests -importlib-metadata==8.4.0 - # via markdown inflection==0.5.1 # via drf-yasg itypes==1.2.0 @@ -210,8 +204,7 @@ requests==2.32.3 # edx-drf-extensions # edx-enterprise-data # edx-rest-api-client - # slumber -rules==3.4 +rules==3.5 # via edx-enterprise-data s3transfer==0.10.2 # via boto3 @@ -224,8 +217,6 @@ six==1.16.0 # edx-rbac # html5lib # python-dateutil -slumber==0.7.1 - # via edx-rest-api-client sqlparse==0.5.1 # via django stevedore==5.3.0 @@ -236,7 +227,6 @@ tqdm==4.66.5 # via -r requirements/base.in typing-extensions==4.12.2 # via - # asgiref # django-countries # edx-opaque-keys tzdata==2024.1 @@ -245,16 +235,13 @@ uritemplate==4.1.1 # via # coreapi # drf-yasg -urllib3==1.26.19 +urllib3==2.2.2 # via - # -c requirements/constraints.txt # -r requirements/base.in # botocore # requests webencodings==0.5.1 # via html5lib -zipp==3.20.1 - # via importlib-metadata # The following packages are considered to be unsafe in a requirements file: # setuptools diff --git a/requirements/django.txt b/requirements/django.txt index 16bc98be..64aaf996 100644 --- a/requirements/django.txt +++ b/requirements/django.txt @@ -1 +1 @@ -django==4.2.15 +django==4.2.16 diff --git a/requirements/doc.txt b/requirements/doc.txt index ffa237f9..d0207ad5 100644 --- a/requirements/doc.txt +++ b/requirements/doc.txt @@ -1,12 +1,12 @@ # -# This file is autogenerated by pip-compile with Python 3.8 +# This file is autogenerated by pip-compile with Python 3.11 # by the following command: # # make upgrade # -accessible-pygments==0.0.4 +accessible-pygments==0.0.5 # via pydata-sphinx-theme -alabaster==0.7.13 +alabaster==1.0.0 # via sphinx asgiref==3.8.1 # via @@ -17,23 +17,19 @@ babel==2.16.0 # via # pydata-sphinx-theme # sphinx -backports-zoneinfo==0.2.1 - # via - # django - # djangorestframework beautifulsoup4==4.12.3 # via pydata-sphinx-theme boto==2.49.0 # via -r requirements/base.in -boto3==1.35.8 +boto3==1.35.14 # via -r requirements/base.in -botocore==1.35.8 +botocore==1.35.14 # via # boto3 # s3transfer -certifi==2024.7.4 +certifi==2024.8.30 # via requests -cffi==1.17.0 +cffi==1.17.1 # via # cryptography # pynacl @@ -45,11 +41,11 @@ coreapi==2.3.3 # via -r requirements/base.in coreschema==0.0.4 # via coreapi -cryptography==43.0.0 +cryptography==43.0.1 # via # django-fernet-fields-v2 # pyjwt -django==4.2.15 +django==4.2.16 # via # -c requirements/constraints.txt # -r requirements/base.in @@ -81,7 +77,7 @@ django-fernet-fields-v2==0.9 # via edx-enterprise-data django-filter==24.3 # via edx-enterprise-data -django-model-utils==4.5.1 +django-model-utils==5.0.0 # via # edx-enterprise-data # edx-rbac @@ -107,7 +103,7 @@ djangorestframework-csv==3.0.2 # edx-enterprise-data dnspython==2.6.1 # via pymongo -docutils==0.19 +docutils==0.21.2 # via # pydata-sphinx-theme # sphinx @@ -127,14 +123,14 @@ edx-django-utils==5.15.0 # edx-drf-extensions # edx-enterprise-data # edx-rest-api-client -edx-drf-extensions==10.3.0 +edx-drf-extensions==10.4.0 # via # -r requirements/base.in # edx-enterprise-data # edx-rbac edx-enterprise-data==8.11.1 # via -r requirements/base.in -edx-opaque-keys==2.10.0 +edx-opaque-keys==2.11.0 # via # -r requirements/base.in # edx-ccx-keys @@ -142,13 +138,13 @@ edx-opaque-keys==2.10.0 # edx-enterprise-data edx-rbac==1.10.0 # via edx-enterprise-data -edx-rest-api-client==5.7.1 +edx-rest-api-client==6.0.0 # via # -r requirements/base.in # edx-enterprise-data factory-boy==3.3.1 # via edx-enterprise-data -faker==28.0.0 +faker==28.4.1 # via factory-boy html5lib==1.1 # via -r requirements/base.in @@ -156,10 +152,6 @@ idna==3.8 # via requests imagesize==1.4.1 # via sphinx -importlib-metadata==8.4.0 - # via - # markdown - # sphinx inflection==0.5.1 # via drf-yasg itypes==1.2.0 @@ -193,15 +185,17 @@ packaging==24.1 # sphinx pandas==2.0.3 # via edx-enterprise-data -path==17.0.0 - # via -r requirements/doc.in +path==16.14.0 + # via + # -c requirements/constraints.txt + # -r requirements/doc.in pbr==6.1.0 # via stevedore psutil==6.0.0 # via edx-django-utils pycparser==2.22 # via cffi -pydata-sphinx-theme==0.14.4 +pydata-sphinx-theme==0.15.4 # via sphinx-book-theme pygments==2.18.0 # via @@ -228,7 +222,6 @@ python-memcached==1.62 # via -r requirements/base.in pytz==2024.1 # via - # babel # drf-yasg # pandas pyyaml==6.0.2 @@ -241,9 +234,8 @@ requests==2.32.3 # edx-drf-extensions # edx-enterprise-data # edx-rest-api-client - # slumber # sphinx -rules==3.4 +rules==3.5 # via edx-enterprise-data s3transfer==0.10.2 # via boto3 @@ -256,30 +248,28 @@ six==1.16.0 # edx-rbac # html5lib # python-dateutil -slumber==0.7.1 - # via edx-rest-api-client snowballstemmer==2.2.0 # via sphinx soupsieve==2.6 # via beautifulsoup4 -sphinx==6.2.1 +sphinx==8.0.2 # via # -r requirements/doc.in # pydata-sphinx-theme # sphinx-book-theme -sphinx-book-theme==1.0.1 +sphinx-book-theme==1.1.3 # via -r requirements/doc.in -sphinxcontrib-applehelp==1.0.4 +sphinxcontrib-applehelp==2.0.0 # via sphinx -sphinxcontrib-devhelp==1.0.2 +sphinxcontrib-devhelp==2.0.0 # via sphinx -sphinxcontrib-htmlhelp==2.0.1 +sphinxcontrib-htmlhelp==2.1.0 # via sphinx sphinxcontrib-jsmath==1.0.1 # via sphinx -sphinxcontrib-qthelp==1.0.3 +sphinxcontrib-qthelp==2.0.0 # via sphinx -sphinxcontrib-serializinghtml==1.1.5 +sphinxcontrib-serializinghtml==2.0.0 # via sphinx sqlparse==0.5.1 # via django @@ -291,7 +281,6 @@ tqdm==4.66.5 # via -r requirements/base.in typing-extensions==4.12.2 # via - # asgiref # django-countries # edx-opaque-keys # pydata-sphinx-theme @@ -301,16 +290,13 @@ uritemplate==4.1.1 # via # coreapi # drf-yasg -urllib3==1.26.19 +urllib3==2.2.2 # via - # -c requirements/constraints.txt # -r requirements/base.in # botocore # requests webencodings==0.5.1 # via html5lib -zipp==3.20.1 - # via importlib-metadata # The following packages are considered to be unsafe in a requirements file: # setuptools diff --git a/requirements/pip.txt b/requirements/pip.txt index f3fa6b47..fd3267b5 100644 --- a/requirements/pip.txt +++ b/requirements/pip.txt @@ -1,5 +1,5 @@ # -# This file is autogenerated by pip-compile with Python 3.8 +# This file is autogenerated by pip-compile with Python 3.11 # by the following command: # # pip-compile --allow-unsafe --output-file=requirements/pip.txt requirements/pip.in @@ -10,5 +10,5 @@ wheel==0.44.0 # The following packages are considered to be unsafe in a requirements file: pip==24.2 # via -r requirements/pip.in -setuptools==74.0.0 +setuptools==74.1.2 # via -r requirements/pip.in diff --git a/requirements/pip_tools.txt b/requirements/pip_tools.txt index 290fd324..479354ad 100644 --- a/requirements/pip_tools.txt +++ b/requirements/pip_tools.txt @@ -1,15 +1,13 @@ # -# This file is autogenerated by pip-compile with Python 3.8 +# This file is autogenerated by pip-compile with Python 3.11 # by the following command: # # make upgrade # -build==1.2.1 +build==1.2.2 # via pip-tools click==8.1.7 # via pip-tools -importlib-metadata==8.4.0 - # via build packaging==24.1 # via build pip-tools==7.4.1 @@ -20,14 +18,8 @@ pyproject-hooks==1.1.0 # pip-tools six==1.16.0 # via -r requirements/pip_tools.in -tomli==2.0.1 - # via - # build - # pip-tools wheel==0.44.0 # via pip-tools -zipp==3.20.1 - # via importlib-metadata # The following packages are considered to be unsafe in a requirements file: # pip diff --git a/requirements/production.txt b/requirements/production.txt index 99f67a33..bb63979f 100644 --- a/requirements/production.txt +++ b/requirements/production.txt @@ -1,5 +1,5 @@ # -# This file is autogenerated by pip-compile with Python 3.8 +# This file is autogenerated by pip-compile with Python 3.11 # by the following command: # # make upgrade @@ -9,21 +9,17 @@ asgiref==3.8.1 # django # django-cors-headers # django-countries -backports-zoneinfo==0.2.1 - # via - # django - # djangorestframework boto==2.49.0 # via -r requirements/base.in -boto3==1.35.8 +boto3==1.35.14 # via -r requirements/base.in -botocore==1.35.8 +botocore==1.35.14 # via # boto3 # s3transfer -certifi==2024.7.4 +certifi==2024.8.30 # via requests -cffi==1.17.0 +cffi==1.17.1 # via # cryptography # pynacl @@ -35,11 +31,11 @@ coreapi==2.3.3 # via -r requirements/base.in coreschema==0.0.4 # via coreapi -cryptography==43.0.0 +cryptography==43.0.1 # via # django-fernet-fields-v2 # pyjwt -django==4.2.15 +django==4.2.16 # via # -c requirements/constraints.txt # -r requirements/base.in @@ -71,7 +67,7 @@ django-fernet-fields-v2==0.9 # via edx-enterprise-data django-filter==24.3 # via edx-enterprise-data -django-model-utils==4.5.1 +django-model-utils==5.0.0 # via # edx-enterprise-data # edx-rbac @@ -113,14 +109,14 @@ edx-django-utils==5.15.0 # edx-drf-extensions # edx-enterprise-data # edx-rest-api-client -edx-drf-extensions==10.3.0 +edx-drf-extensions==10.4.0 # via # -r requirements/base.in # edx-enterprise-data # edx-rbac edx-enterprise-data==8.11.1 # via -r requirements/base.in -edx-opaque-keys==2.10.0 +edx-opaque-keys==2.11.0 # via # -r requirements/base.in # edx-ccx-keys @@ -128,13 +124,13 @@ edx-opaque-keys==2.10.0 # edx-enterprise-data edx-rbac==1.10.0 # via edx-enterprise-data -edx-rest-api-client==5.7.1 +edx-rest-api-client==6.0.0 # via # -r requirements/base.in # edx-enterprise-data factory-boy==3.3.1 # via edx-enterprise-data -faker==28.0.0 +faker==28.4.1 # via factory-boy gevent==24.2.1 # via -r requirements/production.in @@ -146,8 +142,6 @@ html5lib==1.1 # via -r requirements/base.in idna==3.8 # via requests -importlib-metadata==8.4.0 - # via markdown inflection==0.5.1 # via drf-yasg itypes==1.2.0 @@ -223,8 +217,7 @@ requests==2.32.3 # edx-drf-extensions # edx-enterprise-data # edx-rest-api-client - # slumber -rules==3.4 +rules==3.5 # via edx-enterprise-data s3transfer==0.10.2 # via boto3 @@ -237,8 +230,6 @@ six==1.16.0 # edx-rbac # html5lib # python-dateutil -slumber==0.7.1 - # via edx-rest-api-client sqlparse==0.5.1 # via django stevedore==5.3.0 @@ -249,7 +240,6 @@ tqdm==4.66.5 # via -r requirements/base.in typing-extensions==4.12.2 # via - # asgiref # django-countries # edx-opaque-keys tzdata==2024.1 @@ -258,16 +248,13 @@ uritemplate==4.1.1 # via # coreapi # drf-yasg -urllib3==1.26.19 +urllib3==2.2.2 # via - # -c requirements/constraints.txt # -r requirements/base.in # botocore # requests webencodings==0.5.1 # via html5lib -zipp==3.20.1 - # via importlib-metadata zope-event==5.0 # via gevent zope-interface==7.0.3 diff --git a/requirements/test.txt b/requirements/test.txt index 42bcb999..a91754bb 100644 --- a/requirements/test.txt +++ b/requirements/test.txt @@ -1,5 +1,5 @@ # -# This file is autogenerated by pip-compile with Python 3.8 +# This file is autogenerated by pip-compile with Python 3.11 # by the following command: # # make upgrade @@ -11,21 +11,17 @@ asgiref==3.8.1 # django-countries astroid==2.3.3 # via pylint -backports-zoneinfo==0.2.1 - # via - # django - # djangorestframework boto==2.49.0 # via -r requirements/base.in -boto3==1.35.8 +boto3==1.35.14 # via -r requirements/base.in -botocore==1.35.8 +botocore==1.35.14 # via # boto3 # s3transfer -certifi==2024.7.4 +certifi==2024.8.30 # via requests -cffi==1.17.0 +cffi==1.17.1 # via # cryptography # pynacl @@ -43,13 +39,13 @@ coverage[toml]==7.6.1 # via # -r requirements/test.in # pytest-cov -cryptography==43.0.0 +cryptography==43.0.1 # via # django-fernet-fields-v2 # pyjwt ddt==1.7.2 # via -r requirements/test.in -diff-cover==9.1.1 +diff-cover==9.2.0 # via -r requirements/test.in # via # -c requirements/constraints.txt @@ -84,7 +80,7 @@ django-fernet-fields-v2==0.9 # via edx-enterprise-data django-filter==24.3 # via edx-enterprise-data -django-model-utils==4.5.1 +django-model-utils==5.0.0 # via # edx-enterprise-data # edx-rbac @@ -126,14 +122,14 @@ edx-django-utils==5.15.0 # edx-drf-extensions # edx-enterprise-data # edx-rest-api-client -edx-drf-extensions==10.3.0 +edx-drf-extensions==10.4.0 # via # -r requirements/base.in # edx-enterprise-data # edx-rbac edx-enterprise-data==8.11.1 # via -r requirements/base.in -edx-opaque-keys==2.10.0 +edx-opaque-keys==2.11.0 # via # -r requirements/base.in # edx-ccx-keys @@ -141,15 +137,13 @@ edx-opaque-keys==2.10.0 # edx-enterprise-data edx-rbac==1.10.0 # via edx-enterprise-data -edx-rest-api-client==5.7.1 +edx-rest-api-client==6.0.0 # via # -r requirements/base.in # edx-enterprise-data -exceptiongroup==1.2.2 - # via pytest factory-boy==3.3.1 # via edx-enterprise-data -faker==28.0.0 +faker==28.4.1 # via factory-boy freezegun==1.5.1 # via -r requirements/test.in @@ -157,8 +151,6 @@ html5lib==1.1 # via -r requirements/base.in idna==3.8 # via requests -importlib-metadata==8.4.0 - # via markdown inflection==0.5.1 # via drf-yasg iniconfig==2.0.0 @@ -236,7 +228,7 @@ pytest==8.3.2 # pytest-django pytest-cov==5.0.0 # via -r requirements/test.in -pytest-django==4.8.0 +pytest-django==4.9.0 # via -r requirements/test.in python-dateutil==2.9.0.post0 # via @@ -263,10 +255,9 @@ requests==2.32.3 # edx-enterprise-data # edx-rest-api-client # responses - # slumber responses==0.25.3 # via -r requirements/test.in -rules==3.4 +rules==3.5 # via edx-enterprise-data s3transfer==0.10.2 # via boto3 @@ -280,8 +271,6 @@ six==1.16.0 # edx-rbac # html5lib # python-dateutil -slumber==0.7.1 - # via edx-rest-api-client snowballstemmer==2.2.0 # via pydocstyle sqlparse==0.5.1 @@ -290,15 +279,10 @@ stevedore==5.3.0 # via # edx-django-utils # edx-opaque-keys -tomli==2.0.1 - # via - # coverage - # pytest tqdm==4.66.5 # via -r requirements/base.in typing-extensions==4.12.2 # via - # asgiref # django-countries # edx-opaque-keys tzdata==2024.1 @@ -307,9 +291,8 @@ uritemplate==4.1.1 # via # coreapi # drf-yasg -urllib3==1.26.19 +urllib3==2.2.2 # via - # -c requirements/constraints.txt # -r requirements/base.in # botocore # requests @@ -318,8 +301,6 @@ webencodings==0.5.1 # via html5lib wrapt==1.11.2 # via astroid -zipp==3.20.1 - # via importlib-metadata # The following packages are considered to be unsafe in a requirements file: # setuptools diff --git a/requirements/tox.txt b/requirements/tox.txt index 71ceb495..c6769e27 100644 --- a/requirements/tox.txt +++ b/requirements/tox.txt @@ -1,5 +1,5 @@ # -# This file is autogenerated by pip-compile with Python 3.8 +# This file is autogenerated by pip-compile with Python 3.11 # by the following command: # # make upgrade @@ -12,7 +12,7 @@ colorama==0.4.6 # via tox distlib==0.3.8 # via virtualenv -filelock==3.15.4 +filelock==3.16.0 # via # tox # virtualenv @@ -20,7 +20,7 @@ packaging==24.1 # via # pyproject-api # tox -platformdirs==4.2.2 +platformdirs==4.3.2 # via # tox # virtualenv @@ -28,11 +28,7 @@ pluggy==1.5.0 # via tox pyproject-api==1.7.1 # via tox -tomli==2.0.1 - # via - # pyproject-api - # tox -tox==4.18.0 +tox==4.18.1 # via -r requirements/tox.in -virtualenv==20.26.3 +virtualenv==20.26.4 # via tox diff --git a/tox.ini b/tox.ini index d188d1d4..7296da4e 100644 --- a/tox.ini +++ b/tox.ini @@ -1,6 +1,6 @@ [tox] skipsdist = True -envlist = py38-django{42} +envlist = py311-django{42} [testenv] passenv =