Open edX runs largely on Python 2.7.  Python is a great language that lets us quickly develop new features, and enables contributions from a large community.  But Python 2 is coming to its end of life.  There will be no more bug fixes to Python 2 after January 1, 2020. We have a large task ahead of us.  Python 3 is not backward-compatible with Python 2, so we have to convert code to run on it.

Open edX has nearly a million lines of Python code, and they all have to run on Python 3 by the end of the year. Much of the work is not hard, it’s just extensive, and can’t all be done automatically.  To help organize the effort, we’ve created the Incremental Improvements JIRA board: INCR.

Jeremy Bowman wrote about the INCR project in depth back in October, but briefly: these are small chunks of work, each of which will move us closer to full Python 3 compatibility.  They are designed to be achievable and uncontroversial, so that contributing the work is made easier. In fact, some people have found INCR tickets to be good ways to on-board new Open edX developers.  Felipe Montoya at eduNEXT has been an early adopter of the INCR initiative.  He says,

At eduNEXT we have used INCR projects to introduce our new team members to platform development and open source contributions. We have found it to be the most straightforward and easy way to get someone new to contribute.

If you’d like to help with Open edX development start with Contributing to Open edX, which explains how to set up a development environment and find work to do. For the move to Python 3, take a look at the INCR tickets.  The JIRA board is a little confusing, but we can help you find something to do. If you have any questions, you can find us on the mailing lists, or the #python-3 channel in Slack: https://open.edx.org/community/connect/.