Python 3.8 Upgrade
This upgrade is essentially complete! Many thanks to the Arbi-BOM team from Arbisoft, the team from eduNEXT that helped via a blended development project, and everyone else who helped make this happen.
All our non-deprecated services are now running Python 3.8 in production.
Python 3.5 support (and testing) has already been dropped in most of our repositories, and is currently being dropped from the rest.
Automated refactoring tools are being used to clean up old imports and code patterns that were only present to support old Python versions.
There are a handful of specialized Jenkins jobs that are still running Python 3.5, but those will also be updated to use 3.8 shortly.
What does this mean for most Open edX developers?
In most cases, you no longer need to worry about Python 3.5 compatibility in our code (as long as you’re using Koa or master). Feel free to use newer language features like f-strings, asyncio, dataclasses, importlib.resources, breakpoint(), the walrus operator, etc. An upcoming session of the Python Study Group will give an overview of many of these new features, but you can also read about them at https://docs.python.org/3.8/whatsnew/index.html .
While we may start testing with Python 3.9 in some places, we probably won't upgrade again until a newer yet-to-be-released Python version. The latest Ubuntu LTS release uses 3.8, 3.9 doesn't have many compelling new features, and 3.8 is supported until October 2024.
You might start hearing about work on the Django 3.2 upgrade. We’re well ahead of the curve on this one, since it hasn’t even been released yet (we’re mainly testing 3.0 and 3.1 compatibility so far).
edX Services
Service Name | Owner | Python Version in Prod | Current Blocker | Key Contact |
---|---|---|---|---|
arch-bom | 3.8 |
| @Awais Qureshi - coordination @Muhammad Arif (Deactivated) - development SRE for review | |
edx-platform: edx-sandbox environment (ie codejail) | platform-tnl | 3.8 |
| @Usama Sadiq |
engagement-revenue | 3.8 |
| ||
ecommerce-worker | engagement-revenue | 3.8 |
|
|
engagement-always-available | 3.8 |
| ||
programs-masters | 3.8 |
| ||
programs-masters | 3.8 |
| @Muhammad Arif (Deactivated) - development. Anyone - review. @Simon Chen - help test on stage | |
platform-tnl | 3.8 |
| @Marco Morales (Deactivated) | |
enterprise-titans | 3.8 |
| @Brandon Baker (Deactivated) - review @Muhammad Arif (Deactivated) - development. | |
programs-masters | 3.8 |
|
| |
SRE | 3.8 |
| @Muhammad Arif (Deactivated) - development. SRE @Fred Smith (Deactivated) , @Adam Blackwell (Deactivated) - review and deployment | |
platform-data-de | 3.8 |
| @Brian Beggs | |
platform-data-de | 3.8 |
| @Brian Beggs | |
platform-openedx | 3.8 |
|
| |
enterprise-titans | 3.8 |
| @Brandon Baker (Deactivated) - review @Muhammad Arif (Deactivated) - development | |
programs-microbachelors | 3.8 |
| @Matt Tuchfarber (Deactivated) - review @Muhammad Arif (Deactivated) - development | |
platform-tnl | 3.8 |
| @Kyle McCormick (Deactivated) | |
platform-tnl | 3.8 |
| @Usama Sadiq |
Jira Epics
https://openedx.atlassian.net/browse/ARCHBOM-1522
https://openedx.atlassian.net/browse/BOM-1521
Explanation
Current Blocker - Which ticket (if any) is currently most urgent to resolve in order to make further progress on upgrading this service to Python 3.8?