From 3a46f0f14baa5adfc20745a89963642a60c5eb0e Mon Sep 17 00:00:00 2001
From: edX requirements bot <testeng+edx-requirements-bot@edx.org>
Date: Fri, 23 Feb 2024 07:37:31 -0500
Subject: [PATCH] feat: add python 3.11 support

---
 .github/workflows/ci.yml                         |  8 ++++++--
 CHANGELOG.rst                                    |  4 ++++
 .../{{cookiecutter.package_name}}.py             |  2 +-
 .../requirements/pip-tools.txt                   | 16 +++++++++-------
 requirements/base.txt                            | 10 +++++-----
 requirements/ci.txt                              |  8 ++++----
 requirements/constraints.txt                     |  5 ++++-
 requirements/pip-tools.txt                       | 16 +++++++++-------
 tox.ini                                          |  2 +-
 9 files changed, 43 insertions(+), 28 deletions(-)

diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index d081261e..72e123f8 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -21,7 +21,9 @@ jobs:
     strategy:
       matrix:
         os: [ubuntu-20.04]
-        python-version: ['3.8']
+        python-version:
+        - '3.8'
+        - '3.11'
         toxenv: [py, quality]
 
     steps:
@@ -50,7 +52,9 @@ jobs:
     strategy:
       matrix:
         os: [ubuntu-20.04]
-        python-version: ['3.8']
+        python-version:
+        - '3.8'
+        - '3.11'
 
     steps:
     - uses: actions/checkout@v4
diff --git a/CHANGELOG.rst b/CHANGELOG.rst
index ad3ab370..87066f2f 100644
--- a/CHANGELOG.rst
+++ b/CHANGELOG.rst
@@ -8,6 +8,10 @@ Change Log
 2023-12-18
 **********
 
+Added
+=======
+- Added python3.11 support. Removed django32 support.
+
 Changed
 =======
 - Add selfcheck target to Makefile
diff --git a/cookiecutter-xblock/{{cookiecutter.repo_name}}/{{cookiecutter.package_name}}/{{cookiecutter.package_name}}.py b/cookiecutter-xblock/{{cookiecutter.repo_name}}/{{cookiecutter.package_name}}/{{cookiecutter.package_name}}.py
index edba3216..d569a372 100644
--- a/cookiecutter-xblock/{{cookiecutter.repo_name}}/{{cookiecutter.package_name}}/{{cookiecutter.package_name}}.py
+++ b/cookiecutter-xblock/{{cookiecutter.repo_name}}/{{cookiecutter.package_name}}/{{cookiecutter.package_name}}.py
@@ -2,9 +2,9 @@
 
 import pkg_resources
 from django.utils import translation
+from web_fragments.fragment import Fragment
 from xblock.core import XBlock
 from xblock.fields import Integer, Scope
-from xblock.fragment import Fragment
 from xblockutils.resources import ResourceLoader
 
 
diff --git a/python-template/{{cookiecutter.placeholder_repo_name}}/requirements/pip-tools.txt b/python-template/{{cookiecutter.placeholder_repo_name}}/requirements/pip-tools.txt
index 74eb4db6..fe1d6475 100644
--- a/python-template/{{cookiecutter.placeholder_repo_name}}/requirements/pip-tools.txt
+++ b/python-template/{{cookiecutter.placeholder_repo_name}}/requirements/pip-tools.txt
@@ -4,15 +4,17 @@
 #
 #    make upgrade
 #
-build==1.0.3
+build==1.1.1
     # via pip-tools
 click==8.1.7
     # via pip-tools
-importlib-metadata==7.0.1
-    # via build
-packaging==23.2
+importlib-metadata==6.11.0
+    # via
+    #   -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt
+    #   build
+packaging==24.0
     # via build
-pip-tools==7.4.0
+pip-tools==7.4.1
     # via -r python-template/{{cookiecutter.placeholder_repo_name}}/requirements/pip-tools.in
 pyproject-hooks==1.0.0
     # via
@@ -23,9 +25,9 @@ tomli==2.0.1
     #   build
     #   pip-tools
     #   pyproject-hooks
-wheel==0.42.0
+wheel==0.43.0
     # via pip-tools
-zipp==3.17.0
+zipp==3.18.1
     # via importlib-metadata
 
 # The following packages are considered to be unsafe in a requirements file:
