diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index d33565cf4..02521da06 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -11,8 +11,8 @@ jobs: strategy: max-parallel: 2 matrix: - python-version: ["3.8", "3.10", "3.11"] - django: ["32", "42"] + python-version: ["3.8", "3.11"] + django: ["42"] steps: - name: Checkout uses: actions/checkout@v4 diff --git a/CHANGELOG.md b/CHANGELOG.md index dfd95b679..a864e2800 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,12 +5,18 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -## [Unreleased](https://github.com/eduNEXT/eox-core/compare/v10.4.0...HEAD) +## [Unreleased](https://github.com/eduNEXT/eox-core/compare/v11.0.0...HEAD) Please do not update the unreleased notes. +## [v11.0.0](https://github.com/eduNEXT/eox-core/compare/v10.6.0...v11.0.0) - (2024-10-22) + +#### ⚠ BREAKING CHANGES + +- **Dropped Support for Django 3.2**: Removed support for Django 3.2 in this plugin. As a result, we have also dropped support for Open edX releases from Maple up to and including Palm, which rely on Django 3.2. Future versions of this plugin may not be compatible with these Open edX releases. + ## [v10.6.0](https://github.com/eduNEXT/eox-core/compare/v10.5.1...v10.6.0) - (2024-09-17) ### Added diff --git a/README.rst b/README.rst index dc5254804..afa849275 100644 --- a/README.rst +++ b/README.rst @@ -50,29 +50,29 @@ See the `How to section = 3.0 < 5.0 | -+------------------+--------------+ -| Koa | >= 4.9 < 6.0 | -+------------------+--------------+ -| Lilac | >= 4.9 < 6.0 | -+------------------+--------------+ -| Maple | >= 6.0 | -+------------------+--------------+ -| Nutmeg | >= 7.0 | -+------------------+--------------+ -| Olive | >= 8.0 | -+------------------+--------------+ -| Palm | >= 9.0 | -+------------------+--------------+ -| Quince | >= 10.0 | -+------------------+--------------+ -| Redwood | >= 10.5.1 | -+------------------+--------------+ ++------------------+---------------+ +| Open edX Release | Version | ++==================+===============+ +| Ironwood | < 4.0 | ++------------------+---------------+ +| Juniper | >= 3.0 < 5.0 | ++------------------+---------------+ +| Koa | >= 4.9 < 6.0 | ++------------------+---------------+ +| Lilac | >= 4.9 < 6.0 | ++------------------+---------------+ +| Maple | >= 6.0 < 11.0 | ++------------------+---------------+ +| Nutmeg | >= 7.0 < 11.0 | ++------------------+---------------+ +| Olive | >= 8.0 < 11.0 | ++------------------+---------------+ +| Palm | >= 9.0 < 11.0 | ++------------------+---------------+ +| Quince | >= 10.0 | ++------------------+---------------+ +| Redwood | >= 10.5.1 | ++------------------+---------------+ ⚠️ The Maple version does not support Django 2.2 but it does support Django 3.2 as of eox-core 7.0. diff --git a/eox_core/__init__.py b/eox_core/__init__.py index ac708996f..0d6747c4a 100644 --- a/eox_core/__init__.py +++ b/eox_core/__init__.py @@ -1,4 +1,4 @@ """ Init for main eox-core app """ -__version__ = '10.6.0' +__version__ = '11.0.0' diff --git a/requirements/base.txt b/requirements/base.txt index 33ddb4447..a1f2b7a69 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -19,7 +19,7 @@ backports-zoneinfo[tzdata]==0.2.1 ; python_version < "3.9" # django # djangorestframework # kombu -billiard==4.2.0 +billiard==4.2.1 # via celery celery==5.4.0 # via @@ -31,7 +31,7 @@ cffi==1.17.1 # via # cryptography # pynacl -charset-normalizer==3.3.2 +charset-normalizer==3.4.0 # via requests click==8.1.7 # via @@ -50,7 +50,7 @@ click-repl==0.3.0 # via celery code-annotations==1.8.0 # via edx-toggles -cryptography==43.0.1 +cryptography==43.0.3 # via # jwcrypto # pyjwt @@ -85,10 +85,8 @@ django-crum==0.7.9 # edx-django-utils # edx-proctoring # edx-toggles -django-filter==23.5 - # via - # -c requirements/constraints.txt - # -r requirements/base.in +django-filter==24.3 + # via -r requirements/base.in django-ipware==7.0.1 # via edx-proctoring django-model-utils==5.0.0 @@ -114,9 +112,8 @@ django-waffle==4.1.0 # edx-toggles django-webpack-loader==3.1.1 # via edx-proctoring -djangorestframework==3.15.1 +djangorestframework==3.15.2 # via - # -c requirements/constraints.txt # -r requirements/base.in # drf-jwt # drf-yasg @@ -125,13 +122,13 @@ djangorestframework==3.15.1 # edx-proctoring drf-jwt==1.19.2 # via edx-drf-extensions -drf-yasg==1.21.7 +drf-yasg==1.21.8 # via edx-api-doc-tools edx-api-doc-tools==2.0.0 # via -r requirements/base.in edx-ccx-keys==1.3.0 # via openedx-events -edx-django-utils==5.15.0 +edx-django-utils==7.0.0 # via # edx-drf-extensions # edx-rest-api-client @@ -152,7 +149,7 @@ edx-opaque-keys[django]==2.11.0 # edx-proctoring # edx-when # openedx-events -edx-proctoring==4.18.1 +edx-proctoring==4.18.2 # via -r requirements/base.in edx-rest-api-client==6.0.0 # via edx-proctoring @@ -178,18 +175,18 @@ jsonfield==3.1.0 # via edx-proctoring jwcrypto==1.5.6 # via django-oauth-toolkit -kombu==5.4.1 +kombu==5.4.2 # via celery lxml==5.3.0 # via xblock -mako==1.3.5 +mako==1.3.6 # via xblock markupsafe==2.1.5 # via # jinja2 # mako # xblock -newrelic==9.13.0 +newrelic==10.2.0 # via edx-django-utils oauthlib==3.2.2 # via @@ -204,13 +201,13 @@ packaging==24.1 # via drf-yasg pbr==6.1.0 # via stevedore -prompt-toolkit==3.0.47 +prompt-toolkit==3.0.48 # via click-repl -psutil==6.0.0 +psutil==6.1.0 # via edx-django-utils pycparser==2.22 # via cffi -pycryptodomex==3.20.0 +pycryptodomex==3.21.0 # via edx-proctoring pyjwt[crypto]==2.9.0 # via @@ -288,7 +285,7 @@ typing-extensions==4.12.2 # edx-opaque-keys # jwcrypto # kombu -tzdata==2024.1 +tzdata==2024.2 # via # backports-zoneinfo # celery diff --git a/requirements/constraints.txt b/requirements/constraints.txt index 382c2ce14..e451b81a0 100644 --- a/requirements/constraints.txt +++ b/requirements/constraints.txt @@ -16,13 +16,5 @@ pylint<3.0 pycodestyle<2.9.0 django-oauth-toolkit<2.0.0 -# Adding pin to avoid any major upgrade. -# 3.15.1 is the latest version that works with Django 3.2 -djangorestframework<3.15.2 - -# Adding pin to avoid any major upgrade. -# 23.5. is the latest version that works with Django 3.2 -django-filter<24.1 - # backports.zoneinfo is only needed for Python < 3.9 backports.zoneinfo; python_version<'3.9' diff --git a/requirements/django32.txt b/requirements/django32.txt deleted file mode 100644 index d296127a5..000000000 --- a/requirements/django32.txt +++ /dev/null @@ -1 +0,0 @@ -django==3.2.23 diff --git a/requirements/pip-tools.txt b/requirements/pip-tools.txt index ed1314ea9..c93929312 100644 --- a/requirements/pip-tools.txt +++ b/requirements/pip-tools.txt @@ -4,7 +4,7 @@ # # make upgrade # -build==1.2.2 +build==1.2.2.post1 # via pip-tools click==8.1.7 # via pip-tools @@ -14,11 +14,11 @@ packaging==24.1 # via build pip-tools==7.4.1 # via -r requirements/pip-tools.in -pyproject-hooks==1.1.0 +pyproject-hooks==1.2.0 # via # build # pip-tools -tomli==2.0.1 +tomli==2.0.2 # via # build # pip-tools diff --git a/requirements/test.txt b/requirements/test.txt index 10bab3f44..fec1add12 100644 --- a/requirements/test.txt +++ b/requirements/test.txt @@ -31,7 +31,7 @@ backports-zoneinfo[tzdata]==0.2.1 ; python_version < "3.9" # django # djangorestframework # kombu -billiard==4.2.0 +billiard==4.2.1 # via # -r requirements/base.txt # celery @@ -48,7 +48,7 @@ cffi==1.17.1 # -r requirements/base.txt # cryptography # pynacl -charset-normalizer==3.3.2 +charset-normalizer==3.4.0 # via # -r requirements/base.txt # requests @@ -79,7 +79,7 @@ code-annotations==1.8.0 # edx-toggles coverage==7.6.1 # via -r requirements/test.in -cryptography==43.0.1 +cryptography==43.0.3 # via # -r requirements/base.txt # jwcrypto @@ -92,7 +92,7 @@ defusedxml==0.8.0rc2 # -r requirements/base.txt # python3-openid # social-auth-core -dill==0.3.8 +dill==0.3.9 # via pylint # via # -c https://raw.githubusercontent.com/openedx/edx-lint/master/edx_lint/files/common_constraints.txt @@ -122,10 +122,8 @@ django-crum==0.7.9 # edx-django-utils # edx-proctoring # edx-toggles -django-filter==23.5 - # via - # -c requirements/constraints.txt - # -r requirements/base.txt +django-filter==24.3 + # via -r requirements/base.txt django-ipware==7.0.1 # via # -r requirements/base.txt @@ -157,9 +155,8 @@ django-webpack-loader==3.1.1 # via # -r requirements/base.txt # edx-proctoring -djangorestframework==3.15.1 +djangorestframework==3.15.2 # via - # -c requirements/constraints.txt # -r requirements/base.txt # drf-jwt # drf-yasg @@ -170,7 +167,7 @@ drf-jwt==1.19.2 # via # -r requirements/base.txt # edx-drf-extensions -drf-yasg==1.21.7 +drf-yasg==1.21.8 # via # -r requirements/base.txt # edx-api-doc-tools @@ -180,7 +177,7 @@ edx-ccx-keys==1.3.0 # via # -r requirements/base.txt # openedx-events -edx-django-utils==5.15.0 +edx-django-utils==7.0.0 # via # -r requirements/base.txt # edx-drf-extensions @@ -202,7 +199,7 @@ edx-opaque-keys[django]==2.11.0 # edx-proctoring # edx-when # openedx-events -edx-proctoring==4.18.1 +edx-proctoring==4.18.2 # via -r requirements/base.txt edx-rest-api-client==6.0.0 # via @@ -225,7 +222,7 @@ exceptiongroup==1.2.2 # via pytest factory-boy==3.3.1 # via -r requirements/test.in -faker==28.4.1 +faker==30.8.0 # via factory-boy fastavro==1.9.7 # via @@ -259,7 +256,7 @@ jwcrypto==1.5.6 # via # -r requirements/base.txt # django-oauth-toolkit -kombu==5.4.1 +kombu==5.4.2 # via # -r requirements/base.txt # celery @@ -269,7 +266,7 @@ lxml==5.3.0 # via # -r requirements/base.txt # xblock -mako==1.3.5 +mako==1.3.6 # via # -r requirements/base.txt # xblock @@ -283,7 +280,7 @@ mccabe==0.7.0 # via pylint mock==5.1.0 # via -r requirements/test.in -newrelic==9.13.0 +newrelic==10.2.0 # via # -r requirements/base.txt # edx-django-utils @@ -310,11 +307,11 @@ platformdirs==4.3.6 # via pylint pluggy==1.5.0 # via pytest -prompt-toolkit==3.0.47 +prompt-toolkit==3.0.48 # via # -r requirements/base.txt # click-repl -psutil==6.0.0 +psutil==6.1.0 # via # -r requirements/base.txt # edx-django-utils @@ -326,7 +323,7 @@ pycparser==2.22 # via # -r requirements/base.txt # cffi -pycryptodomex==3.20.0 +pycryptodomex==3.21.0 # via # -r requirements/base.txt # edx-proctoring @@ -443,7 +440,7 @@ text-unidecode==1.3 # via # -r requirements/base.txt # python-slugify -tomli==2.0.1 +tomli==2.0.2 # via # pylint # pytest @@ -456,10 +453,11 @@ typing-extensions==4.12.2 # astroid # django-countries # edx-opaque-keys + # faker # jwcrypto # kombu # pylint -tzdata==2024.1 +tzdata==2024.2 # via # -r requirements/base.txt # backports-zoneinfo diff --git a/requirements/tox.txt b/requirements/tox.txt index 33638b49d..627440c78 100644 --- a/requirements/tox.txt +++ b/requirements/tox.txt @@ -10,7 +10,7 @@ chardet==5.2.0 # via tox colorama==0.4.6 # via tox -distlib==0.3.8 +distlib==0.3.9 # via virtualenv filelock==3.16.1 # via @@ -26,13 +26,15 @@ platformdirs==4.3.6 # virtualenv pluggy==1.5.0 # via tox -pyproject-api==1.7.1 +pyproject-api==1.8.0 # via tox -tomli==2.0.1 +tomli==2.0.2 # via # pyproject-api # tox -tox==4.19.0 +tox==4.23.1 # via -r requirements/tox.in -virtualenv==20.26.4 +typing-extensions==4.12.2 + # via tox +virtualenv==20.27.0 # via tox diff --git a/setup.cfg b/setup.cfg index b48a0e6df..c2189f974 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,5 +1,5 @@ [bumpversion] -current_version = 10.6.0 +current_version = 11.0.0 commit = False tag = False diff --git a/setup.py b/setup.py index c05b8b430..a343c2b9f 100644 --- a/setup.py +++ b/setup.py @@ -63,13 +63,11 @@ def is_requirement(line): long_description_content_type='text/x-rst', classifiers=[ 'Development Status :: 5 - Production/Stable', - 'Framework :: Django :: 3.2', 'Framework :: Django :: 4.2', 'Intended Audience :: Developers', 'License :: OSI Approved :: GNU Affero General Public License v3', 'Operating System :: OS Independent', 'Programming Language :: Python :: 3.8', - 'Programming Language :: Python :: 3.10', 'Programming Language :: Python :: 3.11', ], install_requires=load_requirements('requirements/base.in'), diff --git a/tox.ini b/tox.ini index 7deb4239e..bd59b4139 100644 --- a/tox.ini +++ b/tox.ini @@ -1,16 +1,14 @@ [tox] -envlist = py{38, 310, 311}-django{32, 42} +envlist = py{38, 311}-django{42} [testenv] passenv = TEST_INTEGRATION envdir= py38: {toxworkdir}/py38 - py310: {toxworkdir}/py310 py311: {toxworkdir}/py311 deps = - django32: -r requirements/django32.txt django42: -r requirements/django42.txt -r requirements/test.txt commands =