From Fedora Project Wiki
mNo edit summary
(Added section for Python 3 porting)
(96 intermediate revisions by 29 users not shown)
Line 5: Line 5:


== Python Special Interest Group ==
== Python Special Interest Group ==
A SIG for people who are interested in Python on Fedora. This includes
A SIG for people who are interested in Python on Fedora. This includes:
packaging and optimizing the various Python 2 and Python 3 [http://wiki.python.org/moin/implementation runtimes]
* packaging and optimizing the various Python 2 and Python 3 [[#Python_Runtimes|Python runtimes]]
([http://wiki.python.org/moin/CPython CPython], [http://www.jython.org/ Jython]), packaging libraries and applications, setting and improving [[Packaging:Python|standards for packaging them as RPMs]] and maintaining Python packages for Fedora.
* packaging Python libraries and applications
* setting and improving [[Packaging:Python|standards for packaging them as RPMs]]
* maintaining Python packages for Fedora


=== Contact Info ===
=== Contact Info ===


Mailing List: [[http://lists.fedoraproject.org/mailman/listinfo/python-devel python-devel]] <BR>
Mailing List: [https://lists.fedoraproject.org/archives/list/python-devel@lists.fedoraproject.org/ python-devel] <BR>
IRC: #fedora-python on irc.freenode.net <BR>
IRC: #fedora-python on irc.freenode.net <BR>


=== Members ===
=== Python SIG FAS group ===


[[User:Ivazquez| Ignacio Vazquez-Abrams]] <BR>
You can add [https://admin.fedoraproject.org/pkgdb/packager/group::python-sig/ group::python-sig] to your package so the core members of the python-sig get notified on each bug in your python program. This way it is possible to maintain all python packages with the group permissions, which will simplify general python cleanup changes.
[[TimLauridsen| Tim Lauridsen]] <BR>
 
[[PaulNasrat| Paul Nasrat]] <BR>
If there is interest and shown familiarity with our guidelines and processes (which usually manifests in maintaining at least 5 to 10 Python packages) you can apply for having access to a broader group of packages that is commonly maintained. If you choose to apply for this, please discuss it with a sponsor of the python-sig. (You can find a list of those [https://admin.fedoraproject.org/accounts/group/members/python-sig/*/sponsor in FAS].)
[[ToshioKuratomi| Toshio Kuratomi]] <BR>
 
[[TejasDinkar| Tejas Dinkar]] <BR>
The current list of packages maintained by the python-sig can be found at the [https://admin.fedoraproject.org/pkgdb/packager/group::python-sig/ package database].
[[AurelienBompard| Aurelien Bompard]] <BR>
 
[[JoseMatos| José Matos]] <BR>
[[SIGs/Python/Members_list|Members of Python SIG]] <BR>
[[MichelSalim| Michel Salim]] <BR>
[[AlexLancaster| Alex Lancaster]] <BR>
[[LukeMacken| Luke Macken]] <BR>
[[ChristosTrochalakis| Christos Trochalakis]] <BR>
[[FelixSchwarz| FelixSchwarz]] <BR>
[[DaveMalcolm| Dave Malcolm]]: interested in core Python runtimes and low-level implementation details <BR>
[[MartinBacovsky| Martin Bacovsky]] <BR>


=== Python packages awaiting review ===
=== Python packages awaiting review ===
* [https://bugzilla.redhat.com/buglist.cgi?query_format=advanced&short_desc=python&bug_status=NEW&bug_status=ASSIGNED&bug_status=MODIFIED&bug_status=ON_DEV&bug_status=ON_QA&bug_status=VERIFIED&bug_status=RELEASE_PENDING&bug_status=POST&short_desc_type=allwordssubstr&component=Package%20Review&product=Fedora List of most python packages awaiting review] - Bugzilla query for packages which have not passed review with "python" in the name or summary.


* [https://bugzilla.redhat.com/show_bug.cgi?id=575185 python-bunch] -- a dict class with attribute style lookup
=== Packaging Quickstart ===
* [https://bugzilla.redhat.com/show_bug.cgi?id=581913 python-simplegeneric] -- Simple generic functions (similar to Python's own len(), pickle.dump(), etc.)
* [https://bugzilla.redhat.com/show_bug.cgi?id=588941 pypy] - An alternate [http://pypy.org/ python interpreter written in a subset of python].  The interpreter has [http://morepypy.blogspot.com/2009/10/gc-improvements.html better memory] use than CPython and speed is closing in on Cpython.  The JIT'd version is faster than CPython in many [http://speed.pypy.org benchmarks].  It is growing the ability to [http://morepypy.blogspot.com/2010/04/using-cpython-extension-modules-with.html load CPython extension modules] in the near future (work presently done on a branch).


If you're just getting started with packaging python modules for Fedora, here's some hints to get you started:


=== Package requests ===
* The [[Packaging:Guidelines|Fedora Packaging Guidelines]] must be followed for any package.  The [[Packaging:Python|Python specific guidelines]] are a good starting point.
* [http://chandlerproject.org Chandler PIM]
* You can generate a spec template for your new python package like this: <pre>dnf install rpmdevtools && rpmdev-newspec -t python</pre> That will generate a spec file template that is a good starting point to making your package.
* [http://www.hforge.org/itools/ itools] - A python library that includes several useful tools, such as an ODF anonymizer that can be used to sanitize confidential documents before attaching them tp bug reports
* When packaging PyPI project you can generate the initial SPEC file using [https://apps.fedoraproject.org/packages/pyp2rpm pyp2rpm] tool.
* [http://pyjs.org/ Pyjamas] web toolkit
* [http://code.google.com/p/python-multiprocessing/ python-multiprocessing] - multiprocessing backport useful for EL-5
* [http://pypi.python.org/pypi/repoze.profile repoze.profile] - WSGI profiling middleware
* [http://code.google.com/p/tgscheduler/ tgscheduler] - TurboGears scheduler


=== Links ===
=== Links ===


[http://www.python.org/ Python website] <BR>
[http://www.python.org/ Python website] <BR>
[[Packaging:Python| Building Python packages]] <BR>
[[Packaging:Python| Python packaging Guidelines]] <BR>
[[TurboGears2| TurboGears]] <BR>
[[Packaging:Python Eggs| Packaging Python Eggs]] (outdated – needs update to <code>pip</code> & friends)<BR>
[[PackagingDrafts/TGApps|  Packaging TurboGears Applications]] <BR>
[[SIGs/Python/PythonPatches| Python Patches]] – patches to <code>python2</code> and <code>python3</code> in Fedora and EL <BR>
[[Packaging:Python Eggs| Packaging Python Eggs]] <BR>
 
[http://farmdev.com/talks/unicode/ Unicode in Python, Completely Demystified]
[http://farmdev.com/talks/unicode/ Unicode in Python, Completely Demystified] (somewhat outdated)


[[Category:SIGs]]
[[Category:SIGs]]
Line 60: Line 51:


=== Upstream Release Schedules ===
=== Upstream Release Schedules ===
[http://python.org/dev/peps/pep-0373/ Python 2.7]
[https://www.python.org/dev/peps/pep-0373/ Python 2.7]
 
[https://www.python.org/dev/peps/pep-0429/ Python 3.4]
 
[https://www.python.org/dev/peps/pep-0478/ Python 3.5]
 
[https://www.python.org/dev/peps/pep-0494/ Python 3.6]
 
=== Python Features ===
==== Future work ====
* [[Features/Python3ForCriticalComponents|port anaconda and yum to python 3]]
* [[Features/DebugPythonStacks|debug versions of Python 2 and Python 3 in addition to the traditional optimized builds]]
* [[Features/PyPyStack|add PyPy to Fedora, possibly with a stack of extensions]]
* [[Features/JythonStack|add a stack of extensions to Jython, in RPM form]]
* [[Features/PythonNamingDependingOnImplementation | Rename python packages to reflect python implementation in the name]]
 
==== Under development (Fedora 26) ====
* [[Changes/python3.6|Update of the Python 3 stack to 3.6]]
 
==== Older Changes ====
See the [[SIGs/Python/features_history| History of Python Changes]]
 
=== Porting to Python 3 ===
Currently there is an ongoing effort to port packages from Python 2 to Python 3, for the packages where upstream supports Python 3, so the package can provide either two subpackages for Python 2 and Python 3 respectively, or only the Python 3 version.
 
Contributors interested in porting packages are encouraged to read the [http://python-rpm-porting.readthedocs.io Python RPM Porting Guide]
 
People who successfully port a number of packages are awarded the Parselmouth badge, and a separate wiki page is maintained with contributor's names and the packages they ported:  [[Open_Badges/Python3Log| Python 3 Log]]
 
You can track the overall progress at [http://fedora.portingdb.xyz/ Fedora Porting Database].
 
=== Python Runtimes ===
'''Within Fedora:'''
* {{package|python}} - The standard "CPython" implementation of Python 2
* {{package|python3}} - As above, for Python 3.  There's a separate page detailing the [[Python3|status of building up a stack of pre-packaged Python 3 modules]]
* {{package|jython}} - Python 2 implementation on top of the Java virtual machine
* {{package|pypy}} - An alternate [http://pypy.org/ python 2 interpreter (with a JIT-compiler) written in a subset of python, compiled to .c].  The interpreter has [http://morepypy.blogspot.com/2009/10/gc-improvements.html better memory] use than CPython and speed is closing in on CPython.  The JIT'd version is faster than CPython in many [http://speed.pypy.org benchmarks].  It is growing the ability to [http://morepypy.blogspot.com/2010/04/using-cpython-extension-modules-with.html load CPython extension modules], though this is in an "alpha" state right now.
 
'''Within EPEL:'''
* {{package|python26}} - [[Python26|Python 2.6 stack for EPEL5]], parallel-installable with the system Python 2.4 stack
* {{package|python34}} - Python 3.4 stack for EPEL7
 
 
'''Awaiting review:'''
 
'''Awaiting packaging:'''
 
=== Python Compilers ===
'''Within Fedora:'''
* {{package|pyjamas}} - Python-to-JavaScript compiler, implemented in Python
* {{package|shedskin}} -  Python to C++ compiler (for a subset of Python with "implicit types")
 
[[Category:Fedora special-interest groups|Python SIG]]

Revision as of 12:26, 22 August 2016


Python Special Interest Group

A SIG for people who are interested in Python on Fedora. This includes:

Contact Info

Mailing List: python-devel
IRC: #fedora-python on irc.freenode.net

Python SIG FAS group

You can add group::python-sig to your package so the core members of the python-sig get notified on each bug in your python program. This way it is possible to maintain all python packages with the group permissions, which will simplify general python cleanup changes.

If there is interest and shown familiarity with our guidelines and processes (which usually manifests in maintaining at least 5 to 10 Python packages) you can apply for having access to a broader group of packages that is commonly maintained. If you choose to apply for this, please discuss it with a sponsor of the python-sig. (You can find a list of those in FAS.)

The current list of packages maintained by the python-sig can be found at the package database.

Members of Python SIG

Python packages awaiting review

Packaging Quickstart

If you're just getting started with packaging python modules for Fedora, here's some hints to get you started:

  • The Fedora Packaging Guidelines must be followed for any package. The Python specific guidelines are a good starting point.
  • You can generate a spec template for your new python package like this:
    dnf install rpmdevtools && rpmdev-newspec -t python
    That will generate a spec file template that is a good starting point to making your package.
  • When packaging PyPI project you can generate the initial SPEC file using pyp2rpm tool.

Links

Python website
Python packaging Guidelines
Packaging Python Eggs (outdated – needs update to pip & friends)
Python Patches – patches to python2 and python3 in Fedora and EL

Unicode in Python, Completely Demystified (somewhat outdated)

Upstream Release Schedules

Python 2.7

Python 3.4

Python 3.5

Python 3.6

Python Features

Future work

Under development (Fedora 26)

Older Changes

See the History of Python Changes

Porting to Python 3

Currently there is an ongoing effort to port packages from Python 2 to Python 3, for the packages where upstream supports Python 3, so the package can provide either two subpackages for Python 2 and Python 3 respectively, or only the Python 3 version.

Contributors interested in porting packages are encouraged to read the Python RPM Porting Guide

People who successfully port a number of packages are awarded the Parselmouth badge, and a separate wiki page is maintained with contributor's names and the packages they ported: Python 3 Log

You can track the overall progress at Fedora Porting Database.

Python Runtimes

Within Fedora:

Within EPEL:


Awaiting review:

Awaiting packaging:

Python Compilers

Within Fedora:

  • Package-x-generic-16.pngpyjamas - Python-to-JavaScript compiler, implemented in Python
  • Package-x-generic-16.pngshedskin - Python to C++ compiler (for a subset of Python with "implicit types")