From 2a97852e3e12fec05a57fae4cfec32b4b25b3cd4 Mon Sep 17 00:00:00 2001 From: Usama Sadiq Date: Wed, 31 Jul 2024 21:38:44 +0500 Subject: [PATCH 1/2] feat!: Python 3.12 Upgrade --- .github/workflows/ci.yml | 4 +- .github/workflows/mysql8-migrations-check.yml | 2 +- .../workflows/upgrade-python-requirements.yml | 2 +- Dockerfile | 36 ++++++- requirements/base.txt | 44 ++++----- requirements/constraints.txt | 5 +- requirements/dev.txt | 69 +++++--------- requirements/django.txt | 2 +- requirements/doc.txt | 93 +++++++------------ requirements/pip-tools.txt | 10 +- requirements/pip.txt | 4 +- requirements/production.txt | 47 ++++------ requirements/quality.txt | 67 ++++--------- requirements/test.txt | 64 ++++--------- tox.ini | 2 +- 15 files changed, 170 insertions(+), 281 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 15b964c4..c739298c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -12,7 +12,7 @@ jobs: strategy: fail-fast: false matrix: - python-version: ["3.8", "3.12"] + python-version: ["3.12"] toxenv: [django42, quality, pii_check, check_keywords] steps: - uses: actions/checkout@v2 @@ -29,7 +29,7 @@ jobs: TOXENV: ${{ matrix.toxenv }} run: tox - name: Codecov - if: matrix.python-version == '3.8' && matrix.toxenv == 'django42' + if: matrix.python-version == '3.12' && matrix.toxenv == 'django42' uses: py-cov-action/python-coverage-comment-action@v3 with: GITHUB_TOKEN: ${{ github.token }} diff --git a/.github/workflows/mysql8-migrations-check.yml b/.github/workflows/mysql8-migrations-check.yml index 41a56975..bee30fc1 100644 --- a/.github/workflows/mysql8-migrations-check.yml +++ b/.github/workflows/mysql8-migrations-check.yml @@ -15,7 +15,7 @@ jobs: strategy: matrix: os: [ ubuntu-20.04 ] - python-version: [ 3.8 ] + python-version: [ 3.12 ] steps: - name: Checkout repo diff --git a/.github/workflows/upgrade-python-requirements.yml b/.github/workflows/upgrade-python-requirements.yml index 8b797093..28c1303e 100644 --- a/.github/workflows/upgrade-python-requirements.yml +++ b/.github/workflows/upgrade-python-requirements.yml @@ -15,7 +15,7 @@ jobs: uses: openedx/.github/.github/workflows/upgrade-python-requirements.yml@master with: branch: ${{ github.event.inputs.branch || 'master' }} - python_version: "3.8" + python_version: "3.12" # optional parameters below; fill in if you'd like github or email notifications # user_reviewers: "" # team_reviewers: "" diff --git a/Dockerfile b/Dockerfile index f196338c..ee3928d1 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,22 +1,35 @@ FROM ubuntu:focal as app MAINTAINER sre@edx.org +# ENV variables for Python 3.12 support +ARG PYTHON_VERSION=3.12 +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 + # Packages installed: # pkg-config; mysqlclient>=2.2.0 requires pkg-config (https://github.com/PyMySQL/mysqlclient/issues/620) RUN apt-get update && apt-get -qy install --no-install-recommends \ + build-essential \ language-pack-en \ locales \ - python3.8 \ - python3-pip \ libmysqlclient-dev \ pkg-config \ libssl-dev \ - python3-dev \ gcc \ - make - + make \ + curl \ + python3-pip \ + python${PYTHON_VERSION} \ + python${PYTHON_VERSION}-dev \ + python${PYTHON_VERSION}-distutils RUN pip install --upgrade pip setuptools # delete apt package lists because we do not need them inflating our image @@ -24,6 +37,14 @@ RUN rm -rf /var/lib/apt/lists/* RUN ln -s /usr/bin/python3 /usr/bin/python +# Setup zoneinfo for Python 3.12 +RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone + +# need to use virtualenv pypi package with Python 3.12 +RUN pip install --upgrade pip setuptools +RUN curl -sS https://bootstrap.pypa.io/get-pip.py | python${PYTHON_VERSION} +RUN pip install virtualenv + RUN locale-gen en_US.UTF-8 ENV LANG en_US.UTF-8 ENV LANGUAGE en_US:en @@ -34,11 +55,16 @@ EXPOSE 18808 RUN useradd -m --shell /bin/false app WORKDIR /edx/app/designer +ARG DESIGNER_VENV_DIR="/edx/app/venvs/designer" +ENV PATH="$DESIGNER_VENV_DIR/bin:$PATH" # Copy the requirements explicitly even though we copy everything below # this prevents the image cache from busting unless the dependencies have changed. COPY requirements/production.txt /edx/app/designer/requirements/production.txt +# Create virtualenv to install requirements +RUN virtualenv -p python${PYTHON_VERSION} --always-copy ${DESIGNER_VENV_DIR} + # Dependencies are installed as root so they cannot be modified by the application user. RUN pip install -r requirements/production.txt diff --git a/requirements/base.txt b/requirements/base.txt index bdcc6b00..000a9493 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.12 # by the following command: # # make upgrade @@ -10,22 +10,17 @@ asgiref==3.8.1 # via # django # django-cors-headers -backports-zoneinfo==0.2.1 ; python_version < "3.9" - # via - # -c requirements/constraints.txt - # django - # djangorestframework beautifulsoup4==4.12.3 # via wagtail -boto3==1.35.1 +boto3==1.35.12 # via -r requirements/base.in -botocore==1.35.1 +botocore==1.35.12 # via # boto3 # s3transfer -certifi==2024.7.4 +certifi==2024.8.30 # via requests -cffi==1.17.0 +cffi==1.17.1 # via # cryptography # pynacl @@ -33,7 +28,7 @@ charset-normalizer==3.3.2 # via requests click==8.1.7 # via edx-django-utils -cryptography==43.0.0 +cryptography==43.0.1 # via # pyjwt # social-auth-core @@ -42,7 +37,7 @@ defusedxml==0.8.0rc2 # python3-openid # social-auth-core # willow -django==4.2.15 +django==4.2.16 # via # -c requirements/common_constraints.txt # -c requirements/constraints.txt @@ -120,9 +115,9 @@ edx-django-utils==5.15.0 # -r requirements/base.in # edx-drf-extensions # edx-rest-api-client -edx-drf-extensions==10.3.0 +edx-drf-extensions==10.4.0 # via -r requirements/base.in -edx-opaque-keys==2.10.0 +edx-opaque-keys==2.11.0 # via edx-drf-extensions edx-rest-api-client==4.0.1 # via @@ -132,10 +127,8 @@ et-xmlfile==1.1.0 # via openpyxl filetype==1.2.0 # via willow -idna==3.7 +idna==3.8 # via requests -importlib-metadata==8.3.0 - # via typeguard inflect==7.3.1 # via -r requirements/base.in inflection==0.5.1 @@ -164,7 +157,7 @@ openpyxl==3.1.5 # via wagtail packaging==24.1 # via drf-yasg -pbr==6.0.0 +pbr==6.1.0 # via stevedore pillow==10.4.0 # via @@ -238,7 +231,7 @@ soupsieve==2.6 # via beautifulsoup4 sqlparse==0.5.1 # via django -stevedore==5.2.0 +stevedore==5.3.0 # via # edx-django-utils # edx-opaque-keys @@ -248,26 +241,23 @@ typeguard==4.3.0 # via inflect typing-extensions==4.12.2 # via - # asgiref # edx-opaque-keys - # inflect # typeguard uritemplate==4.1.1 # via drf-yasg -urllib3==1.26.19 +urllib3==1.26.20 # via + # -c requirements/constraints.txt # botocore # requests -wagtail==6.2 +wagtail==6.2.1 # via -r requirements/base.in willow[heif]==1.8.0 # via # wagtail # willow -zipp==3.20.0 - # via - # -r requirements/base.in - # importlib-metadata +zipp==3.20.1 + # via -r requirements/base.in # The following packages are considered to be unsafe in a requirements file: # setuptools diff --git a/requirements/constraints.txt b/requirements/constraints.txt index 634f9ff3..9ed63108 100644 --- a/requirements/constraints.txt +++ b/requirements/constraints.txt @@ -18,6 +18,5 @@ edx_rest_api_client==4.0.1 # versions>4.0.1 have backward incompatible chan # Django5 release is inline. So better to add constraint. Django<4.3 - -# Temporary to Support the python 3.11 Upgrade -backports.zoneinfo;python_version<"3.9" # Newer versions have zoneinfo available in the standard library +# Needed for botocore==1.34.151 support +urllib3<1.27 diff --git a/requirements/dev.txt b/requirements/dev.txt index 5b247815..cb69ca17 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.12 # by the following command: # # make upgrade @@ -18,19 +18,13 @@ astroid==3.2.4 # -r requirements/quality.txt # pylint # pylint-celery -backports-zoneinfo==0.2.1 ; python_version < "3.9" - # via - # -c requirements/constraints.txt - # -r requirements/quality.txt - # django - # djangorestframework beautifulsoup4==4.12.3 # via # -r requirements/quality.txt # wagtail -boto3==1.35.1 +boto3==1.35.12 # via -r requirements/quality.txt -botocore==1.35.1 +botocore==1.35.12 # via # -r requirements/quality.txt # boto3 @@ -39,11 +33,11 @@ cachetools==5.5.0 # via # -r requirements/quality.txt # tox -certifi==2024.7.4 +certifi==2024.8.30 # via # -r requirements/quality.txt # requests -cffi==1.17.0 +cffi==1.17.1 # via # -r requirements/quality.txt # cryptography @@ -80,7 +74,7 @@ coverage[toml]==7.6.1 # via # -r requirements/quality.txt # pytest-cov -cryptography==43.0.0 +cryptography==43.0.1 # via # -r requirements/quality.txt # pyjwt @@ -101,7 +95,7 @@ distlib==0.3.8 # via # -r requirements/quality.txt # virtualenv -django==4.2.15 +django==4.2.16 # via # -c requirements/common_constraints.txt # -c requirements/constraints.txt @@ -203,13 +197,13 @@ edx-django-utils==5.15.0 # -r requirements/quality.txt # edx-drf-extensions # edx-rest-api-client -edx-drf-extensions==10.3.0 +edx-drf-extensions==10.4.0 # via -r requirements/quality.txt edx-i18n-tools==1.6.2 # via -r requirements/dev.in -edx-lint==5.3.7 +edx-lint==5.4.0 # via -r requirements/quality.txt -edx-opaque-keys==2.10.0 +edx-opaque-keys==2.11.0 # via # -r requirements/quality.txt # edx-drf-extensions @@ -221,13 +215,9 @@ et-xmlfile==1.1.0 # via # -r requirements/quality.txt # openpyxl -exceptiongroup==1.2.2 - # via - # -r requirements/quality.txt - # pytest factory-boy==3.3.1 # via -r requirements/quality.txt -faker==27.0.0 +faker==28.4.1 # via # -r requirements/quality.txt # factory-boy @@ -240,14 +230,10 @@ filetype==1.2.0 # via # -r requirements/quality.txt # willow -idna==3.7 +idna==3.8 # via # -r requirements/quality.txt # requests -importlib-metadata==8.3.0 - # via - # -r requirements/quality.txt - # typeguard inflect==7.3.1 # via -r requirements/quality.txt inflection==0.5.1 @@ -320,7 +306,7 @@ packaging==24.1 # tox path==16.16.0 # via edx-i18n-tools -pbr==6.0.0 +pbr==6.1.0 # via # -r requirements/quality.txt # stevedore @@ -369,7 +355,7 @@ pyjwt[crypto]==2.9.0 # edx-drf-extensions # edx-rest-api-client # social-auth-core -pylint==3.2.6 +pylint==3.2.7 # via # -r requirements/quality.txt # edx-lint @@ -408,7 +394,7 @@ pytest==8.3.2 # pytest-django pytest-cov==5.0.0 # via -r requirements/quality.txt -pytest-django==4.8.0 +pytest-django==4.9.0 # via -r requirements/quality.txt python-dateutil==2.9.0.post0 # via @@ -491,7 +477,7 @@ sqlparse==0.5.1 # -r requirements/quality.txt # django # django-debug-toolbar -stevedore==5.2.0 +stevedore==5.3.0 # via # -r requirements/quality.txt # code-annotations @@ -505,14 +491,6 @@ text-unidecode==1.3 # via # -r requirements/quality.txt # python-slugify -tomli==2.0.1 - # via - # -r requirements/quality.txt - # coverage - # pylint - # pyproject-api - # pytest - # tox tomlkit==0.13.2 # via # -r requirements/quality.txt @@ -526,18 +504,15 @@ typeguard==4.3.0 typing-extensions==4.12.2 # via # -r requirements/quality.txt - # asgiref - # astroid # edx-opaque-keys - # inflect - # pylint # typeguard uritemplate==4.1.1 # via # -r requirements/quality.txt # drf-yasg -urllib3==1.26.19 +urllib3==1.26.20 # via + # -c requirements/constraints.txt # -r requirements/quality.txt # botocore # requests @@ -545,13 +520,11 @@ virtualenv==20.26.3 # via # -r requirements/quality.txt # tox -wagtail==6.2 +wagtail==6.2.1 # via -r requirements/quality.txt willow[heif]==1.8.0 # via # -r requirements/quality.txt # wagtail -zipp==3.20.0 - # via - # -r requirements/quality.txt - # importlib-metadata +zipp==3.20.1 + # via -r requirements/quality.txt 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 ab4b1508..cad03b46 100644 --- a/requirements/doc.txt +++ b/requirements/doc.txt @@ -1,10 +1,10 @@ # -# This file is autogenerated by pip-compile with Python 3.8 +# This file is autogenerated by pip-compile with Python 3.12 # by the following command: # # make upgrade # -alabaster==0.7.13 +alabaster==0.7.16 # via sphinx anyascii==0.3.2 # via @@ -22,18 +22,13 @@ astroid==3.2.4 # pylint-celery babel==2.16.0 # via sphinx -backports-zoneinfo==0.2.1 ; python_version < "3.9" - # via - # -r requirements/test.txt - # django - # djangorestframework beautifulsoup4==4.12.3 # via # -r requirements/test.txt # wagtail -boto3==1.35.1 +boto3==1.35.12 # via -r requirements/test.txt -botocore==1.35.1 +botocore==1.35.12 # via # -r requirements/test.txt # boto3 @@ -42,11 +37,11 @@ cachetools==5.5.0 # via # -r requirements/test.txt # tox -certifi==2024.7.4 +certifi==2024.8.30 # via # -r requirements/test.txt # requests -cffi==1.17.0 +cffi==1.17.1 # via # -r requirements/test.txt # cryptography @@ -82,7 +77,7 @@ coverage[toml]==7.6.1 # via # -r requirements/test.txt # pytest-cov -cryptography==43.0.0 +cryptography==43.0.1 # via # -r requirements/test.txt # pyjwt @@ -101,7 +96,7 @@ distlib==0.3.8 # via # -r requirements/test.txt # virtualenv -django==4.2.15 +django==4.2.16 # via # -r requirements/test.txt # django-cors-headers @@ -174,9 +169,9 @@ dnspython==2.6.1 # via # -r requirements/test.txt # pymongo -doc8==1.1.1 +doc8==1.1.2 # via -r requirements/doc.in -docutils==0.19 +docutils==0.21.2 # via # doc8 # readme-renderer @@ -205,11 +200,11 @@ edx-django-utils==5.15.0 # -r requirements/test.txt # edx-drf-extensions # edx-rest-api-client -edx-drf-extensions==10.3.0 +edx-drf-extensions==10.4.0 # via -r requirements/test.txt -edx-lint==5.3.7 +edx-lint==5.4.0 # via -r requirements/test.txt -edx-opaque-keys==2.10.0 +edx-opaque-keys==2.11.0 # via # -r requirements/test.txt # edx-drf-extensions @@ -221,13 +216,9 @@ et-xmlfile==1.1.0 # via # -r requirements/test.txt # openpyxl -exceptiongroup==1.2.2 - # via - # -r requirements/test.txt - # pytest factory-boy==3.3.1 # via -r requirements/test.txt -faker==27.0.0 +faker==28.4.1 # via # -r requirements/test.txt # factory-boy @@ -240,17 +231,12 @@ filetype==1.2.0 # via # -r requirements/test.txt # willow -idna==3.7 +idna==3.8 # via # -r requirements/test.txt # requests imagesize==1.4.1 # via sphinx -importlib-metadata==8.3.0 - # via - # -r requirements/test.txt - # sphinx - # typeguard inflect==7.3.1 # via -r requirements/test.txt inflection==0.5.1 @@ -322,7 +308,7 @@ packaging==24.1 # pytest # sphinx # tox -pbr==6.0.0 +pbr==6.1.0 # via # -r requirements/test.txt # stevedore @@ -367,7 +353,7 @@ pyjwt[crypto]==2.9.0 # edx-drf-extensions # edx-rest-api-client # social-auth-core -pylint==3.2.6 +pylint==3.2.7 # via # -r requirements/test.txt # edx-lint @@ -406,7 +392,7 @@ pytest==8.3.2 # pytest-django pytest-cov==5.0.0 # via -r requirements/test.txt -pytest-django==4.8.0 +pytest-django==4.9.0 # via -r requirements/test.txt python-dateutil==2.9.0.post0 # via @@ -424,7 +410,6 @@ python3-openid==3.2.0 pytz==2024.1 # via # -r requirements/test.txt - # babel # django-modelcluster # drf-yasg # l18n @@ -434,7 +419,7 @@ pyyaml==6.0.2 # code-annotations # drf-yasg # edx-django-release-util -readme-renderer==43.0 +readme-renderer==44.0 # via -r requirements/doc.in requests==2.32.3 # via @@ -488,27 +473,27 @@ soupsieve==2.6 # via # -r requirements/test.txt # beautifulsoup4 -sphinx==5.3.0 +sphinx==3.5.3 # via # -r requirements/doc.in # edx-sphinx-theme -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 # -r requirements/test.txt # django -stevedore==5.2.0 +stevedore==5.3.0 # via # -r requirements/test.txt # code-annotations @@ -523,15 +508,6 @@ text-unidecode==1.3 # via # -r requirements/test.txt # python-slugify -tomli==2.0.1 - # via - # -r requirements/test.txt - # coverage - # doc8 - # pylint - # pyproject-api - # pytest - # tox tomlkit==0.13.2 # via # -r requirements/test.txt @@ -545,17 +521,13 @@ typeguard==4.3.0 typing-extensions==4.12.2 # via # -r requirements/test.txt - # asgiref - # astroid # edx-opaque-keys - # inflect - # pylint # typeguard uritemplate==4.1.1 # via # -r requirements/test.txt # drf-yasg -urllib3==1.26.19 +urllib3==1.26.20 # via # -r requirements/test.txt # botocore @@ -564,13 +536,14 @@ virtualenv==20.26.3 # via # -r requirements/test.txt # tox -wagtail==6.2 +wagtail==6.2.1 # via -r requirements/test.txt willow[heif]==1.8.0 # via # -r requirements/test.txt # wagtail -zipp==3.20.0 - # via - # -r requirements/test.txt - # importlib-metadata +zipp==3.20.1 + # via -r requirements/test.txt + +# The following packages are considered to be unsafe in a requirements file: +# setuptools diff --git a/requirements/pip-tools.txt b/requirements/pip-tools.txt index e6c77872..67b6039d 100644 --- a/requirements/pip-tools.txt +++ b/requirements/pip-tools.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.12 # by the following command: # # make upgrade @@ -8,8 +8,6 @@ build==1.2.1 # via pip-tools click==8.1.7 # via pip-tools -importlib-metadata==8.3.0 - # via build packaging==24.1 # via build pip-tools==7.4.1 @@ -18,14 +16,8 @@ pyproject-hooks==1.1.0 # via # build # pip-tools -tomli==2.0.1 - # via - # build - # pip-tools wheel==0.44.0 # via pip-tools -zipp==3.20.0 - # via importlib-metadata # The following packages are considered to be unsafe in a requirements file: # pip diff --git a/requirements/pip.txt b/requirements/pip.txt index de0f8b8d..96e7f68c 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.12 # by the following command: # # make upgrade @@ -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==73.0.0 +setuptools==74.1.2 # via -r requirements/pip.in diff --git a/requirements/production.txt b/requirements/production.txt index bbe88b5f..e5bc7f05 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.12 # by the following command: # # make upgrade @@ -13,29 +13,24 @@ asgiref==3.8.1 # -r requirements/base.txt # django # django-cors-headers -backports-zoneinfo==0.2.1 ; python_version < "3.9" - # via - # -r requirements/base.txt - # django - # djangorestframework beautifulsoup4==4.12.3 # via # -r requirements/base.txt # wagtail -boto3==1.35.1 +boto3==1.35.12 # via # -r requirements/base.txt # -r requirements/production.in -botocore==1.35.1 +botocore==1.35.12 # via # -r requirements/base.txt # boto3 # s3transfer -certifi==2024.7.4 +certifi==2024.8.30 # via # -r requirements/base.txt # requests -cffi==1.17.0 +cffi==1.17.1 # via # -r requirements/base.txt # cryptography @@ -48,7 +43,7 @@ click==8.1.7 # via # -r requirements/base.txt # edx-django-utils -cryptography==43.0.0 +cryptography==43.0.1 # via # -r requirements/base.txt # pyjwt @@ -59,7 +54,7 @@ defusedxml==0.8.0rc2 # python3-openid # social-auth-core # willow -django==4.2.15 +django==4.2.16 # via # -r requirements/base.txt # django-cors-headers @@ -153,9 +148,9 @@ edx-django-utils==5.15.0 # -r requirements/base.txt # edx-drf-extensions # edx-rest-api-client -edx-drf-extensions==10.3.0 +edx-drf-extensions==10.4.0 # via -r requirements/base.txt -edx-opaque-keys==2.10.0 +edx-opaque-keys==2.11.0 # via # -r requirements/base.txt # edx-drf-extensions @@ -175,14 +170,10 @@ greenlet==3.0.3 # via gevent gunicorn==23.0.0 # via -r requirements/production.in -idna==3.7 +idna==3.8 # via # -r requirements/base.txt # requests -importlib-metadata==8.3.0 - # via - # -r requirements/base.txt - # typeguard inflect==7.3.1 # via -r requirements/base.txt inflection==0.5.1 @@ -228,7 +219,7 @@ packaging==24.1 # -r requirements/base.txt # drf-yasg # gunicorn -pbr==6.0.0 +pbr==6.1.0 # via # -r requirements/base.txt # stevedore @@ -338,7 +329,7 @@ sqlparse==0.5.1 # via # -r requirements/base.txt # django -stevedore==5.2.0 +stevedore==5.3.0 # via # -r requirements/base.txt # edx-django-utils @@ -354,32 +345,28 @@ typeguard==4.3.0 typing-extensions==4.12.2 # via # -r requirements/base.txt - # asgiref # edx-opaque-keys - # inflect # typeguard uritemplate==4.1.1 # via # -r requirements/base.txt # drf-yasg -urllib3==1.26.19 +urllib3==1.26.20 # via # -r requirements/base.txt # botocore # requests -wagtail==6.2 +wagtail==6.2.1 # via -r requirements/base.txt willow[heif]==1.8.0 # via # -r requirements/base.txt # wagtail -zipp==3.20.0 - # via - # -r requirements/base.txt - # importlib-metadata +zipp==3.20.1 + # via -r requirements/base.txt zope-event==5.0 # via gevent -zope-interface==7.0.1 +zope-interface==7.0.3 # via gevent # The following packages are considered to be unsafe in a requirements file: diff --git a/requirements/quality.txt b/requirements/quality.txt index 3027f5b1..38be35d8 100644 --- a/requirements/quality.txt +++ b/requirements/quality.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.12 # by the following command: # # make upgrade @@ -18,18 +18,13 @@ astroid==3.2.4 # -r requirements/test.txt # pylint # pylint-celery -backports-zoneinfo==0.2.1 ; python_version < "3.9" - # via - # -r requirements/test.txt - # django - # djangorestframework beautifulsoup4==4.12.3 # via # -r requirements/test.txt # wagtail -boto3==1.35.1 +boto3==1.35.12 # via -r requirements/test.txt -botocore==1.35.1 +botocore==1.35.12 # via # -r requirements/test.txt # boto3 @@ -38,11 +33,11 @@ cachetools==5.5.0 # via # -r requirements/test.txt # tox -certifi==2024.7.4 +certifi==2024.8.30 # via # -r requirements/test.txt # requests -cffi==1.17.0 +cffi==1.17.1 # via # -r requirements/test.txt # cryptography @@ -78,7 +73,7 @@ coverage[toml]==7.6.1 # via # -r requirements/test.txt # pytest-cov -cryptography==43.0.0 +cryptography==43.0.1 # via # -r requirements/test.txt # pyjwt @@ -97,7 +92,7 @@ distlib==0.3.8 # via # -r requirements/test.txt # virtualenv -django==4.2.15 +django==4.2.16 # via # -r requirements/test.txt # django-cors-headers @@ -193,13 +188,13 @@ edx-django-utils==5.15.0 # -r requirements/test.txt # edx-drf-extensions # edx-rest-api-client -edx-drf-extensions==10.3.0 +edx-drf-extensions==10.4.0 # via -r requirements/test.txt -edx-lint==5.3.7 +edx-lint==5.4.0 # via # -r requirements/quality.in # -r requirements/test.txt -edx-opaque-keys==2.10.0 +edx-opaque-keys==2.11.0 # via # -r requirements/test.txt # edx-drf-extensions @@ -209,13 +204,9 @@ et-xmlfile==1.1.0 # via # -r requirements/test.txt # openpyxl -exceptiongroup==1.2.2 - # via - # -r requirements/test.txt - # pytest factory-boy==3.3.1 # via -r requirements/test.txt -faker==27.0.0 +faker==28.4.1 # via # -r requirements/test.txt # factory-boy @@ -228,14 +219,10 @@ filetype==1.2.0 # via # -r requirements/test.txt # willow -idna==3.7 +idna==3.8 # via # -r requirements/test.txt # requests -importlib-metadata==8.3.0 - # via - # -r requirements/test.txt - # typeguard inflect==7.3.1 # via -r requirements/test.txt inflection==0.5.1 @@ -304,7 +291,7 @@ packaging==24.1 # pyproject-api # pytest # tox -pbr==6.0.0 +pbr==6.1.0 # via # -r requirements/test.txt # stevedore @@ -348,7 +335,7 @@ pyjwt[crypto]==2.9.0 # edx-drf-extensions # edx-rest-api-client # social-auth-core -pylint==3.2.6 +pylint==3.2.7 # via # -r requirements/test.txt # edx-lint @@ -387,7 +374,7 @@ pytest==8.3.2 # pytest-django pytest-cov==5.0.0 # via -r requirements/test.txt -pytest-django==4.8.0 +pytest-django==4.9.0 # via -r requirements/test.txt python-dateutil==2.9.0.post0 # via @@ -466,7 +453,7 @@ sqlparse==0.5.1 # via # -r requirements/test.txt # django -stevedore==5.2.0 +stevedore==5.3.0 # via # -r requirements/test.txt # code-annotations @@ -480,14 +467,6 @@ text-unidecode==1.3 # via # -r requirements/test.txt # python-slugify -tomli==2.0.1 - # via - # -r requirements/test.txt - # coverage - # pylint - # pyproject-api - # pytest - # tox tomlkit==0.13.2 # via # -r requirements/test.txt @@ -501,17 +480,13 @@ typeguard==4.3.0 typing-extensions==4.12.2 # via # -r requirements/test.txt - # asgiref - # astroid # edx-opaque-keys - # inflect - # pylint # typeguard uritemplate==4.1.1 # via # -r requirements/test.txt # drf-yasg -urllib3==1.26.19 +urllib3==1.26.20 # via # -r requirements/test.txt # botocore @@ -520,13 +495,11 @@ virtualenv==20.26.3 # via # -r requirements/test.txt # tox -wagtail==6.2 +wagtail==6.2.1 # via -r requirements/test.txt willow[heif]==1.8.0 # via # -r requirements/test.txt # wagtail -zipp==3.20.0 - # via - # -r requirements/test.txt - # importlib-metadata +zipp==3.20.1 + # via -r requirements/test.txt diff --git a/requirements/test.txt b/requirements/test.txt index 8f6d57d7..24823fd9 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.12 # by the following command: # # make upgrade @@ -17,30 +17,24 @@ astroid==3.2.4 # via # pylint # pylint-celery -backports-zoneinfo==0.2.1 ; python_version < "3.9" - # via - # -c requirements/constraints.txt - # -r requirements/base.txt - # django - # djangorestframework beautifulsoup4==4.12.3 # via # -r requirements/base.txt # wagtail -boto3==1.35.1 +boto3==1.35.12 # via -r requirements/base.txt -botocore==1.35.1 +botocore==1.35.12 # via # -r requirements/base.txt # boto3 # s3transfer cachetools==5.5.0 # via tox -certifi==2024.7.4 +certifi==2024.8.30 # via # -r requirements/base.txt # requests -cffi==1.17.0 +cffi==1.17.1 # via # -r requirements/base.txt # cryptography @@ -70,7 +64,7 @@ coverage[toml]==7.6.1 # via # -r requirements/test.in # pytest-cov -cryptography==43.0.0 +cryptography==43.0.1 # via # -r requirements/base.txt # pyjwt @@ -182,11 +176,11 @@ edx-django-utils==5.15.0 # -r requirements/base.txt # edx-drf-extensions # edx-rest-api-client -edx-drf-extensions==10.3.0 +edx-drf-extensions==10.4.0 # via -r requirements/base.txt -edx-lint==5.3.7 +edx-lint==5.4.0 # via -r requirements/test.in -edx-opaque-keys==2.10.0 +edx-opaque-keys==2.11.0 # via # -r requirements/base.txt # edx-drf-extensions @@ -198,11 +192,9 @@ et-xmlfile==1.1.0 # via # -r requirements/base.txt # openpyxl -exceptiongroup==1.2.2 - # via pytest factory-boy==3.3.1 # via -r requirements/test.in -faker==27.0.0 +faker==28.4.1 # via # -r requirements/test.in # factory-boy @@ -214,14 +206,10 @@ filetype==1.2.0 # via # -r requirements/base.txt # willow -idna==3.7 +idna==3.8 # via # -r requirements/base.txt # requests -importlib-metadata==8.3.0 - # via - # -r requirements/base.txt - # typeguard inflect==7.3.1 # via -r requirements/base.txt inflection==0.5.1 @@ -281,7 +269,7 @@ packaging==24.1 # pyproject-api # pytest # tox -pbr==6.0.0 +pbr==6.1.0 # via # -r requirements/base.txt # stevedore @@ -319,7 +307,7 @@ pyjwt[crypto]==2.9.0 # edx-drf-extensions # edx-rest-api-client # social-auth-core -pylint==3.2.6 +pylint==3.2.7 # via # edx-lint # pylint-celery @@ -350,7 +338,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 @@ -425,7 +413,7 @@ sqlparse==0.5.1 # via # -r requirements/base.txt # django -stevedore==5.2.0 +stevedore==5.3.0 # via # -r requirements/base.txt # code-annotations @@ -437,13 +425,6 @@ telepath==0.3.1 # wagtail text-unidecode==1.3 # via python-slugify -tomli==2.0.1 - # via - # coverage - # pylint - # pyproject-api - # pytest - # tox tomlkit==0.13.2 # via pylint tox==4.18.0 @@ -455,30 +436,25 @@ typeguard==4.3.0 typing-extensions==4.12.2 # via # -r requirements/base.txt - # asgiref - # astroid # edx-opaque-keys - # inflect - # pylint # typeguard uritemplate==4.1.1 # via # -r requirements/base.txt # drf-yasg -urllib3==1.26.19 +urllib3==1.26.20 # via + # -c requirements/constraints.txt # -r requirements/base.txt # botocore # requests virtualenv==20.26.3 # via tox -wagtail==6.2 +wagtail==6.2.1 # via -r requirements/base.txt willow[heif]==1.8.0 # via # -r requirements/base.txt # wagtail -zipp==3.20.0 - # via - # -r requirements/base.txt - # importlib-metadata +zipp==3.20.1 + # via -r requirements/base.txt diff --git a/tox.ini b/tox.ini index 12d9490f..c58f73a0 100644 --- a/tox.ini +++ b/tox.ini @@ -1,5 +1,5 @@ [tox] -envlist = py{38,312}-django{42} +envlist = py{312}-django{42} skipsdist = true [pytest] From 7abdc70e83a851d82f24c88e86a697301b8f0d38 Mon Sep 17 00:00:00 2001 From: edX requirements bot Date: Mon, 9 Sep 2024 14:32:01 -0400 Subject: [PATCH 2/2] chore: Upgrade Python requirements --- requirements/base.txt | 8 ++++---- requirements/dev.txt | 28 ++++++++++++++++------------ requirements/doc.txt | 16 ++++++++-------- requirements/pip-tools.txt | 2 +- requirements/production.txt | 8 ++++---- requirements/quality.txt | 16 ++++++++-------- requirements/test.txt | 16 ++++++++-------- 7 files changed, 49 insertions(+), 45 deletions(-) diff --git a/requirements/base.txt b/requirements/base.txt index 000a9493..c392ee9c 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -12,9 +12,9 @@ asgiref==3.8.1 # django-cors-headers beautifulsoup4==4.12.3 # via wagtail -boto3==1.35.12 +boto3==1.35.14 # via -r requirements/base.in -botocore==1.35.12 +botocore==1.35.14 # via # boto3 # s3transfer @@ -129,7 +129,7 @@ filetype==1.2.0 # via willow idna==3.8 # via requests -inflect==7.3.1 +inflect==7.4.0 # via -r requirements/base.in inflection==0.5.1 # via drf-yasg @@ -143,7 +143,7 @@ laces==0.1.1 # via wagtail mock==5.1.0 # via -r requirements/base.in -more-itertools==10.4.0 +more-itertools==10.5.0 # via inflect mysqlclient==2.2.4 # via -r requirements/base.in diff --git a/requirements/dev.txt b/requirements/dev.txt index cb69ca17..8b34f9a5 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -22,9 +22,9 @@ beautifulsoup4==4.12.3 # via # -r requirements/quality.txt # wagtail -boto3==1.35.12 +boto3==1.35.14 # via -r requirements/quality.txt -botocore==1.35.12 +botocore==1.35.14 # via # -r requirements/quality.txt # boto3 @@ -85,7 +85,7 @@ defusedxml==0.8.0rc2 # python3-openid # social-auth-core # willow -diff-cover==9.1.1 +diff-cover==9.2.0 # via -r requirements/dev.in dill==0.3.8 # via @@ -199,7 +199,7 @@ edx-django-utils==5.15.0 # edx-rest-api-client edx-drf-extensions==10.4.0 # via -r requirements/quality.txt -edx-i18n-tools==1.6.2 +edx-i18n-tools==1.6.3 # via -r requirements/dev.in edx-lint==5.4.0 # via -r requirements/quality.txt @@ -221,7 +221,7 @@ faker==28.4.1 # via # -r requirements/quality.txt # factory-boy -filelock==3.15.4 +filelock==3.16.0 # via # -r requirements/quality.txt # tox @@ -234,7 +234,7 @@ idna==3.8 # via # -r requirements/quality.txt # requests -inflect==7.3.1 +inflect==7.4.0 # via -r requirements/quality.txt inflection==0.5.1 # via @@ -266,8 +266,12 @@ laces==0.1.1 # via # -r requirements/quality.txt # wagtail -lxml==5.3.0 - # via edx-i18n-tools +lxml[html-clean,html_clean]==5.3.0 + # via + # edx-i18n-tools + # lxml-html-clean +lxml-html-clean==0.2.2 + # via lxml markupsafe==2.1.5 # via # -r requirements/quality.txt @@ -278,7 +282,7 @@ mccabe==0.7.0 # pylint mock==5.1.0 # via -r requirements/quality.txt -more-itertools==10.4.0 +more-itertools==10.5.0 # via # -r requirements/quality.txt # inflect @@ -319,7 +323,7 @@ pillow-heif==0.18.0 # via # -r requirements/quality.txt # willow -platformdirs==4.2.2 +platformdirs==4.3.2 # via # -r requirements/quality.txt # pylint @@ -495,7 +499,7 @@ tomlkit==0.13.2 # via # -r requirements/quality.txt # pylint -tox==4.18.0 +tox==4.18.1 # via -r requirements/quality.txt typeguard==4.3.0 # via @@ -516,7 +520,7 @@ urllib3==1.26.20 # -r requirements/quality.txt # botocore # requests -virtualenv==20.26.3 +virtualenv==20.26.4 # via # -r requirements/quality.txt # tox diff --git a/requirements/doc.txt b/requirements/doc.txt index cad03b46..454d157c 100644 --- a/requirements/doc.txt +++ b/requirements/doc.txt @@ -26,9 +26,9 @@ beautifulsoup4==4.12.3 # via # -r requirements/test.txt # wagtail -boto3==1.35.12 +boto3==1.35.14 # via -r requirements/test.txt -botocore==1.35.12 +botocore==1.35.14 # via # -r requirements/test.txt # boto3 @@ -222,7 +222,7 @@ faker==28.4.1 # via # -r requirements/test.txt # factory-boy -filelock==3.15.4 +filelock==3.16.0 # via # -r requirements/test.txt # tox @@ -237,7 +237,7 @@ idna==3.8 # requests imagesize==1.4.1 # via sphinx -inflect==7.3.1 +inflect==7.4.0 # via -r requirements/test.txt inflection==0.5.1 # via @@ -279,7 +279,7 @@ mccabe==0.7.0 # pylint mock==5.1.0 # via -r requirements/test.txt -more-itertools==10.4.0 +more-itertools==10.5.0 # via # -r requirements/test.txt # inflect @@ -321,7 +321,7 @@ pillow-heif==0.18.0 # via # -r requirements/test.txt # willow -platformdirs==4.2.2 +platformdirs==4.3.2 # via # -r requirements/test.txt # pylint @@ -512,7 +512,7 @@ tomlkit==0.13.2 # via # -r requirements/test.txt # pylint -tox==4.18.0 +tox==4.18.1 # via -r requirements/test.txt typeguard==4.3.0 # via @@ -532,7 +532,7 @@ urllib3==1.26.20 # -r requirements/test.txt # botocore # requests -virtualenv==20.26.3 +virtualenv==20.26.4 # via # -r requirements/test.txt # tox diff --git a/requirements/pip-tools.txt b/requirements/pip-tools.txt index 67b6039d..e6268ff6 100644 --- a/requirements/pip-tools.txt +++ b/requirements/pip-tools.txt @@ -4,7 +4,7 @@ # # make upgrade # -build==1.2.1 +build==1.2.2 # via pip-tools click==8.1.7 # via pip-tools diff --git a/requirements/production.txt b/requirements/production.txt index e5bc7f05..dbaf3dcb 100644 --- a/requirements/production.txt +++ b/requirements/production.txt @@ -17,11 +17,11 @@ beautifulsoup4==4.12.3 # via # -r requirements/base.txt # wagtail -boto3==1.35.12 +boto3==1.35.14 # via # -r requirements/base.txt # -r requirements/production.in -botocore==1.35.12 +botocore==1.35.14 # via # -r requirements/base.txt # boto3 @@ -174,7 +174,7 @@ idna==3.8 # via # -r requirements/base.txt # requests -inflect==7.3.1 +inflect==7.4.0 # via -r requirements/base.txt inflection==0.5.1 # via @@ -195,7 +195,7 @@ laces==0.1.1 # wagtail mock==5.1.0 # via -r requirements/base.txt -more-itertools==10.4.0 +more-itertools==10.5.0 # via # -r requirements/base.txt # inflect diff --git a/requirements/quality.txt b/requirements/quality.txt index 38be35d8..c0f7af85 100644 --- a/requirements/quality.txt +++ b/requirements/quality.txt @@ -22,9 +22,9 @@ beautifulsoup4==4.12.3 # via # -r requirements/test.txt # wagtail -boto3==1.35.12 +boto3==1.35.14 # via -r requirements/test.txt -botocore==1.35.12 +botocore==1.35.14 # via # -r requirements/test.txt # boto3 @@ -210,7 +210,7 @@ faker==28.4.1 # via # -r requirements/test.txt # factory-boy -filelock==3.15.4 +filelock==3.16.0 # via # -r requirements/test.txt # tox @@ -223,7 +223,7 @@ idna==3.8 # via # -r requirements/test.txt # requests -inflect==7.3.1 +inflect==7.4.0 # via -r requirements/test.txt inflection==0.5.1 # via @@ -265,7 +265,7 @@ mccabe==0.7.0 # pylint mock==5.1.0 # via -r requirements/test.txt -more-itertools==10.4.0 +more-itertools==10.5.0 # via # -r requirements/test.txt # inflect @@ -304,7 +304,7 @@ pillow-heif==0.18.0 # via # -r requirements/test.txt # willow -platformdirs==4.2.2 +platformdirs==4.3.2 # via # -r requirements/test.txt # pylint @@ -471,7 +471,7 @@ tomlkit==0.13.2 # via # -r requirements/test.txt # pylint -tox==4.18.0 +tox==4.18.1 # via -r requirements/test.txt typeguard==4.3.0 # via @@ -491,7 +491,7 @@ urllib3==1.26.20 # -r requirements/test.txt # botocore # requests -virtualenv==20.26.3 +virtualenv==20.26.4 # via # -r requirements/test.txt # tox diff --git a/requirements/test.txt b/requirements/test.txt index 24823fd9..6d57b970 100644 --- a/requirements/test.txt +++ b/requirements/test.txt @@ -21,9 +21,9 @@ beautifulsoup4==4.12.3 # via # -r requirements/base.txt # wagtail -boto3==1.35.12 +boto3==1.35.14 # via -r requirements/base.txt -botocore==1.35.12 +botocore==1.35.14 # via # -r requirements/base.txt # boto3 @@ -198,7 +198,7 @@ faker==28.4.1 # via # -r requirements/test.in # factory-boy -filelock==3.15.4 +filelock==3.16.0 # via # tox # virtualenv @@ -210,7 +210,7 @@ idna==3.8 # via # -r requirements/base.txt # requests -inflect==7.3.1 +inflect==7.4.0 # via -r requirements/base.txt inflection==0.5.1 # via @@ -243,7 +243,7 @@ mock==5.1.0 # via # -r requirements/base.txt # -r requirements/test.in -more-itertools==10.4.0 +more-itertools==10.5.0 # via # -r requirements/base.txt # inflect @@ -282,7 +282,7 @@ pillow-heif==0.18.0 # via # -r requirements/base.txt # willow -platformdirs==4.2.2 +platformdirs==4.3.2 # via # pylint # tox @@ -427,7 +427,7 @@ text-unidecode==1.3 # via python-slugify tomlkit==0.13.2 # via pylint -tox==4.18.0 +tox==4.18.1 # via -r requirements/test.in typeguard==4.3.0 # via @@ -448,7 +448,7 @@ urllib3==1.26.20 # -r requirements/base.txt # botocore # requests -virtualenv==20.26.3 +virtualenv==20.26.4 # via tox wagtail==6.2.1 # via -r requirements/base.txt