[x] Upgrade any packages that were being held back only because of missing support for one of the removed Python / Django versions
[x] Install pyupgrade-directories package and run pyup-dirs --py3-plus --py36-plus --py38-plus --recursive . in the repo root folder to clean up code that was only present to support older Python versions. You may want to run each of the --py* options in a separate PR if they make a lot of changes.
[x] Fix any deprecation warnings related to Django 3.0 or 3.1 that occur when the tests are run with Django 2.2
[x] Fix any remaining Django deprecation warnings or test failures in all the test configurations. But don’t fix deprecation warnings from the Django 3.2 tests yet, fixes for them are likely to break compatibility with Django 2.2 which we still need for now.
[x] If any of the new test configurations were allowed to fail when added, update the configuration to no longer allow them to do so.
[x] Update the Trove classifiers in any setup.py, setup.cfg, or pyproject.toml files to reflect the Python and Django versions currently being tested
[ ] 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.
[ ] If the repository is an IDA, go ahead and update it to deploy on Django 3.2 once all of the new test configurations are passing cleanly.
edX has published a guide for upgrading repos to django 3.2: https://openedx.atlassian.net/wiki/spaces/AC/pages/1704591765/Django+3.2+Upgrade+Steps+to+Upgrade+a+Repository
acceptance criteria
Django 3.2 migration checklist