Django 2.2 Upgrade

edX Services

Service NameOwnerDjango VersionPython VersionDependencies UpdatedCurrent Blocker
edx-platformarch-bom2.23.592/98
ecommerceengagement-revenue2.23.534/42
discoveryengagement-always-available2.23.541/50

credentials

programs-masters

2.23.524/31

registrar

programs-masters2.23.624/26
xqueueplatform-tnl2.23.53/3
enterprise-catalogenterprise-titans2.23.523/27
portal-designerenterprise-titans2.23.520/24

notes

devops?2.23.510/14https://openedx.atlassian.net/servicedesk/customer/portal/15/DOS-731
insightsplatform-data-de2.23.517/23
analytics-apiplatform-data-de2.23.516/19
openedxstatsplatform-tnl2.23.59/10
license-managerenterprise-titans?2.23.6

peopleenterprise-aperture?1.113.6

Explanation

  • Dependencies Updated - How many of the service's dependencies which use Django have been upgraded to versions specifically tested against Django 2.2?  Some packages which haven't been tested will just work, but others may not.
  • Current Blocker - Which ticket (if any) is most important to resolve in order to make further progress on upgrading this service to Django 2.2?

Already done for all services

  • "make upgrade" Works - A repository should comply with OEP-18, be able to run "make upgrade" without errors, and have done so to update dependencies in the past week before we start trying to upgrade specific outdated packages.
  • Uses pytest - pytest does a much better job of capturing and summarizing Django-produced deprecation warnings than nose or other test runners.  We need it in order to be confident we've identified all the deprecation warnings that need to be addressed before upgrading.
  • Uses tox - We use tox to test with newer versions of Django before changing the version used in production.  We should use tox in all of our Python repositories to facilitate upgrades of Python, Django, Django REST Framework, Celery, etc.
  • Code Mods Applied - We currently have 3 scripts to automate fixes of deprecated Django code usage, have they been run in this repository yet?
  • Uses MIDDLEWARE Setting - Support for the legacy MIDDLEWARE_CLASSES setting was dropped in Django 2.0, we need to use the new MIDDLEWARE setting and code updated to work with it instead.
  • Deprecation Warnings Fixed - Have all Django deprecation warnings for features removed by Django 2.2 been resolved?  Check the warnings produced when testing against 1.11, 2.0, and 2.1.

Backwards Incompatibilites and Deprecations


Child Pages