From 63d161163f2c334552c119da4205d7462174c237 Mon Sep 17 00:00:00 2001 From: Irtaza Akram Date: Mon, 15 Apr 2024 11:00:20 +0500 Subject: [PATCH 1/2] feat: add support for python 3.11 & 3.12 --- .github/workflows/ci.yml | 7 ++--- .github/workflows/migrations-check.yml | 2 +- CHANGELOG.rst | 6 ++++- edx_proctoring/__init__.py | 2 +- package.json | 2 +- requirements/base.txt | 35 ++++++++++++------------ requirements/celery50.txt | 2 +- requirements/constraints.txt | 5 +++- requirements/dev.txt | 20 +++++++------- requirements/pip-tools.txt | 2 +- requirements/quality.txt | 14 +++++----- requirements/test.txt | 37 +++++++++++++------------- setup.py | 4 +-- tox.ini | 9 +++---- 14 files changed, 75 insertions(+), 72 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 469d62ae2d0..6a17d4318b6 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -16,12 +16,10 @@ jobs: fail-fast: false matrix: os: ["ubuntu-20.04"] - python-version: ["3.8"] + python-version: ["3.8", "3.11", "3.12"] node-version: ["16"] toxenv: [ - "django32-drflatest", - "django40-drflatest", "django42-drflatest", "quality", "pii_check", @@ -29,7 +27,6 @@ jobs: "js_tests", "js_lint", "rst_validation", - "translations-django32", "translations-django42", ] steps: @@ -59,7 +56,7 @@ jobs: run: tox - name: Run Coverage - if: matrix.toxenv == 'django42-drflatest' + if: matrix.python-version == '3.8' && matrix.toxenv == 'django42-drflatest' uses: codecov/codecov-action@v3 with: flags: unittests diff --git a/.github/workflows/migrations-check.yml b/.github/workflows/migrations-check.yml index 6e583af6dc5..16bd593862c 100644 --- a/.github/workflows/migrations-check.yml +++ b/.github/workflows/migrations-check.yml @@ -14,7 +14,7 @@ jobs: strategy: matrix: os: [ ubuntu-20.04 ] - python-version: [ 3.8 ] + python-version: [ "3.8", "3.11", "3.12" ] steps: - name: Checkout repo diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 37ca2ce4b4c..63e991f0bde 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -14,7 +14,11 @@ Change Log Unreleased ~~~~~~~~~~ -[4.16.1] +[4.17.0] +~~~~~~~~~~~~~~~~~~~~~ +* Add support for Python 3.11 & 3.12 + +[4.16.1] - 2023-08-8 ~~~~~~~~~~~~~~~~~~~~~ * Updated django-simple-history package to 3.3.0 * Created no-op migrations needed for new django-simple-history package version diff --git a/edx_proctoring/__init__.py b/edx_proctoring/__init__.py index bfe47ee1248..d2da622e58d 100644 --- a/edx_proctoring/__init__.py +++ b/edx_proctoring/__init__.py @@ -3,4 +3,4 @@ """ # Be sure to update the version number in edx_proctoring/package.json -__version__ = '4.16.1' +__version__ = '4.17.0' diff --git a/package.json b/package.json index 96b9834b42c..f9ad8723c15 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@edx/edx-proctoring", "//": "Note that the version format is slightly different than that of the Python version when using prereleases.", - "version": "4.16.1", + "version": "4.17.0", "main": "edx_proctoring/static/index.js", "scripts": { "test": "gulp test" diff --git a/requirements/base.txt b/requirements/base.txt index 3015bb71b93..bfae4703e1f 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -12,8 +12,9 @@ asgiref==3.8.1 # via django attrs==23.2.0 # via openedx-events -backports-zoneinfo[tzdata]==0.2.1 +backports-zoneinfo[tzdata]==0.2.1 ; python_version < "3.9" # via + # -c requirements/constraints.txt # celery # django # djangorestframework @@ -47,7 +48,7 @@ click-plugins==1.1.1 # via celery click-repl==0.3.0 # via celery -code-annotations==1.7.0 +code-annotations==1.8.0 # via edx-toggles cryptography==42.0.5 # via pyjwt @@ -74,7 +75,7 @@ django-crum==0.7.9 # edx-toggles django-ipware==6.0.4 # via -r requirements/base.in -django-model-utils==4.4.0 +django-model-utils==4.5.0 # via # -r requirements/base.in # edx-when @@ -99,7 +100,7 @@ djangorestframework==3.15.1 # edx-drf-extensions drf-jwt==1.19.2 # via edx-drf-extensions -edx-django-utils==5.11.0 +edx-django-utils==5.12.0 # via # edx-drf-extensions # edx-rest-api-client @@ -107,7 +108,7 @@ edx-django-utils==5.11.0 # edx-when # event-tracking # openedx-events -edx-drf-extensions==10.2.0 +edx-drf-extensions==10.3.0 # via # -r requirements/base.in # edx-when @@ -117,13 +118,13 @@ edx-opaque-keys[django]==2.5.1 # edx-drf-extensions # edx-when # openedx-events -edx-rest-api-client==5.6.1 +edx-rest-api-client==5.7.0 # via -r requirements/base.in -edx-toggles==5.1.1 +edx-toggles==5.2.0 # via event-tracking -edx-when==2.4.0 +edx-when==2.5.0 # via -r requirements/base.in -event-tracking==2.3.1 +event-tracking==2.3.2 # via -r requirements/base.in fastavro==1.9.4 # via openedx-events @@ -135,9 +136,9 @@ jinja2==3.1.3 # via code-annotations jsonfield==3.1.0 # via -r requirements/base.in -kombu==5.3.5 +kombu==5.3.6 # via celery -lxml==5.1.0 +lxml==5.2.1 # via xblock mako==1.3.2 # via xblock @@ -146,9 +147,9 @@ markupsafe==2.1.5 # jinja2 # mako # xblock -newrelic==9.7.1 +newrelic==9.8.0 # via edx-django-utils -openedx-events==9.5.2 +openedx-events==9.7.0 # via event-tracking pbr==6.0.0 # via stevedore @@ -156,7 +157,7 @@ prompt-toolkit==3.0.43 # via click-repl psutil==5.9.8 # via edx-django-utils -pycparser==2.21 +pycparser==2.22 # via cffi pycryptodomex==3.20.0 # via -r requirements/base.in @@ -217,7 +218,7 @@ stevedore==5.2.0 # edx-opaque-keys text-unidecode==1.3 # via python-slugify -typing-extensions==4.10.0 +typing-extensions==4.11.0 # via # asgiref # edx-opaque-keys @@ -235,11 +236,11 @@ vine==5.1.0 # kombu wcwidth==0.2.13 # via prompt-toolkit -web-fragments==2.1.0 +web-fragments==2.2.0 # via xblock webob==1.8.7 # via xblock -xblock==3.0.0 +xblock==3.1.0 # via edx-when # The following packages are considered to be unsafe in a requirements file: diff --git a/requirements/celery50.txt b/requirements/celery50.txt index 1bd08f5588f..74a9f410ef8 100644 --- a/requirements/celery50.txt +++ b/requirements/celery50.txt @@ -4,6 +4,6 @@ celery==5.3.6 click==8.1.7 click-didyoumean==0.3.1 click-repl==0.3.0 -kombu==5.3.5 +kombu==5.3.6 prompt-toolkit==3.0.43 vine==5.1.0 diff --git a/requirements/constraints.txt b/requirements/constraints.txt index 943bac1dac6..97b472362e1 100644 --- a/requirements/constraints.txt +++ b/requirements/constraints.txt @@ -22,4 +22,7 @@ click>=8.0,<9.0 django-webpack-loader<1.0.0 # incremental upgrade plan. -django-simple-history<=3.1.1 \ No newline at end of file +django-simple-history<=3.1.1 + +#Temporary to Support the python 3.11 Upgrade +backports.zoneinfo;python_version<"3.9" # Newer versions have zoneinfo available in the standard library diff --git a/requirements/dev.txt b/requirements/dev.txt index 4fb18bec85a..093b26b6011 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -12,8 +12,10 @@ astroid==3.1.0 # via # pylint # pylint-celery -backports-zoneinfo==0.2.1 - # via django +backports-zoneinfo==0.2.1 ; python_version < "3.9" + # via + # -c requirements/constraints.txt + # django cachetools==5.3.3 # via tox chardet==5.2.0 @@ -29,12 +31,10 @@ click==8.1.7 # typer click-log==0.4.0 # via edx-lint -code-annotations==1.7.0 +code-annotations==1.8.0 # via edx-lint colorama==0.4.6 - # via - # tox - # typer + # via tox diff-cover==8.0.3 # via -r requirements/dev.in dill==0.3.8 @@ -72,7 +72,7 @@ jinja2==3.1.3 # via # code-annotations # diff-cover -lxml==5.1.0 +lxml==5.2.1 # via edx-i18n-tools markdown-it-py==3.0.0 # via rich @@ -86,7 +86,7 @@ packaging==24.0 # via # pyproject-api # tox -path==16.10.0 +path==16.13.0 # via # edx-i18n-tools # path-py @@ -166,9 +166,9 @@ tomlkit==0.12.4 # via pylint tox==4.14.2 # via -r requirements/dev.in -typer[all]==0.10.0 +typer[all]==0.12.1 # via rstcheck -typing-extensions==4.10.0 +typing-extensions==4.11.0 # via # annotated-types # asgiref diff --git a/requirements/pip-tools.txt b/requirements/pip-tools.txt index 9b3d8692300..c1c0f19ae35 100644 --- a/requirements/pip-tools.txt +++ b/requirements/pip-tools.txt @@ -4,7 +4,7 @@ # # make upgrade # -build==1.1.1 +build==1.2.1 # via pip-tools click==8.1.7 # via diff --git a/requirements/quality.txt b/requirements/quality.txt index 569f11f5b88..2b25916a664 100644 --- a/requirements/quality.txt +++ b/requirements/quality.txt @@ -12,8 +12,10 @@ astroid==3.1.0 # via # pylint # pylint-celery -backports-zoneinfo==0.2.1 - # via django +backports-zoneinfo==0.2.1 ; python_version < "3.9" + # via + # -c requirements/constraints.txt + # django click==8.1.7 # via # -c requirements/constraints.txt @@ -23,10 +25,8 @@ click==8.1.7 # typer click-log==0.4.0 # via edx-lint -code-annotations==1.7.0 +code-annotations==1.8.0 # via edx-lint -colorama==0.4.6 - # via typer dill==0.3.8 # via pylint django==4.2.11 @@ -110,9 +110,9 @@ tomli==2.0.1 # via pylint tomlkit==0.12.4 # via pylint -typer[all]==0.10.0 +typer[all]==0.12.1 # via rstcheck -typing-extensions==4.10.0 +typing-extensions==4.11.0 # via # annotated-types # asgiref diff --git a/requirements/test.txt b/requirements/test.txt index ed98aa9425e..413ab890f43 100644 --- a/requirements/test.txt +++ b/requirements/test.txt @@ -11,8 +11,9 @@ asgiref==3.8.1 # via django attrs==23.2.0 # via openedx-events -backports-zoneinfo[tzdata]==0.2.1 +backports-zoneinfo[tzdata]==0.2.1 ; python_version < "3.9" # via + # -c requirements/constraints.txt # celery # django # djangorestframework @@ -41,7 +42,7 @@ charset-normalizer==3.3.2 click-plugins==1.1.1 # via celery # via celery -code-annotations==1.7.0 +code-annotations==1.8.0 # via # -r requirements/test.in # edx-toggles @@ -74,7 +75,7 @@ django-crum==0.7.9 # edx-toggles django-ipware==6.0.4 # via -r requirements/base.in -django-model-utils==4.4.0 +django-model-utils==4.5.0 # via # -r requirements/base.in # edx-when @@ -98,7 +99,7 @@ django-webpack-loader==0.7.0 # edx-drf-extensions drf-jwt==1.19.2 # via edx-drf-extensions -edx-django-utils==5.11.0 +edx-django-utils==5.12.0 # via # edx-drf-extensions # edx-rest-api-client @@ -106,7 +107,7 @@ edx-django-utils==5.11.0 # edx-when # event-tracking # openedx-events -edx-drf-extensions==10.2.0 +edx-drf-extensions==10.3.0 # via # -r requirements/base.in # edx-when @@ -118,17 +119,17 @@ edx-opaque-keys[django]==2.5.1 # edx-drf-extensions # edx-when # openedx-events -edx-rest-api-client==5.6.1 +edx-rest-api-client==5.7.0 # via -r requirements/base.in -edx-toggles==5.1.1 +edx-toggles==5.2.0 # via event-tracking -edx-when==2.4.0 +edx-when==2.5.0 # via -r requirements/base.in -event-tracking==2.3.1 +event-tracking==2.3.2 # via -r requirements/base.in exceptiongroup==1.2.0 # via pytest -execnet==2.0.2 +execnet==2.1.1 # via pytest-xdist fastavro==1.9.4 # via openedx-events @@ -149,7 +150,7 @@ jinja2==3.1.3 jsonfield==3.1.0 # via -r requirements/base.in # via celery -lxml==5.1.0 +lxml==5.2.1 # via # edx-i18n-tools # xblock @@ -162,13 +163,13 @@ markupsafe==2.1.5 # xblock mock==5.1.0 # via -r requirements/test.in -newrelic==9.7.1 +newrelic==9.8.0 # via edx-django-utils -openedx-events==9.5.2 +openedx-events==9.7.0 # via event-tracking packaging==24.0 # via pytest -path==16.10.0 +path==16.13.0 # via edx-i18n-tools pbr==6.0.0 # via stevedore @@ -179,7 +180,7 @@ polib==1.2.0 # via click-repl psutil==5.9.8 # via edx-django-utils -pycparser==2.21 +pycparser==2.22 # via cffi pycryptodomex==3.20.0 # via -r requirements/base.in @@ -264,7 +265,7 @@ tomli==2.0.1 # via # coverage # pytest -typing-extensions==4.10.0 +typing-extensions==4.11.0 # via # asgiref # edx-opaque-keys @@ -283,11 +284,11 @@ urllib3==2.2.1 # kombu wcwidth==0.2.13 # via prompt-toolkit -web-fragments==2.1.0 +web-fragments==2.2.0 # via xblock webob==1.8.7 # via xblock -xblock==3.0.0 +xblock==3.1.0 # via edx-when # The following packages are considered to be unsafe in a requirements file: diff --git a/setup.py b/setup.py index 6975ea35d94..28dc8fda2ba 100755 --- a/setup.py +++ b/setup.py @@ -71,13 +71,13 @@ def is_requirement(line): classifiers=[ 'Development Status :: 4 - Beta', 'Framework :: Django', - 'Framework :: Django :: 3.2', - 'Framework :: Django :: 4.0', 'Framework :: Django :: 4.2', 'Intended Audience :: Developers', 'License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)', 'Natural Language :: English', 'Programming Language :: Python :: 3.8', + 'Programming Language :: Python :: 3.11', + 'Programming Language :: Python :: 3.12', ], packages=[ 'edx_proctoring', diff --git a/tox.ini b/tox.ini index b2c62281a65..8bfb9b918d0 100644 --- a/tox.ini +++ b/tox.ini @@ -1,15 +1,13 @@ [tox] envlist = - py38-celery{50}-django{32,40,42}-drflatest + py{38,311,312}-celery{50}-django{42}-drflatest quality, version_check, pii_check, - translations-django{32, 42} + translations-django{42} [testenv] deps = - django32: Django>=3.2,<3.3 - django40: Django>=4.0,<4.1 django42: Django>=4.2,<4.3 drflatest: djangorestframework celery50: -r{toxinidir}/requirements/celery50.txt @@ -67,7 +65,7 @@ allowlist_externals = make deps = -r{toxinidir}/requirements/test.txt - Django>=3.2,<3.3 + Django>=4.2,<4.3 commands = make pii_check @@ -75,7 +73,6 @@ commands = allowlist_externals = make deps = - django32: Django>=3.2,<3.3 django42: Django>=4.2,<4.3 -rrequirements/test.txt commands = From a472b3849b2fb3bf86ba5e172256e6f5e2768811 Mon Sep 17 00:00:00 2001 From: Feanil Patel Date: Fri, 19 Apr 2024 14:24:20 -0400 Subject: [PATCH 2/2] build: Update codecov to use the new repo secret. The old version keeps failing more and more often so we're updating and adding the repo secret. --- .github/workflows/ci.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6a17d4318b6..104dbddd20c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -57,7 +57,8 @@ jobs: - name: Run Coverage if: matrix.python-version == '3.8' && matrix.toxenv == 'django42-drflatest' - uses: codecov/codecov-action@v3 + uses: codecov/codecov-action@v4 with: flags: unittests fail_ci_if_error: true + token: ${{ secrets.CODECOV_TOKEN }}