= Proposed System Wide Change: Python 3 as Default =
* 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
* 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
* 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
* 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:
* Policies and guidelines:
TODO: changes in packaging