diff --git a/requirements/base.txt b/requirements/base.txt
index 5d8e2419..a1c6ec97 100644
--- a/requirements/base.txt
+++ b/requirements/base.txt
@@ -26,7 +26,7 @@ click==8.1.7
     #   edx-lint
 click-log==0.4.0
     # via edx-lint
-code-annotations==1.6.0
+code-annotations==1.7.0
     # via edx-lint
 cookiecutter==2.6.0
     # via -r requirements/base.in
@@ -70,7 +70,7 @@ pylint-plugin-utils==0.8.2
     # via
     #   pylint-celery
     #   pylint-django
-python-dateutil==2.8.2
+python-dateutil==2.9.0.post0
     # via arrow
 python-slugify==8.0.4
     # via
@@ -82,7 +82,7 @@ pyyaml==6.0.1
     #   cookiecutter
 requests==2.31.0
     # via cookiecutter
-rich==13.7.0
+rich==13.7.1
     # via cookiecutter
 six==1.16.0
     # via
@@ -94,9 +94,9 @@ text-unidecode==1.3
     # via python-slugify
 tomli==2.0.1
     # via pylint
-tomlkit==0.12.3
+tomlkit==0.12.4
     # via pylint
-types-python-dateutil==2.8.19.20240106
+types-python-dateutil==2.9.0.20240316
     # via arrow
 typing-extensions==4.10.0
     # via
diff --git a/requirements/ci.txt b/requirements/ci.txt
index e7a87609..c085cbcf 100644
--- a/requirements/ci.txt
+++ b/requirements/ci.txt
@@ -4,7 +4,7 @@
 #
 #    make upgrade
 #
-cachetools==5.3.2
+cachetools==5.3.3
     # via tox
 chardet==5.2.0
     # via tox
@@ -12,11 +12,11 @@ colorama==0.4.6
     # via tox
 distlib==0.3.8
     # via virtualenv
-filelock==3.13.1
+filelock==3.13.3
     # via
     #   tox
     #   virtualenv
-packaging==23.2
+packaging==24.0
     # via
     #   pyproject-api
     #   tox
@@ -32,7 +32,7 @@ tomli==2.0.1
     # via
     #   pyproject-api
     #   tox
-tox==4.13.0
+tox==4.14.2
     # via -r requirements/ci.in
 virtualenv==20.25.1
     # via tox
diff --git a/requirements/constraints.txt b/requirements/constraints.txt
index 4077def5..cb0a1884 100644
--- a/requirements/constraints.txt
+++ b/requirements/constraints.txt
@@ -10,7 +10,7 @@
 
 # Common constraints for edx repos
 -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt
- 
+
 # doc8==1.0.0 requires docutils>=0.19 but sphinx_rtd_theme latest version requires <0.18
 doc8<1.0.0
 
@@ -18,3 +18,6 @@ doc8<1.0.0
 pyobjc-core; sys_platform == 'darwin'
 pyobjc-framework-cocoa; sys_platform == 'darwin'
 pyobjc-framework-fsevents; sys_platform == 'darwin'
+
+# 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/pip-tools.txt b/requirements/pip-tools.txt
index 44c48d99..aad9d382 100644
--- a/requirements/pip-tools.txt
+++ b/requirements/pip-tools.txt
@@ -4,15 +4,17 @@
 #
 #    make upgrade
 #
-build==1.0.3
+build==1.1.1
     # via pip-tools
 click==8.1.7
     # via pip-tools
-importlib-metadata==7.0.1
-    # via build
-packaging==23.2
+importlib-metadata==6.11.0
+    # via
+    #   -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt
+    #   build
+packaging==24.0
     # via build
-pip-tools==7.4.0
+pip-tools==7.4.1
     # via -r requirements/pip-tools.in
 pyproject-hooks==1.0.0
     # via
@@ -23,9 +25,9 @@ tomli==2.0.1
     #   build
     #   pip-tools
     #   pyproject-hooks
-wheel==0.42.0
+wheel==0.43.0
     # via pip-tools
-zipp==3.17.0
+zipp==3.18.1
     # via importlib-metadata
 
 # The following packages are considered to be unsafe in a requirements file:
diff --git a/tox.ini b/tox.ini
index ad609a21..dc96c43f 100644
--- a/tox.ini
+++ b/tox.ini
@@ -1,5 +1,5 @@
 [tox]
-envlist = py38
+envlist = py{38,311}
 skipsdist = true
 
 [isort]