From Fedora Project Wiki
(Python 3.8)
(41 intermediate revisions by 8 users not shown)
Line 3: Line 3:
<!-- page was renamed from Extras/Python
<!-- page was renamed from Extras/Python
-->
-->
{{admon/important | Help wanted! | You can help with this stuff! Join us on '''<nowiki>#fedora-python </nowiki>''' on Freenode! }}


== Python Special Interest Group ==
== Python Special Interest Group ==
A SIG for people who are interested in Python on Fedora. This includes:
* packaging and optimizing the various Python 2 and Python 3 [[#Python_Runtimes|Python runtimes]]
* packaging Python libraries and applications
* setting and improving [[Packaging:Python|standards for packaging them as RPMs]]
* maintaining Python packages for Fedora


=== Contact Info ===
[https://www.python.org/ Python] is a high-level, interpreted programming language which emphasizes on code readability. [https://fedoralovespython.org Fedora loves Python] and this SIG is for people who would like to see this relationship flourish. We aim to address the issues and tasks related to '''everything-Python''' on Fedora which includes:


Mailing List for general discussions: [https://lists.fedoraproject.org/archives/list/python-devel@lists.fedoraproject.org/ python-devel] <BR>
* Packaging and optimizing the various Python 2 and Python 3 [[#Python_Runtimes|runtimes]]
IRC: #fedora-python on irc.freenode.net <BR>
* Packaging Python libraries and applications
* Setting and improving [[Packaging:Python|standards for packaging them as RPMs]]
* Maintaining Python packages for Fedora


=== Python SIG FAS group ===
and much more...


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.
== Communicate ==


To apply for the group, please apply:
=== Mailing lists ===
* Introduce yourself on the [https://lists.fedoraproject.org/archives/list/python-devel@lists.fedoraproject.org/ python-devel] mailing list.
* Apply for group membership at the [https://admin.fedoraproject.org/accounts/group/view/python-sig FAS group]
* Apply for access to the [https://lists.fedoraproject.org/archives/list/python-sig@lists.fedoraproject.org/ python-sig] mailing list.


The [https://lists.fedoraproject.org/mailman/listinfo/python-devel python-devel] mailing list is restricted because there are security sensitive mails.
{| class="wikitable"
! Address !! Function
|-
| [https://lists.fedoraproject.org/archives/list/python-devel@lists.fedoraproject.org/ python-devel] || General mailing list for all things Python related
|-
|}


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].


=== Members ===
=== IRC ===


[[MartinBacovsky| Martin Bacovsky]] <BR>
{| class="wikitable"
[[User:lbazan | Luis Bazán]] <BR>
! Address !! Function
[[AurelienBompard| Aurelien Bompard]] <BR>
|-
[[User:Ncoghlan | Nick Coghlan]] <BR>
| [https://webchat.freenode.net/?channels=#fedora-python  #fedora-python] || [https://fedoraproject.org/wiki/SIGs/Python Python SIG] official channel
[[User:Kushal | Kushal Das]] <BR>
|}
[[User:Lupinix | Christian Dersch]] <BR>
[[TejasDinkar| Tejas Dinkar]] <BR>
[[User:Tadej | Tadej Janež]] <BR>
[[User:Bkabrda | Bohuslav Kabrda]] <BR>
[[User:Mstuchli | Matej Stuchlik]] <BR>
[[User:topdog| Andrew Colin Kissa]] <BR>
[[ToshioKuratomi| Toshio Kuratomi]] <BR>
[[AlexLancaster| Alex Lancaster]] <BR>
[[TimLauridsen| Tim Lauridsen]] <BR>
[[JoseMatos| José Matos]] <BR>
[[LukeMacken| Luke Macken]] <BR>
[[User:potty | Abdel Martínez]] <BR>
[[DaveMalcolm| Dave Malcolm]]: interested in core Python runtimes and low-level implementation details <BR>
[[PaulNasrat| Paul Nasrat]] <BR>
[[User:Jamielinux | Jamie Nguyen]] <BR>
[[User:Tradej | Tomas Radej]] <BR>
[[MichelSalim| Michel Salim]] <BR>
[[FelixSchwarz| Felix Schwarz]] <BR>
[[User:jdulaney | John Dulaney]] <BR>
[[User:Tomspur| Thomas Spura]] <BR>
[[ChristosTrochalakis| Christos Trochalakis]] <BR>
[[User:Ramkrsna | Ramakrishna Reddy Yekulla]] <BR>
[[User:Ivazquez| Ignacio Vazquez-Abrams]] <BR>
[[User:Kumarpraveen | Praveen Kumar]] <BR>
[[User:raphgro | Raphael Groner]] <BR>
[[User:Athmane | Athmane Madjoudj]] <BR>
[[User:rkuska | Robert Kuska]] <BR>
[[User:churchyard | Miro Hrončok]] <BR>


=== Python packages awaiting review ===
{{admon/tip|Zodbot|Read the [[Zodbot]] page for helpful [[IRC]] commands.}}
* [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=593069 pynie] - Python 3, on top of the [https://admin.fedoraproject.org/pkgdb/acls/name/parrot Parrot virtual machine]


=== Packaging Quickstart ===
== Core Members ==
See [https://fedoraproject.org/wiki/SIGs/Python/Members_list SIGs/Python/Members_list] for a list of our current core members.


If you're just getting started with packaging python modules for Fedora, here's some hints to get you started:
 
== Join Python SIG ==
We're always looking for new members to join us. Whether you're a new contributor or someone that's been around since the beginning, there are definitely ways you can help. Join Python SIG and:
 
* Learn how to package new Python software
* Work with teammates from the four corners of the world
* Broaden your scope of working in open source communities and gain experience interacting in different areas
* Build your portfolio by working on real-world projects
 
[[Image:fedora-loves-python.png|200px|middle]] '''[[SIGs/Python/JoinSIG | Join the Python SIG now]]'''
 
== Areas of contribution ==
 
=== Packaging and maintaining Python applications ===
 
If you're just getting started with packaging Python modules for Fedora, here are some hints to get you started:


* The [[Packaging:Guidelines|Fedora Packaging Guidelines]] must be followed for any package.  The [[Packaging:Python|Python specific guidelines]] are a good starting point.
* The [[Packaging:Guidelines|Fedora Packaging Guidelines]] must be followed for any package.  The [[Packaging:Python|Python specific guidelines]] are a good starting point.
* You can generate a spec template for your new python package like this. For Fedora 22 and later versions use [[dnf|DNF]]: <pre>dnf install rpmdevtools && rpmdev-newspec -t python</pre> Or in Fedora 21 and earlier versions: <pre>yum install rpmdevtools && rpmdev-newspec -t python</pre>  That will generate a spec file template that is a good starting point to making your package.
* 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.
* When packaging PyPI project you can generate initial SPEC file using [https://apps.fedoraproject.org/packages/pyp2rpm pyp2rpm] tool.
* When packaging PyPI project you can generate the initial SPEC file using [https://apps.fedoraproject.org/packages/pyp2rpm pyp2rpm] tool.
 
==== Python SIG FAS group ====
 
You can add [https://src.fedoraproject.org/group/python-sig python-sig] group to your package so the [https://fedoraproject.org/wiki/SIGs/Python/Members_list 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 [https://admin.fedoraproject.org/accounts/group/members/python-sig/*/sponsor in FAS].)


=== Package requests ===
The current list of packages maintained by the python-sig can be found at the [https://src.fedoraproject.org/group/python-sig src.fedoraproject.org].
* [http://chandlerproject.org Chandler PIM] - I don't think it is such hot idea ... upstream is pinning for the fjords, and after couple of years of non-development, it is not that advanced as it used to be.
* [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
[https://bugzilla.redhat.com/show_bug.cgi?id=1181317 review request]
* [http://code.google.com/p/python-multiprocessing/ python-multiprocessing] - multiprocessing backport useful for EL-5 [https://bugzilla.redhat.com/show_bug.cgi?id=716667 review request]
* [http://pypi.python.org/pypi/repoze.profile repoze.profile] - WSGI profiling middleware
* [http://code.google.com/p/tgscheduler/ tgscheduler] - TurboGears scheduler


=== Links ===
=== Review Python packages ===


[http://www.python.org/ Python website] <BR>
If you are one of the experienced Python packagers, you can help with the [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 Python packages awaiting review].  
[[Packaging:Python| Building Python packages]] <BR>
* Bugzilla query for packages which have not passed review with "python" in the name or summary.
[[TurboGears2| TurboGears]] <BR>
[[PackagingDrafts/TGApps|  Packaging TurboGears Applications]] <BR>
[[Packaging:Python Eggs|  Packaging Python Eggs]] <BR>
Parallel installable [[Python26]] information (mainly EPEL5).<br/>
[http://farmdev.com/talks/unicode/ Unicode in Python, Completely Demystified]


[[Category:SIGs]]
=== Porting to Python3 ===
[[Category:Language-specific SIGs]]
 
[[Category:Python]]
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. This effort aims to completely shift to Python 3 before [https://pythonclock.org/ Python 2 retires in 2020].
 
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 [https://badges.fedoraproject.org/badge/parselmouth 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].
 
=== Other ===
Interested for more? Check out our [https://github.com/fedora-python/ github repositories] for various projects related to Python and Fedora.
 
== Upstream Release Schedules ==
 
[https://www.python.org/dev/peps/pep-0373/ Python 2.7]
 
[https://www.python.org/dev/peps/pep-0429/ Python 3.4]


=== Upstream Release Schedules ===
[https://www.python.org/dev/peps/pep-0478/ Python 3.5]
[http://www.python.org/dev/peps/pep-0429/ Python 3.4]


=== Python Features ===
[https://www.python.org/dev/peps/pep-0494/ Python 3.6]
==== 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 18) ====
[https://www.python.org/dev/peps/pep-0537/ Python 3.7]
* [[Features/Python_3.3|upgrade of the Python 3 stack to 3.3]]


==== Added in Fedora 17 ====
[https://www.python.org/dev/peps/pep-0569/ Python 3.7]
* [[Features/StaticAnalysisOfPythonRefcounts| further work on static analysis of refcounting]]


==== Added in Fedora 16 ====
== Python Features ==
* [[Features/GccPythonPlugin|GCC plugin embedding Python, for writing GCC extensions in Python]]
* [[Features/StaticAnalysisOfCPythonExtensions|Static analysis tool to detect common mistakes made in Python extension modules written in C]]


==== Added in Fedora 15 ====
* [[Features/Python_3.2|upgrade of the Python 3 stack to 3.2]]


==== Added in Fedora 14 ====
=== Under development (Fedora 27+) ===
* [[Features/Python_2.7|upgrade of the Python 2 stack to 2.7]]
* pypy was packaged, available prebuilt via rpm


==== Added in Fedora 13 ====
* [[FinalizingFedoraSwitchtoPython3|Finalizing Fedora's Switch to Python 3]]
* [[Features/Python3F13|parallel-installable Python 3 stack]]
* [[Changes/Platform_Python_Stack|Platform Python Stack]]
* [[Features/EasierPythonDebugging|gdb hooks to make it easier to debug Python and extension modules]]
* [[Changes/Making_sudo_pip_safe|Making sudo pip Safe (Again)]]
* [[Features/SystemtapStaticProbes#Python_2|Systemtap probe points for tracing Python function calls]]


==== Added in Fedora 11 ====
=== Older Changes ===
* [[Features/Python_2.6|upgrade of the Python 2 stack to 2.6]]


==== Added in Fedora 10 ====
See the [[SIGs/Python/features_history| History of Python Changes]]
* [[Features/PythonNSS|created and packaged bindings for the FIPS-validated NSS cryptographic library]]


==== Stalled features ====
== Toolbox ==
* [[Features/SystemPythonExecutablesUseSystemPython]]


=== Python Runtimes ===
=== Python Runtimes ===
'''Within Fedora:'''
 
* {{package|python}} - The standard "CPython" implementation of Python 2
==== Within Fedora: ====
* {{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|python3}} - The standard CPython implementation of Python 3
* {{package|python2}} - The legacy CPython implementation of Python 2
* {{package|jython}} - Python 2 implementation on top of the Java virtual machine
* {{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.
* {{package|pypy}} and {{package|pypy3}} - An alternate [http://pypy.org/ Python 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].
* {{package|python38}}, {{package|python37}}, {{package|python36}}, {{package|python35}}, {{package|python34}}, {{package|python33}} (retired on F29+) and {{package|python26}} are there so you can test you code on all of those. Just <code>dnf install tox</code> on Fedora 25+ to get it all.
 
==== Within EPEL: ====


'''Within EPEL:'''
* {{package|python34}} - Python 3.4 stack for EPEL6 and EPEL7
* {{package|python26}} - [[Python26|Python 2.6 stack for EPEL5]], parallel-installable with the system Python 2.4 stack
* {{package|python36}} - Python 3.6 stack for EPEL7




<!--
'''Awaiting review:'''
'''Awaiting review:'''
* [https://bugzilla.redhat.com/show_bug.cgi?id=593069 pynie] - Python 3, on top of the [https://admin.fedoraproject.org/pkgdb/acls/name/parrot Parrot virtual machine]
 
'''Awaiting packaging'''
'''Awaiting packaging:''' -->
* IronPython
** [http://code.google.com/p/ironclad/ Ironclad] CPython extensions from IronPython
* [http://code.google.com/p/python-on-a-chip/ Python-on-a-Chip (p14p)]


=== Python Compilers ===
=== Python Compilers ===
'''Within Fedora:'''
 
==== Within Fedora: ====
* {{package|pyjamas}} - Python-to-JavaScript compiler, implemented in Python
* {{package|pyjamas}} - Python-to-JavaScript compiler, implemented in Python
* {{package|shedskin}} -  Python to C++ compiler (for a subset of Python with "implicit types")
* {{package|shedskin}} -  Python to C++ compiler (for a subset of Python with "implicit types")
== Important Links ==
* [http://www.python.org/ Python website] <BR>
* [[Packaging:Python| Python packaging Guidelines]] <BR>
* [[Packaging:Python Eggs|  Packaging Python Eggs]] (outdated – needs update to <code>pip</code> & friends)<BR>
* [[SIGs/Python/PythonPatches| Python Patches]] – patches to <code>python2</code> and <code>python3</code> in Fedora and EL <BR>
* [http://farmdev.com/talks/unicode/ Unicode in Python, Completely Demystified] (somewhat outdated)
* [https://portingguide.readthedocs.io The Conservative Python 3 Porting Guide]
[[Category:SIGs]]
[[Category:Language-specific SIGs]]
[[Category:Python]]


[[Category:Fedora special-interest groups|Python SIG]]
[[Category:Fedora special-interest groups|Python SIG]]

Revision as of 12:46, 17 March 2019


Important.png
Help wanted!
You can help with this stuff! Join us on #fedora-python on Freenode!

Python Special Interest Group

Python is a high-level, interpreted programming language which emphasizes on code readability. Fedora loves Python and this SIG is for people who would like to see this relationship flourish. We aim to address the issues and tasks related to everything-Python on Fedora which includes:

and much more...

Communicate

Mailing lists

Address Function
python-devel General mailing list for all things Python related


IRC

Address Function
#fedora-python Python SIG official channel
Idea.png
Zodbot
Read the Zodbot page for helpful IRC commands.


Core Members

See SIGs/Python/Members_list for a list of our current core members.


Join Python SIG

We're always looking for new members to join us. Whether you're a new contributor or someone that's been around since the beginning, there are definitely ways you can help. Join Python SIG and:

  • Learn how to package new Python software
  • Work with teammates from the four corners of the world
  • Broaden your scope of working in open source communities and gain experience interacting in different areas
  • Build your portfolio by working on real-world projects

Fedora-loves-python.png Join the Python SIG now

Areas of contribution

Packaging and maintaining Python applications

If you're just getting started with packaging Python modules for Fedora, here are 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.

Python SIG FAS group

You can add python-sig group 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 src.fedoraproject.org.

Review Python packages

If you are one of the experienced Python packagers, you can help with the list of Python packages awaiting review.

  • Bugzilla query for packages which have not passed review with "python" in the name or summary.

Porting to Python3

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. This effort aims to completely shift to Python 3 before Python 2 retires in 2020.

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.

Other

Interested for more? Check out our github repositories for various projects related to Python and Fedora.

Upstream Release Schedules

Python 2.7

Python 3.4

Python 3.5

Python 3.6

Python 3.7

Python 3.7

Python Features

Under development (Fedora 27+)

Older Changes

See the History of Python Changes

Toolbox

Python Runtimes

Within Fedora:

Within EPEL:

  • Package-x-generic-16.pngpython34 - Python 3.4 stack for EPEL6 and EPEL7
  • Package-x-generic-16.pngpython36 - Python 3.6 stack for EPEL7


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")


Important Links