From 3cd72108607ad7952afcabe46c59d0a27b33d826 Mon Sep 17 00:00:00 2001 From: Feanil Patel Date: Sat, 7 Mar 2026 19:31:27 -0500 Subject: [PATCH 1/3] chore: drop Python 3.11 support Remove Python 3.11 from CI matrix, tox envlist, setup.py classifiers, .readthedocs.yaml, pypi-publish.yml, and docs. Update conditional coverage step to use 3.12. Part of the broader effort to drop 3.11 across openedx repos: https://github.com/openedx/public-engineering/issues/499 Co-Authored-By: Claude Sonnet 4.6 --- .github/workflows/ci.yml | 4 ++-- .github/workflows/pypi-publish.yml | 2 +- .readthedocs.yaml | 2 +- README.rst | 2 +- docs/xblock-tutorial/getting_started/prereqs.rst | 6 +++--- setup.py | 1 - tox.ini | 4 ++-- 7 files changed, 10 insertions(+), 11 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ac6ede200..98135dd03 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -14,7 +14,7 @@ jobs: strategy: fail-fast: false matrix: - python-version: ['3.11', '3.12'] + python-version: ['3.12'] toxenv: [quality, django42, django52] steps: @@ -34,7 +34,7 @@ jobs: run: tox -e ${{ matrix.toxenv }} - name: Run Coverage - if: matrix.python-version == '3.11' && matrix.toxenv == 'django42' + if: matrix.python-version == '3.12' && matrix.toxenv == 'django42' uses: codecov/codecov-action@v5 with: flags: unittests diff --git a/.github/workflows/pypi-publish.yml b/.github/workflows/pypi-publish.yml index 5ac37b74d..5169bdd88 100644 --- a/.github/workflows/pypi-publish.yml +++ b/.github/workflows/pypi-publish.yml @@ -15,7 +15,7 @@ jobs: - name: setup python uses: actions/setup-python@v6 with: - python-version: 3.11 + python-version: 3.12 - name: Install pip run: pip install wheel setuptools diff --git a/.readthedocs.yaml b/.readthedocs.yaml index f3284985c..a16d43b76 100644 --- a/.readthedocs.yaml +++ b/.readthedocs.yaml @@ -19,7 +19,7 @@ formats: build: os: "ubuntu-lts-latest" tools: - python: "3.11" + python: "3.12" # Optionally set the version of Python and requirements required to build your docs python: diff --git a/README.rst b/README.rst index 11c2742b1..752b36fcb 100644 --- a/README.rst +++ b/README.rst @@ -50,7 +50,7 @@ the same name as the repo and activate it: .. code-block:: bash cd XBlock - mkvirtualenv -p python3.11 XBlock + mkvirtualenv -p python3.12 XBlock Every time you develop something in this repo --------------------------------------------- diff --git a/docs/xblock-tutorial/getting_started/prereqs.rst b/docs/xblock-tutorial/getting_started/prereqs.rst index 01a564563..e294f4257 100644 --- a/docs/xblock-tutorial/getting_started/prereqs.rst +++ b/docs/xblock-tutorial/getting_started/prereqs.rst @@ -12,11 +12,11 @@ To build an XBlock, you must have the following tools on your computer. *********** -Python 3.11 +Python 3.12 *********** To run the a virtual environment and the XBlock SDK, and to build an XBlock, -you must have Python 3.11 installed on your computer. +you must have Python 3.12 installed on your computer. `Download Python`_ for your operating system and follow the installation instructions. @@ -48,7 +48,7 @@ applications you might need. The instructions and examples in this tutorial use `VirtualEnv`_ and `VirtualEnvWrapper`_ to build XBlocks. You can also use `PyEnv`_. -After you have installed Python 3.11, follow the `VirtualEnv Installation`_ +After you have installed Python 3.12, follow the `VirtualEnv Installation`_ instructions. For information on creating the virtual environment for your XBlock, see diff --git a/setup.py b/setup.py index 8260aa7bf..acb71f85b 100755 --- a/setup.py +++ b/setup.py @@ -75,7 +75,6 @@ def get_version(*file_paths): 'License :: OSI Approved :: Apache Software License', 'Natural Language :: English', "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", ] ) diff --git a/tox.ini b/tox.ini index 9db82b407..1139e7ff0 100644 --- a/tox.ini +++ b/tox.ini @@ -1,5 +1,5 @@ [tox] -envlist = py{311,312}-django{42,52}, quality, docs +envlist = py312-django{42,52}, quality, docs [pytest] DJANGO_SETTINGS_MODULE = xblock.test.settings @@ -23,7 +23,7 @@ allowlist_externals = [testenv:docs] basepython = - python3.11 + python3.12 changedir = {toxinidir}/docs deps = From 035d6dc8689bad380e6337c2cb986bfbeade36e9 Mon Sep 17 00:00:00 2001 From: Feanil Patel Date: Sat, 7 Mar 2026 19:32:53 -0500 Subject: [PATCH 2/3] chore: regenerate requirements with Python 3.12 Co-Authored-By: Claude Sonnet 4.6 --- requirements/base.txt | 2 +- requirements/ci.txt | 2 +- requirements/dev.txt | 2 +- requirements/django.txt | 2 +- requirements/doc.txt | 4 ++-- requirements/pip-tools.txt | 2 +- requirements/pip.txt | 2 +- requirements/test.txt | 2 +- 8 files changed, 9 insertions(+), 9 deletions(-) diff --git a/requirements/base.txt b/requirements/base.txt index f6728e2dd..2160a15b1 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -1,5 +1,5 @@ # -# This file is autogenerated by pip-compile with Python 3.11 +# This file is autogenerated by pip-compile with Python 3.12 # by the following command: # # make upgrade diff --git a/requirements/ci.txt b/requirements/ci.txt index a4bba6958..18759072a 100644 --- a/requirements/ci.txt +++ b/requirements/ci.txt @@ -1,5 +1,5 @@ # -# This file is autogenerated by pip-compile with Python 3.11 +# This file is autogenerated by pip-compile with Python 3.12 # by the following command: # # make upgrade diff --git a/requirements/dev.txt b/requirements/dev.txt index 867bfe940..d9a046e00 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -1,5 +1,5 @@ # -# This file is autogenerated by pip-compile with Python 3.11 +# This file is autogenerated by pip-compile with Python 3.12 # by the following command: # # make upgrade diff --git a/requirements/django.txt b/requirements/django.txt index bd67838a6..ca280012f 100644 --- a/requirements/django.txt +++ b/requirements/django.txt @@ -1,5 +1,5 @@ # -# This file is autogenerated by pip-compile with Python 3.11 +# This file is autogenerated by pip-compile with Python 3.12 # by the following command: # # make upgrade diff --git a/requirements/doc.txt b/requirements/doc.txt index 87ee85ae6..5eb406e4c 100644 --- a/requirements/doc.txt +++ b/requirements/doc.txt @@ -1,5 +1,5 @@ # -# This file is autogenerated by pip-compile with Python 3.11 +# This file is autogenerated by pip-compile with Python 3.12 # by the following command: # # make upgrade @@ -128,7 +128,7 @@ snowballstemmer==3.0.1 # via sphinx soupsieve==2.8.3 # via beautifulsoup4 -sphinx==9.0.4 +sphinx==9.1.0 # via # -r requirements/doc.in # pydata-sphinx-theme diff --git a/requirements/pip-tools.txt b/requirements/pip-tools.txt index c952cd2af..d89516b82 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.11 +# This file is autogenerated by pip-compile with Python 3.12 # by the following command: # # make upgrade diff --git a/requirements/pip.txt b/requirements/pip.txt index 35dcee6b1..084d708ec 100644 --- a/requirements/pip.txt +++ b/requirements/pip.txt @@ -1,5 +1,5 @@ # -# This file is autogenerated by pip-compile with Python 3.11 +# This file is autogenerated by pip-compile with Python 3.12 # by the following command: # # make upgrade diff --git a/requirements/test.txt b/requirements/test.txt index 883a03c17..216bd115e 100644 --- a/requirements/test.txt +++ b/requirements/test.txt @@ -1,5 +1,5 @@ # -# This file is autogenerated by pip-compile with Python 3.11 +# This file is autogenerated by pip-compile with Python 3.12 # by the following command: # # make upgrade From 9f25990bc708e25edebf2ed8489dd720d36101af Mon Sep 17 00:00:00 2001 From: Feanil Patel Date: Sat, 7 Mar 2026 19:33:02 -0500 Subject: [PATCH 3/3] chore: bump version to 6.0.0 Co-Authored-By: Claude Sonnet 4.6 --- xblock/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xblock/__init__.py b/xblock/__init__.py index 779a96e05..8f666bd02 100644 --- a/xblock/__init__.py +++ b/xblock/__init__.py @@ -2,4 +2,4 @@ XBlock Courseware Components """ -__version__ = '5.3.0' +__version__ = '6.0.0'