Hello,
I like to drop Python 2 support from current master. For over two years,
the FreeIPA development team has worked hard on porting FreeIPA to
Python 3. Since release 4.6, FreeIPA has been using Python 3 by default
on Fedora. Now it's time to make the final step and remove Python 2
compatibility completely.
Benefits & Reasons
==================
Python 2.7 will reach its extended support lifetime by 2020-01-01. After
2020, the upstream developers will no longer provide any fixes or
security patches.
Python 2 support has become a burden for the FreeIPA team. With removal
of Python 2 support, FreeIPA can finally start to use new Python 3
language features like f-strings and type annotations, or improved
standard library modules like configparser. Removal of Python 2 support
would speed up development and testing as well as allow us to clean the
code base. The code is littered with special casing for Python 2 / 3
differences.
Dependency on Python 2 is also blocking improvement like new Python
installer for 389-DS, see
https://github.com/freeipa/freeipa/pull/1563.
The lib389 Python package is only available for Python 3.
The Fedora Python maintenance team is working on mass removal of Python
2 packages, see
https://fedoraproject.org/wiki/Changes/Mass_Python_2_Package_Removal .
FreeIPA depends on lots of Python packages. Dropping Python 2 support
will allow us to remove additional Python 2 dependencies, too.
Time line
=========
FreeIPA 4.8 will be the first release that requires at least Python 3.6.
The version is going to be released either end of 2018 or early 2019.
4.8 is scheduled to land in Fedora 30 (GA 2019-05-07).
Scope
=====
The server, client and all Python libraries of FreeIPA 4.8 will require
Python 3.6 or newer.
FreeIPA 4.7 and 4.6 will continue to support Python 2.
Affected packages / distributions
=================================
Fedora 30 will no longer contain the following packages:
* python2-ipalib
* python2-ipaclient
* python2-ipaserver
* python2-ipatests
This change affects Ipsilon Project and Fleet Commander packages:
* python2-ipa-desktop-profile-client
* fleet-commander-admin
* ipsilon-tools-ipa
Further more, Debian and Ubuntu need to use Python 3.6 or newer instead
of Python 2.7. As far as I know, Samba is holding back FreeIPA on these
distributions.
Patrick (Ipsilon), Oliver (Fleet Commander), and Timo (Debian/Ubuntu)
have been working on Python 3.
Pull request
============
https://github.com/freeipa/freeipa/pull/2020/files
Regards,
Christian
--
Christian Heimes
Senior Software Engineer, Identity Management and Platform Security
Red Hat GmbH,
http://www.de.redhat.com/, Registered seat: Grasbrunn,
Commercial register: Amtsgericht Muenchen, HRB 153243,
Managing Directors: Charles Cachera, Michael Cunningham, Michael
O'Neill, Eric Shander