Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Changed the status to Accepted and added the link to JIRA


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 (smile)