From Fedora Project Wiki

No more automagic Python bytecompilation (phase 2)


See Changes/No_more_automagic_Python_bytecompilation. Now we are changing the default to be %global _python_bytecompile_extra 0.


Current status

Detailed Description

See the Detailed Description of the previous Change Proposal.

We will now set %_python_bytecompile_extra to 0 by default.

All packages that ship Python 3 bytecode outside of Python 3 directories should be preferably converted to use %py_byte_compile, but if they are not, it's fine.

We'll check all pyc/pyo files shipped by packages. We'll check if those are explicitly compiled using %py_byte_compile. If not, we mass push %global _python_bytecompile_extra 1 to the package specs to make them work. It's up the package maintainers to adjust the package to the new style (or keep the line forever).

Benefit to Fedora

See Changes/No_more_automagic_Python_bytecompilation#Benefit_to_Fedora.


  • Proposal owners: Change the default, slightly change the guidelines, get the list of packages, push the change into them.
  • Other developers: Maintainers of python3 packages are encouraged to change their packages to use explicit %py_byte_compile (not a System Wide Change, they don't have to do anything).
  • Release engineering: #7680 (a check of an impact with Release Engineering is needed)
  • Policies and guidelines: will be changed as described in description
  • Trademark approval: not needed

Upgrade/compatibility impact

None expected.

How To Test


User Experience

The users of this change are packagers. The new behavior should make byte-compilation more obvious, explicit, and discoverable. Users of Fedora should not feel this (except if this change uncovers a packaging bug).

Contingency Plan

  • Contingency mechanism: we'll finish the change later (not a System Wide Change)
  • Contingency deadline: none (not a System Wide Change)
  • Blocks release? no (not a System Wide Change)
  • Blocks product? no


The guidelines will be the documentation.

Release Notes

This change does not deserve Release Notes, it is not user facing.