F23 System Wide Change: Python 3 as Default

Jan Kurik jkurik at redhat.com
Wed Jun 10 12:50:14 UTC 2015


= Proposed System Wide Change: Python 3 as Default =
https://fedoraproject.org/wiki/Changes/Python_3_as_Default

Change owner(s):
* Slavek Kabrda <bkabrda at redhat dot com>
* Matej Stuchlik <mstuchli at redhat dot com>
* Miro Hroncok <mhroncok at redhat dot com>
* Thomas Spura <tomspur at fedoraproject dot org>
* Robert Kuska <rkuska at redhat dot com>

Up until now, Fedora has used Python 2 as the default Python implementation. This change proposes switching to Python 3. The details of the term "switching" are explained thoroughly in the Scope section. 

== Detailed Description ==
Python 3 is the next generation of Python programming language. It is currently mature and stable, since it has been under active development for five years - version 3.0 was released in December 2008, current latest stable version is 3.4.3 released in February 2015. The main reason to switch to Python 3 as the default implementation is that Python 2 is in maintenance mode, thus only bugfixes and security fixes are accepted upstream. Further reasons are mentioned in the Benefit to Fedora section. For this Change to be carried out successfully, it is necessary that the key packages in the Fedora software stack be ported to Python 3. These are parts of the minimal buildroot, the default package manager, programs present on the LiveCD etc. 

== Scope ==
The main goal is switching to Python 3 as a default, in which state:
    * DNF is the default package manager instead of Yum, which only works with Python 2
    * Python 3 is the only Python implementation in the minimal buildroot (already done since F22)
    * Python 3 is the only Python implementation on the Workstation LiveDVD
    * Python 3 is the only Python implementation in minimal cloud image
    * Python 3 is the only Python implementation in Atomic host
    * It'd also be nice to have Python 3 as the only implementation on the Server LiveDVD, but it's not likely 

Changes in packaging:
    * Change definition of default python interpreter to python3.
    * Change unversioned python macros to python3 (Possibly do that change in upstream rpm)
    * All applications that use only a single python version MUST use python3 (unless they have a good reason not to do so). 

Fate of /usr/bin/python:
    * /usr/bin/python will still point to Python2 version of interpreter as suggested in PEP0394.
    * There will be no /usr/bin/python on LiveDVD as python3 will became the only python interpreter shipped by default.
    * Python (python2 version of the interpreter) package will be still available (via dnf install) and will provide /usr/bin/python. 

Work in Fedora 23 Timeframe:
    * Proposal owners:
        - Continue the work from F21 and F22 timeframe
        - Modify comps accordingly
        - Apply the changes to Python packaging guidelines 
    * Other developers:
        Introduce python3- subpackages where appropriate, build against Python 3 if the package supports it 
    * Release engineering:
        Nothing 
    * Policies and guidelines:
        TODO: changes in packaging 


-- 
Jan Kuřík
_______________________________________________
devel-announce mailing list
devel-announce at lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel-announce


More information about the devel mailing list