From Fedora Project Wiki
(Packaging guidelines, package review and upstream releases)
 
(22 intermediate revisions by 2 users not shown)
Line 3: Line 3:
== Python Special Interest Group ==
== Python Special Interest Group ==


[https://www.python.org/ Python] is a high-level, interpreted programming language which emphasizes on code readability. [https://pagure.io/fedora-loves-python/ Fedora loves Python] and this SIG is for people who are interested in Python on Fedora. We aim to address the issues and tasks related to '''everything-Python''' on Fedora including:
[https://www.python.org/ Python] is a high-level, interpreted programming language which emphasizes on code readability. [https://pagure.io/fedora-loves-python/ 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:


* Packaging and optimizing the various Python 2 and Python 3 [[#Python_Runtimes|runtimes]]
* Packaging and optimizing the various Python 2 and Python 3 [[#Python_Runtimes|runtimes]]
Line 9: Line 9:
* Setting and improving [[Packaging:Python|standards for packaging them as RPMs]]
* Setting and improving [[Packaging:Python|standards for packaging them as RPMs]]
* Maintaining Python packages for Fedora
* Maintaining Python packages for Fedora
and much more...


== Communicate ==
== Communicate ==
Line 35: Line 37:
== Core Members ==
== Core Members ==
See [https://fedoraproject.org/wiki/SIGs/Python/Members_list SIGs/Python/Members_list] for a list of our current core members.
See [https://fedoraproject.org/wiki/SIGs/Python/Members_list SIGs/Python/Members_list] for a list of our current core members.
<!--
== Operating principles ==


* Instrument activity in existing communities to create and track metrics (a good initial effort exists at [http://thisweekinfedora.org/ ThisWeekInFedora])
* Federate and syndicate with as little burden on contributors as possible (like middle-ware that wraps and pipes existing processes / activity)
* Community engagement and outreach is something *everyone* in Fedora should be concerned with and invested in, not just Ambassadors or Marketing.
== Technical strategy ==
* Use real-time communication channels and infrastructure when possible ([http://www.fedmsg.com fedmsg], [https://apps.fedoraproject.org/notifications/ FMN], [https://fedoraproject.org/wiki/Zodbot Zodbot], others)
-->


== Join Python SIG ==
== 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:
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:


* Build your portfolio by working on real-world projects
* Learn how to package new Python software
* Learn how to package new Python software
* Work with teammates from the four corners of the world
* 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
* 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/Join | Join the Python SIG now]]'''
[[Image:fedora-loves-python.png|200px|middle]] '''[[SIGs/Python/JoinSIG | Join the Python SIG now]]'''


== Packaging Quickstart ==
== Areas of contribution ==
 
=== Packaging and maintaining Python applications ===


If you're just getting started with packaging Python modules for Fedora, here's some hints to get you started:
If you're just getting started with packaging Python modules for Fedora, here's some hints to get you started:
Line 66: Line 59:
* When packaging PyPI project you can generate the 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 ==
==== Python SIG FAS group ====


You can add [https://admin.fedoraproject.org/pkgdb/packager/group::python-sig/ group::python-sig] 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.
You can add [https://admin.fedoraproject.org/pkgdb/packager/group::python-sig/ group::python-sig] 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.
Line 74: Line 67:
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].
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].


== Python packages awaiting review ==
=== Review Python packages ===


If you are one of the experienced Python packgers, 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].  
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].  
* Bugzilla query for packages which have not passed review with "python" in the name or summary.
* 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 [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].


== Upstream Release Schedules ==
== Upstream Release Schedules ==
[https://www.python.org/dev/peps/pep-0373/ Python 2.7]
[https://www.python.org/dev/peps/pep-0373/ Python 2.7]


Line 87: Line 91:


[https://www.python.org/dev/peps/pep-0494/ Python 3.6]
[https://www.python.org/dev/peps/pep-0494/ Python 3.6]
== Python Features ==
=== Future work ===
* [[Features/PythonNamingDependingOnImplementation | Rename Python packages to reflect Python implementation in the name]].
=== Under development (Fedora 26) ===
* [[Changes/python3.6|Update of the Python3 stack to 3.6]]
=== Older Changes ===
See the [[SIGs/Python/features_history| History of Python Changes]]
== Toolbox ==
=== 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}} 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].
==== 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")
== 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)
[[Category:SIGs]]
[[Category:Language-specific SIGs]]
[[Category:Python]]
[[Category:Fedora special-interest groups|Python SIG]]

Latest revision as of 11:40, 14 September 2016

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

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.

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.

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


Toolbox

Python Runtimes

Within Fedora:

Within EPEL:


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