Django 3.2 Upgrade: Post Django 3 removal Work

After the Django 3 upgrade, we want to make sure that we remove old environment setup from CI and tox files and identify and utilize any new Django features that we should be using.

  1. Remove any versions of Python earlier than 3.7 from tox.ini and GitHub Actions workflows (there are scripts in https://github.com/edx/repo-tools/tree/master/edx_repo_tools/codemods/django3 that can do this automatically in most cases)

  2. Upgrade any packages that were being held back only because of missing support for one of the removed Python versions

  3. Remove test configurations for Django 3.0, 3.1 from both tox.ini and the GitHub Actions CI workflow.

  4. Update the Trove classifiers in any setup.py, setup.cfg, or pyproject.toml files to reflect the Python and Django versions currently being tested

  5. Install pyupgrade-directories package and run pyup-dirs --py37-plus --recursive . in the repo root folder to clean up code that was only present to support older Python versions.

  6. Install Django-Codemod and run djcodemod run --removed-in 3.0 --removed-in 3.1 --removed-in 4.0 . to fix deprecations related to Django 3.1, Django 3.2

  7. Fix any remaining warnings related to Removed in Django4.0 that occur while running tests on Django3.2

  8. For packages already on PyPI, go ahead and make a new release so the Trove classifiers are updated there also. This should be a major version bump if support for older Python releases was dropped.