Django 3.2 Upgrade: How the Community Can Help

Much of the work to implement major Django upgrades has been historically done by edX, but this is become less sustainable over time as the size of Open edX (and the share of it maintained by other organizations) increases. There are two specific things that we’d like help with from the broader Open edX community for the Django 3.2 upgrade, which are being tracked at the Django 3.2 Upgrade GitHub Project board:

  • Help update or replace external dependencies which don’t yet support Django 3.2. Tagged with the “outdated dependency” label, these issues are to either help upstream maintainers release versions of their packages which correctly test and work with Django 3.2, or figure out what to do if the maintainer is unresponsive. There is a runbook on how to handle such cases at https://openedx.atlassian.net/wiki/spaces/AC/pages/3036972032, linked from each of these tickets. What we’re looking for here is either a new upstream release that we can upgrade to, or PRs to change Open edX to replace or remove the dependency.

  • For Open edX packages not maintained by edX, we would like the maintainers to follow the steps in https://openedx.atlassian.net/wiki/spaces/AC/pages/1704591765 to make a new release that supports Django 3.2 so we can start using that in the Open edX services.

We expect the workflow to be something like the following, although we may make some improvements to the process as we go:

  1. We have created an issue for each particular task in https://github.com/edx/upgrades/issues and tagged them with a yellow “outdated dependency” label. If you think of an appropriate task that hasn’t been ticketed yet, please go ahead and create a ticket for it.

  2. When you’re ready to start actively working on a task, please add a comment to that effect. Someone at edX will then assign the ticket to you and update the ticket status on the board.

  3. If a usable new upstream release is created for a dependency, please mention it in the ticket so the status can be updated. If you create one or more PRs for review, please mention those in the ticket as well.

  4. Open edX services will upgrade to the newly released dependency versions during routine dependency upgrades and active work on updating the services to work with Django 3.2.

  5. We aim to complete this work by the end of September 2021.

  6. If you have any questions, please raise them in the Open edX #external-openedx-django-3-2 Slack channel.

  7. You can see current status of dependencies work in this diagram.