Status
Page properties | ||||
---|---|---|---|---|
|
Motivation
Having to support Python 2 and 3 concurrently causes some maintenance and development burden (which is lessened a bit by six
and backports
modules), and significant extra test time on Travis.
Python 2 is reaching End of Life in January 1, 2020 and will receive zero updates, even security ones past this date.
Django dropped support for Python 2 with their 2.0 release in December 2017, and this proposal has us follow suit. Airflow 2.0 is already a fairly major breaking change, so this could be an opportune time to do this.
Considerations
Many people are still on Python 2.7, and we will need to consider how we announce this change, and how long we give people to migrate their installs.
We have at least one hooks that is Python2 only - AIRFLOW-2697 (HDFS specifically that uses a Python2 only module, snakebite).
RHEL may not ship an "officially" packaged version of Python 3 (it's hard/impossible? to find out if you aren't already a RedHat customer. An RPM of Python3 is available via EPEL, but that is not an "official" package from RedHat Inc.). My answer to this problem is to encourage companies to pay us to continue supporting Airflow on Python 2.7