diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 15b964c..c739298 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 41a5697..bee30fc 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 8b79709..28c1303 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 f196338..ee3928d 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 bdcc6b0..c392ee9 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.14 # via -r requirements/base.in -botocore==1.35.1 +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 @@ -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,11 +127,9 @@ 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 +inflect==7.4.0 # via -r requirements/base.in inflection==0.5.1 # via drf-yasg @@ -150,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 @@ -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 634f9ff..9ed6310 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 5b24781..8b34f9a 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.14 # via -r requirements/quality.txt -botocore==1.35.1 +botocore==1.35.14 # 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 @@ -91,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 @@ -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 +edx-i18n-tools==1.6.3 # 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,17 +215,13 @@ 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 -filelock==3.15.4 +filelock==3.16.0 # via # -r requirements/quality.txt # tox @@ -240,15 +230,11 @@ 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 +inflect==7.4.0 # via -r requirements/quality.txt inflection==0.5.1 # via @@ -280,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 @@ -292,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 @@ -320,7 +310,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 @@ -333,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 @@ -369,7 +359,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 +398,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 +481,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,19 +495,11 @@ 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 # pylint -tox==4.18.0 +tox==4.18.1 # via -r requirements/quality.txt typeguard==4.3.0 # via @@ -526,32 +508,27 @@ 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 -virtualenv==20.26.3 +virtualenv==20.26.4 # 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 16bc98b..64aaf99 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 e77914f..b2098db 100644 --- a/requirements/doc.txt +++ b/requirements/doc.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 @@ -33,9 +33,9 @@ beautifulsoup4==4.12.3 # -r requirements/test.txt # pydata-sphinx-theme # wagtail -boto3==1.35.1 +boto3==1.35.14 # via -r requirements/test.txt -botocore==1.35.1 +botocore==1.35.14 # via # -r requirements/test.txt # boto3 @@ -44,11 +44,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 @@ -84,7 +84,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 @@ -103,7 +103,7 @@ distlib==0.3.8 # via # -r requirements/test.txt # virtualenv -django==4.2.14 +django==4.2.16 # via # -r requirements/test.txt # django-cors-headers @@ -176,9 +176,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.20.1 +docutils==0.21.2 # via # doc8 # pydata-sphinx-theme @@ -208,11 +208,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 @@ -222,17 +222,13 @@ 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 -filelock==3.15.4 +filelock==3.16.0 # via # -r requirements/test.txt # tox @@ -241,18 +237,13 @@ 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 +inflect==7.4.0 # via -r requirements/test.txt inflection==0.5.1 # via @@ -294,7 +285,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 @@ -324,7 +315,7 @@ packaging==24.1 # pytest # sphinx # tox -pbr==6.0.0 +pbr==6.1.0 # via # -r requirements/test.txt # stevedore @@ -337,7 +328,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 @@ -373,7 +364,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 @@ -412,7 +403,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 @@ -439,7 +430,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 @@ -515,7 +506,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 @@ -544,7 +535,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 @@ -553,8 +544,6 @@ typeguard==4.3.0 typing-extensions==4.12.2 # via # -r requirements/test.txt - # asgiref - # astroid # edx-opaque-keys # pydata-sphinx-theme # pylint @@ -563,22 +552,23 @@ 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 # requests -virtualenv==20.26.3 +virtualenv==20.26.4 # 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 e6c7787..e6268ff 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.12 # 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.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 de0f8b8..96e7f68 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 bbe88b5..dbaf3dc 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.14 # via # -r requirements/base.txt # -r requirements/production.in -botocore==1.35.1 +botocore==1.35.14 # 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,15 +170,11 @@ 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 +inflect==7.4.0 # via -r requirements/base.txt inflection==0.5.1 # via @@ -204,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 @@ -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 3027f5b..c0f7af8 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.14 # via -r requirements/test.txt -botocore==1.35.1 +botocore==1.35.14 # 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,17 +204,13 @@ 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 -filelock==3.15.4 +filelock==3.16.0 # via # -r requirements/test.txt # tox @@ -228,15 +219,11 @@ 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 +inflect==7.4.0 # via -r requirements/test.txt inflection==0.5.1 # via @@ -278,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 +291,7 @@ packaging==24.1 # pyproject-api # pytest # tox -pbr==6.0.0 +pbr==6.1.0 # via # -r requirements/test.txt # stevedore @@ -317,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 @@ -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,19 +467,11 @@ 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 # pylint -tox==4.18.0 +tox==4.18.1 # via -r requirements/test.txt typeguard==4.3.0 # via @@ -501,32 +480,26 @@ 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 # requests -virtualenv==20.26.3 +virtualenv==20.26.4 # 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 8f6d57d..6d57b97 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.14 # via -r requirements/base.txt -botocore==1.35.1 +botocore==1.35.14 # 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,15 +192,13 @@ 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 -filelock==3.15.4 +filelock==3.16.0 # via # tox # virtualenv @@ -214,15 +206,11 @@ 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 +inflect==7.4.0 # via -r requirements/base.txt inflection==0.5.1 # via @@ -255,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 @@ -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 @@ -294,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 @@ -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,16 +425,9 @@ 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 +tox==4.18.1 # via -r requirements/test.in typeguard==4.3.0 # via @@ -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 +virtualenv==20.26.4 # 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 12d9490..c58f73a 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]