diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4e59c6ce..035be4c3 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -12,13 +12,13 @@ jobs: strategy: matrix: os: [ubuntu-20.04] - python-version: ['3.8', '3.11', '3.12'] + python-version: ['3.11', '3.12'] toxenv: [django42] steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - name: Python setup - uses: actions/setup-python@v2 + uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} @@ -31,7 +31,7 @@ jobs: run: tox -e ${{ matrix.toxenv }} - name: Upload coverage to CodeCov - if: matrix.python-version == '3.8' && matrix.toxenv == 'django42' + if: matrix.python-version == '3.11' && matrix.toxenv == 'django42' uses: codecov/codecov-action@v4 with: file: ./coverage.xml diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index 142977a8..a826746f 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -11,7 +11,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v4 - name: Build and Push docker image env: diff --git a/.github/workflows/pypi-publish.yml b/.github/workflows/pypi-publish.yml index a30e6e10..371a7380 100644 --- a/.github/workflows/pypi-publish.yml +++ b/.github/workflows/pypi-publish.yml @@ -12,11 +12,11 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v4 - name: setup python - uses: actions/setup-python@v2 + uses: actions/setup-python@v5 with: - python-version: 3.8 + python-version: 3.11 - name: Install pip run: pip install -r requirements/pip.txt diff --git a/README.rst b/README.rst index 1d1ff916..03a1da2b 100644 --- a/README.rst +++ b/README.rst @@ -28,7 +28,7 @@ Getting Started Developing ========== -This code runs on Python 3.8 or newer. +This code runs on Python 3.11 or newer. One Time Setup -------------- @@ -40,7 +40,7 @@ One Time Setup # Set up a virtualenv with the same name as the repo and activate it # Here's how you might do that if you have virtualenvwrapper setup. - mkvirtualenv -p python3.8 xblock-sdk + mkvirtualenv -p python3.11 xblock-sdk # Install system requirements needed to run this on ubuntu. # Note: Debian 10 needs libjpeg62-turbo-dev instead of libjpeg62-dev. @@ -107,7 +107,7 @@ On the first startup run the following command to create the SQLite database. Command:: - $ docker container exec -it edx.devstack.xblock-sdk python3.8 manage.py migrate + $ docker container exec -it edx.devstack.xblock-sdk python3.11 manage.py migrate You should now be able to access the XBlock SDK environment in your browser at http://localhost:8000 diff --git a/requirements/base.txt b/requirements/base.txt index 24b0b292..7b1c436a 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -1,5 +1,5 @@ # -# This file is autogenerated by pip-compile with Python 3.8 +# This file is autogenerated by pip-compile with Python 3.11 # by the following command: # # make upgrade @@ -10,15 +10,11 @@ arrow==1.3.0 # via cookiecutter asgiref==3.8.1 # via django -backports-zoneinfo==0.2.1 ; python_version < "3.9" - # via - # -c requirements/constraints.txt - # django binaryornot==0.4.4 # via cookiecutter -boto3==1.34.144 +boto3==1.34.149 # via fs-s3fs -botocore==1.34.144 +botocore==1.34.149 # via # boto3 # s3transfer @@ -107,17 +103,13 @@ six==1.16.0 # fs # fs-s3fs # python-dateutil -sqlparse==0.5.0 +sqlparse==0.5.1 # via django text-unidecode==1.3 # via python-slugify types-python-dateutil==2.9.0.20240316 # via arrow -typing-extensions==4.12.2 - # via - # asgiref - # rich -urllib3==1.26.19 +urllib3==2.2.2 # via # botocore # requests @@ -129,7 +121,7 @@ webob==1.8.7 # via # -r requirements/base.in # xblock -xblock[django]==4.0.1 +xblock[django]==5.0.0 # via -r requirements/base.in # The following packages are considered to be unsafe in a requirements file: diff --git a/requirements/ci.txt b/requirements/ci.txt index 2129e937..564c0f58 100644 --- a/requirements/ci.txt +++ b/requirements/ci.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.11 # by the following command: # # make upgrade # -cachetools==5.3.3 +cachetools==5.4.0 # via tox chardet==5.2.0 # via tox @@ -28,10 +28,6 @@ pluggy==1.5.0 # via tox pyproject-api==1.7.1 # via tox -tomli==2.0.1 - # via - # pyproject-api - # tox tox==4.16.0 # via -r requirements/ci.in virtualenv==20.26.3 diff --git a/requirements/common_constraints.txt b/requirements/common_constraints.txt index e3bf8eae..b957ec4c 100644 --- a/requirements/common_constraints.txt +++ b/requirements/common_constraints.txt @@ -17,6 +17,7 @@ Django<5.0 # elasticsearch>=7.14.0 includes breaking changes in it which caused issues in discovery upgrade process. # elastic search changelog: https://www.elastic.co/guide/en/enterprise-search/master/release-notes-7.14.0.html +# See https://github.com/openedx/edx-platform/issues/35126 for more info elasticsearch<7.14.0 # django-simple-history>3.0.0 adds indexing and causes a lot of migrations to be affected @@ -30,3 +31,10 @@ django-simple-history==3.0.0 # So we need to pin it globally, for now. # Ticket for unpinning: https://github.com/openedx/edx-lint/issues/407 importlib-metadata<7 + +# Cause: https://github.com/openedx/event-tracking/pull/290 +# event-tracking 2.4.1 upgrades to pymongo 4.4.0 which is not supported on edx-platform. +# We will pin event-tracking to do not break existing installations +# This can be unpinned once https://github.com/openedx/edx-platform/issues/34586 +# has been resolved and edx-platform is running with pymongo>=4.4.0 +event-tracking<2.4.1 diff --git a/requirements/dev.txt b/requirements/dev.txt index a961394a..e996815d 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -1,5 +1,5 @@ # -# This file is autogenerated by pip-compile with Python 3.8 +# This file is autogenerated by pip-compile with Python 3.11 # by the following command: # # make upgrade @@ -23,33 +23,27 @@ asgiref==3.8.1 # -r requirements/base.txt # -r requirements/test.txt # django -astroid==3.2.3 +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 - # -r requirements/test.txt - # django binaryornot==0.4.4 # via # -r requirements/base.txt # -r requirements/test.txt # cookiecutter -boto3==1.34.144 +boto3==1.34.149 # via # -r requirements/base.txt # -r requirements/test.txt # fs-s3fs -botocore==1.34.144 +botocore==1.34.149 # via # -r requirements/base.txt # -r requirements/test.txt # boto3 # s3transfer -cachetools==5.3.3 +cachetools==5.4.0 # via # -r requirements/test.txt # tox @@ -110,12 +104,8 @@ django==4.2.14 # -r requirements/base.txt # -r requirements/test.txt # openedx-django-pyfs -edx-lint==5.3.6 +edx-lint==5.3.7 # via -r requirements/quality.in -exceptiongroup==1.2.2 - # via - # -r requirements/test.txt - # pytest filelock==3.15.4 # via # -r requirements/test.txt @@ -232,7 +222,7 @@ pygments==2.18.0 # -r requirements/base.txt # -r requirements/test.txt # rich -pylint==3.2.5 +pylint==3.2.6 # via # edx-lint # pylint-celery @@ -254,7 +244,7 @@ pyproject-api==1.7.1 # via # -r requirements/test.txt # tox -pytest==8.2.2 +pytest==8.3.2 # via # -r requirements/test.txt # pytest-cov @@ -327,7 +317,7 @@ six==1.16.0 # python-dateutil snowballstemmer==2.2.0 # via pydocstyle -sqlparse==0.5.0 +sqlparse==0.5.1 # via # -r requirements/base.txt # -r requirements/test.txt @@ -339,14 +329,6 @@ text-unidecode==1.3 # -r requirements/base.txt # -r requirements/test.txt # python-slugify -tomli==2.0.1 - # via - # -r requirements/test.txt - # coverage - # pylint - # pyproject-api - # pytest - # tox tomlkit==0.13.0 # via pylint tox==4.16.0 @@ -358,15 +340,7 @@ types-python-dateutil==2.9.0.20240316 # -r requirements/base.txt # -r requirements/test.txt # arrow -typing-extensions==4.12.2 - # via - # -r requirements/base.txt - # -r requirements/test.txt - # asgiref - # astroid - # pylint - # rich -urllib3==1.26.19 +urllib3==2.2.2 # via # -r requirements/base.txt # -r requirements/test.txt @@ -386,7 +360,7 @@ webob==1.8.7 # -r requirements/base.txt # -r requirements/test.txt # xblock -xblock[django]==4.0.1 +xblock[django]==5.0.0 # via # -r requirements/base.txt # -r requirements/test.txt diff --git a/requirements/pip-tools.txt b/requirements/pip-tools.txt index f577da4d..b544e9f5 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.11 # by the following command: # # make upgrade @@ -8,10 +8,6 @@ build==1.2.1 # via pip-tools click==8.1.7 # via pip-tools -importlib-metadata==6.11.0 - # via - # -c requirements/common_constraints.txt - # build packaging==24.1 # via build pip-tools==7.4.1 @@ -20,14 +16,8 @@ pyproject-hooks==1.1.0 # via # build # pip-tools -tomli==2.0.1 - # via - # build - # pip-tools wheel==0.43.0 # via pip-tools -zipp==3.19.2 - # 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 e155dab5..854334df 100644 --- a/requirements/pip.txt +++ b/requirements/pip.txt @@ -1,5 +1,5 @@ # -# This file is autogenerated by pip-compile with Python 3.8 +# This file is autogenerated by pip-compile with Python 3.11 # by the following command: # # make upgrade @@ -10,5 +10,5 @@ wheel==0.43.0 # The following packages are considered to be unsafe in a requirements file: pip==24.1.2 # via -r requirements/pip.in -setuptools==70.3.0 +setuptools==71.1.0 # via -r requirements/pip.in diff --git a/requirements/quality.txt b/requirements/quality.txt index 5997ce96..f82896f8 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.11 # by the following command: # # make upgrade @@ -18,29 +18,24 @@ asgiref==3.8.1 # via # -r requirements/test.txt # django -astroid==3.2.3 +astroid==3.2.4 # via # pylint # pylint-celery -backports-zoneinfo==0.2.1 ; python_version < "3.9" - # via - # -c requirements/constraints.txt - # -r requirements/test.txt - # django binaryornot==0.4.4 # via # -r requirements/test.txt # cookiecutter -boto3==1.34.144 +boto3==1.34.149 # via # -r requirements/test.txt # fs-s3fs -botocore==1.34.144 +botocore==1.34.149 # via # -r requirements/test.txt # boto3 # s3transfer -cachetools==5.3.3 +cachetools==5.4.0 # via # -r requirements/test.txt # tox @@ -91,12 +86,8 @@ django==4.2.14 # -c requirements/common_constraints.txt # -r requirements/test.txt # openedx-django-pyfs -edx-lint==5.3.6 +edx-lint==5.3.7 # via -r requirements/quality.in -exceptiongroup==1.2.2 - # via - # -r requirements/test.txt - # pytest filelock==3.15.4 # via # -r requirements/test.txt @@ -198,7 +189,7 @@ pygments==2.18.0 # via # -r requirements/test.txt # rich -pylint==3.2.5 +pylint==3.2.6 # via # edx-lint # pylint-celery @@ -218,7 +209,7 @@ pyproject-api==1.7.1 # via # -r requirements/test.txt # tox -pytest==8.2.2 +pytest==8.3.2 # via # -r requirements/test.txt # pytest-cov @@ -276,7 +267,7 @@ six==1.16.0 # python-dateutil snowballstemmer==2.2.0 # via pydocstyle -sqlparse==0.5.0 +sqlparse==0.5.1 # via # -r requirements/test.txt # django @@ -286,14 +277,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.0 # via pylint tox==4.16.0 @@ -302,14 +285,7 @@ types-python-dateutil==2.9.0.20240316 # via # -r requirements/test.txt # arrow -typing-extensions==4.12.2 - # via - # -r requirements/test.txt - # asgiref - # astroid - # pylint - # rich -urllib3==1.26.19 +urllib3==2.2.2 # via # -r requirements/test.txt # botocore @@ -326,7 +302,7 @@ webob==1.8.7 # via # -r requirements/test.txt # xblock -xblock[django]==4.0.1 +xblock[django]==5.0.0 # via # -r requirements/test.txt # acid-xblock diff --git a/requirements/test.txt b/requirements/test.txt index f729e2b3..195d6fd9 100644 --- a/requirements/test.txt +++ b/requirements/test.txt @@ -1,5 +1,5 @@ # -# This file is autogenerated by pip-compile with Python 3.8 +# This file is autogenerated by pip-compile with Python 3.11 # by the following command: # # make upgrade @@ -18,25 +18,20 @@ asgiref==3.8.1 # via # -r requirements/base.txt # django -backports-zoneinfo==0.2.1 ; python_version < "3.9" - # via - # -c requirements/constraints.txt - # -r requirements/base.txt - # django binaryornot==0.4.4 # via # -r requirements/base.txt # cookiecutter -boto3==1.34.144 +boto3==1.34.149 # via # -r requirements/base.txt # fs-s3fs -botocore==1.34.144 +botocore==1.34.149 # via # -r requirements/base.txt # boto3 # s3transfer -cachetools==5.3.3 +cachetools==5.4.0 # via tox certifi==2024.7.4 # via @@ -71,8 +66,6 @@ distlib==0.3.8 # -c requirements/common_constraints.txt # -r requirements/base.txt # openedx-django-pyfs -exceptiongroup==1.2.2 - # via pytest filelock==3.15.4 # via # tox @@ -158,7 +151,7 @@ pypng==0.20220715.0 # via -r requirements/base.txt pyproject-api==1.7.1 # via tox -pytest==8.2.2 +pytest==8.3.2 # via # pytest-cov # pytest-django @@ -210,7 +203,7 @@ six==1.16.0 # fs # fs-s3fs # python-dateutil -sqlparse==0.5.0 +sqlparse==0.5.1 # via # -r requirements/base.txt # django @@ -218,24 +211,13 @@ text-unidecode==1.3 # via # -r requirements/base.txt # python-slugify -tomli==2.0.1 - # via - # coverage - # pyproject-api - # pytest - # tox tox==4.16.0 # via -r requirements/test.in types-python-dateutil==2.9.0.20240316 # via # -r requirements/base.txt # arrow -typing-extensions==4.12.2 - # via - # -r requirements/base.txt - # asgiref - # rich -urllib3==1.26.19 +urllib3==2.2.2 # via # -r requirements/base.txt # botocore @@ -250,7 +232,7 @@ webob==1.8.7 # via # -r requirements/base.txt # xblock -xblock[django]==4.0.1 +xblock[django]==5.0.0 # via # -r requirements/base.txt # acid-xblock diff --git a/setup.py b/setup.py index 6424291c..748ce869 100644 --- a/setup.py +++ b/setup.py @@ -127,7 +127,6 @@ def get_version(*file_paths): 'License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)', 'Natural Language :: English', 'Programming Language :: Python :: 3', - 'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.11', 'Programming Language :: Python :: 3.12', ], diff --git a/tox.ini b/tox.ini index a2f9466c..a0b254bb 100644 --- a/tox.ini +++ b/tox.ini @@ -1,5 +1,5 @@ [tox] -envlist = py{38,311,312}-django{42},quality +envlist = py{311,312}-django{42},quality [pycodestyle] exclude = .git,.tox,migrations