$customHeader
Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 6 Next »

We want to make sure our code works with Django 3.2 (the newest LTS release) before support ends for Django 2.2 in April 2022. For each library and service which has already been updated to use Python 3.8 in production, we should do the following:

  1. Remove any versions of Python earlier than 3.8 from tox.ini, .travis.yml, and GitHub Actions workflows (this should be automated in https://github.com/edx/repo-tools/tree/master/django3_codemods/config_tools)

  2. If the repository is still using Travis CI, switch it to use GitHub Actions instead as outlined in How to migrate tests from TravisCI to Github Actions. Travis CI minutes now generally cost us money, so we shouldn’t add new test configurations to that service.

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

  4. Run pyupgrade --py3-plus --py36-plus --py38-plus 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.

  5. Fix any deprecation warnings related to Django 3.0 that occur when the tests are run with Django 2.2

  6. Add test configurations for Django 3.0, 3.1, and 3.2 to both tox.ini and the GitHub Actions CI workflow. If any of them fail, update the configuration to allow them to do so for now so the failures can be addressed in later PRs.

  7. 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.

  8. Update the Trove classifiers in setup.py to reflect the Python and Django versions currently being tested

  9. 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.

  10. 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.

These may be split into more than one PR; try to avoid changing more than about 20 files in one PR if practical.

  • No labels