F21 System Wide Change: Python 3.4

Jaroslav Reznik jreznik at redhat.com
Thu Nov 7 12:17:22 UTC 2013

= Proposed System Wide Change: Python 3.4 =

Change owner(s): Slavek Kabrda <bkabrda at redhat.com>

Update the Python 3 stack in Fedora from Python 3.3 to Python 3.4. 

== Detailed description ==
Python 3.4 adds numerous features and optimizations. See the upstream notes at 
http://www.python.org/dev/peps/pep-0429/#features-for-3-4 and 

== Scope ==
Compare with the Python 3.3 feature page [1].

We need to wait for Python 3.4 to reach feature freeze (planned for 3.4.0 beta 
1: November 24, 2013), so that the bytecode format for .pyc files is frozen, 
together with the ABI for extension modules.

At that point we can rebase python3 to the latest release candidate of that 
code. We would then need to rebuild all python 3 packages. See 

For bonus points, we ought to tell "file" and "rpmlint" about the new bytecode 
format for .pyc files.

Note that the suffix of some files should change, and this may require slight 
packaging tweaks in the various packages that ship Python 3 code:

* bytecode files changing from .cpython-33.pyc (and .cpython-33.pyo) to 
.cpython-34.pyc (and .cpython-34.pyo)
* extension modules changing from .cpython-33m.so to .cpython-34m.so and 
.cpython-33dm.so to .cpython-34dm.so 

Notes about porting from Python 3.3 can be found at 

Proposal owners: This change is isolated to Python 3 stack, which is not yet 
crucial for Fedora. Still, as the time of moving Fedora to Python 3 is 
hopefully approaching, we need to do this very cautiously. I will prepare 
Python 3.4 prerelease RPMs in a private repo and will do a test rebuild of all 
Python 3 dependent packages, filing bugs/sending patches to upstreams. This 
will give us a good notion of how drastic this change will be and whether or 
not we really want to undergo it. Overall, the change should have roughly this 

* After change is accepted: Start building Python 3.4 prereleases in a private 
repo, continuously upgrading with latest upstream prerelease versions.
* November 24, 2013 (3.4.0 beta 1: feature freeze): Start rebuilding Python 3 
dependent packages in the repo.
* February 23, 2014 (3.4.0 final) If everything goes well (meaning that all 
essential packages in Fedora build and work with Python 3.4) up to this point, 
merge into F21. 

Other developers: I'll gladly accept any help with 
rebuilding/porting/patching/bug reporting of dependent packages as well as 
suggestions for Python 3.4 packaging itself. When we're sure that we really 
want to do the transition, it'd be great if package owners rebuilt their 
packages themselves.

Release engineering: Nothing.

Policies and guidelines: None. 

[1] https://fedoraproject.org/wiki/Features/Python_3.3
devel-announce mailing list
devel-announce at lists.fedoraproject.org

More information about the devel mailing list