Churchyard (talk | contribs) m (python33 is retired) |
Churchyard (talk | contribs) (IRC -> Matrix) |
||
(23 intermediate revisions by 7 users not shown) | |||
Line 4: | Line 4: | ||
--> | --> | ||
{{admon/important | Help wanted! | You can help with this stuff! Join us on | {{admon/important | Help wanted! | You can help with this stuff! Join us on [https://chat.fedoraproject.org/#/room/#python:fedoraproject.org Fedora Python Matrix]! }} | ||
== Python Special Interest Group == | == Python Special Interest Group (SIG) == | ||
[https://www.python.org/ Python] is a high-level, interpreted programming language which emphasizes on code readability. [https:// | [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 any and all issues and tasks related to Python in Fedora, including: | ||
* | * packaging and optimizing the various [[#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 | ||
and much more... | and much more... | ||
Line 24: | Line 24: | ||
! Address !! Function | ! Address !! Function | ||
|- | |- | ||
| | | {{fplist|python-devel}} || General mailing list for all things Python related | ||
|- | |- | ||
|} | |} | ||
=== | === Matrix === | ||
{| class="wikitable" | {| class="wikitable" | ||
! Address !! Function | ! Address !! Function | ||
|- | |- | ||
| [https:// | | [[https://chat.fedoraproject.org/#/room/#python:fedoraproject.org Fedora Python] || [https://fedoraproject.org/wiki/SIGs/Python Python SIG] official channel | ||
|} | |} | ||
Line 58: | Line 56: | ||
=== Packaging and maintaining Python applications === | === Packaging and maintaining Python applications === | ||
If you're just getting started with packaging Python modules for Fedora, here | If you're just getting started with packaging Python modules for Fedora, here are some hints to get you started: | ||
* The [ | * The [https://docs.fedoraproject.org/en-US/packaging-guidelines/ Fedora Packaging Guidelines] must be followed for any package. The [https://docs.fedoraproject.org/en-US/packaging-guidelines/Python/ Python specific guidelines] are a good starting point. | ||
* 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 the initial SPEC file using [https://src.fedoraproject.org/rpms/pyp2rpm pyp2rpm] tool. | ||
* 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. (Beware, the template might be outdated.) | |||
==== Python SIG FAS group ==== | ==== Python SIG FAS group ==== | ||
You can add [https:// | You can add [https://src.fedoraproject.org/group/python-packagers-sig python-packagers-sig] group to your package so the [https://fedoraproject.org/wiki/SIGs/Python/Members_list core members] of the python-packagers-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:// | 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-packagers-sig. (You can find a list of those [https://accounts.fedoraproject.org/group/python-packagers-sig/ in FAS].) | ||
The current list of packages maintained by the python-sig can be found at the [https:// | The current list of packages maintained by the python-packagers-sig can be found at the [https://src.fedoraproject.org/group/python-packagers-sig src.fedoraproject.org]. | ||
The [https://packager-dashboard.fedoraproject.org/dashboard?groups=python-packagers-sig packaging dashboard of the Python SIG FAS group] might serve as a place to start contributing. | |||
=== Review Python packages === | === Review Python packages === | ||
Line 77: | Line 77: | ||
* 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 | === Porting to Python 3 === | ||
Python 2 is dead upstream as of January 2020. Thankfully the switch from Python 2 to Python 3 in Fedora is nearly finished, see our [http://fedora.portingdb.xyz/ Fedora Porting Database]. | |||
If your project still doesn't work on Python 3, we recommend trying the [https://portingguide.readthedocs.io/ Conservative Python 3 Porting Guide]. | |||
=== Other === | === Other === | ||
Line 100: | Line 96: | ||
[https://www.python.org/dev/peps/pep-0494/ Python 3.6] | [https://www.python.org/dev/peps/pep-0494/ Python 3.6] | ||
[https://www.python.org/dev/peps/pep-0537/ Python 3.7] | |||
[https://www.python.org/dev/peps/pep-0569/ Python 3.8] | |||
[https://www.python.org/dev/peps/pep-0596/ Python 3.9] | |||
[https://www.python.org/dev/peps/pep-0619/ Python 3.10] | |||
== | == Python Fedora Changes == | ||
See the [[SIGs/Python/features_history| History of Python Changes]] | See the [[SIGs/Python/features_history| History of Python Changes]] | ||
Line 121: | Line 115: | ||
* {{package|python3}} - The standard CPython implementation of Python 3 | * {{package|python3}} RPM package - The standard CPython implementation of Python 3 | ||
** The component name changes based on the version, currently {{package|python3.9}} | |||
* {{package|python2}} - The legacy CPython implementation of Python 2 | * {{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}} 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|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| | * Alternative Python versions so you can test you code on all of them. Just <code>dnf install tox</code> on Fedora 25+ to get them all. | ||
** {{package|python3.9}} | |||
** {{package|python3.8}} | |||
** {{package|python3.7}} | |||
** {{package|python3.6}} | |||
** {{package|python3.5}} | |||
** {{package|python34}} (retired in F33+) | |||
** {{package|python33}} (retired on F29+) | |||
** {{package|python2.7}} | |||
** {{package|python26}} (retired in F33+) | |||
==== Within EPEL: ==== | ==== Within EPEL: ==== | ||
* {{package|python34}} - Python 3.4 stack for EPEL7 | * {{package|python34}} - Python 3.4 stack for EPEL6 and EPEL7 | ||
* {{package|python36}} - Python 3.6 stack for EPEL7 | * {{package|python36}} - Python 3.6 stack for EPEL7 | ||
=== Python Compilers === | === Python Compilers === | ||
Line 143: | Line 141: | ||
* {{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 == | == Important Links == | ||
* Python in Fedora | |||
* | ** [[Packaging:Python| Python packaging Guidelines]] | ||
* [[Packaging:Python| Python packaging Guidelines]] | ** [https://fedoralovespython.org/ Fedora Loves Python] site ([https://github.com/fedora-python/fedoralovespython.org source repo]) | ||
* [[ | ** [https://developer.fedoraproject.org/tech/languages/python/python-installation.html Python section in the Fedora Developer Portal] (remember to update this as recommendations and the available tooling change! | ||
* [[SIGs/Python/PythonPatches| Python Patches]] – | ** [[SIGs/Python/PythonPatches| Python Patches]] – registry of patch numbers for Python interpreters in Fedora and EL | ||
* [http://farmdev.com/talks/unicode/ Unicode in Python, Completely Demystified] (somewhat outdated) | ** [https://hackmd.io/9f64YNIZTCy0ZzKb5wKtqQ?view Fedora Python interpreters maintenance guide] | ||
* General Python links | |||
** [http://www.python.org/ Python website] | |||
** [https://portingguide.readthedocs.io The Conservative Python 3 Porting Guide] | |||
* Obsolete | |||
** [http://farmdev.com/talks/unicode/ Unicode in Python, Completely Demystified] (somewhat outdated) | |||
** [[Packaging:Python Eggs| Packaging Python Eggs]] (outdated – needs update to <code>pip</code> & friends) | |||
** [https://python-rpm-porting.readthedocs.io/ Python RPM Porting Guide] | |||
[[Category:SIGs]] | [[Category:SIGs]] |
Latest revision as of 11:14, 20 February 2024
Python Special Interest Group (SIG)
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 any and all issues and tasks related to Python in Fedora, including:
- packaging and optimizing the various Python runtimes,
- packaging Python libraries and applications,
- setting and improving standards for packaging them as RPMs,
- maintaining Python packages for Fedora
and much more...
Communicate
Mailing lists
Address | Function |
---|---|
python-devel | General mailing list for all things Python related |
Matrix
Address | Function |
---|---|
[Fedora Python | Python SIG official channel |
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
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.
- When packaging PyPI project you can generate the initial SPEC file using pyp2rpm tool.
- 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. (Beware, the template might be outdated.)
Python SIG FAS group
You can add python-packagers-sig group to your package so the core members of the python-packagers-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-packagers-sig. (You can find a list of those in FAS.)
The current list of packages maintained by the python-packagers-sig can be found at the src.fedoraproject.org.
The packaging dashboard of the Python SIG FAS group might serve as a place to start contributing.
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 Python 3
Python 2 is dead upstream as of January 2020. Thankfully the switch from Python 2 to Python 3 in Fedora is nearly finished, see our Fedora Porting Database.
If your project still doesn't work on Python 3, we recommend trying the Conservative Python 3 Porting Guide.
Other
Interested for more? Check out our github repositories for various projects related to Python and Fedora.
Upstream Release Schedules
Python Fedora Changes
See the History of Python Changes
Toolbox
Python Runtimes
Within Fedora:
python3
RPM package - The standard CPython implementation of Python 3- The component name changes based on the version, currently
python3.9
- The component name changes based on the version, currently
python2
- The legacy CPython implementation of Python 2jython
- Python 2 implementation on top of the Java virtual machinepypy
andpypy3
- An alternate Python interpreter (with a JIT-compiler) written in a subset of python, compiled to .c. The interpreter has better memory use than CPython and speed is closing in on CPython. The JIT'd version is faster than CPython in many benchmarks. It is growing the ability to load CPython extension modules.- Alternative Python versions so you can test you code on all of them. Just
dnf install tox
on Fedora 25+ to get them all.
Within EPEL:
Python Compilers
Within Fedora:
pyjamas
- Python-to-JavaScript compiler, implemented in Pythonshedskin
- Python to C++ compiler (for a subset of Python with "implicit types")
Important Links
- Python in Fedora
- Python packaging Guidelines
- Fedora Loves Python site (source repo)
- Python section in the Fedora Developer Portal (remember to update this as recommendations and the available tooling change!
- Python Patches – registry of patch numbers for Python interpreters in Fedora and EL
- Fedora Python interpreters maintenance guide
- General Python links
- Obsolete
- Unicode in Python, Completely Demystified (somewhat outdated)
- Packaging Python Eggs (outdated – needs update to
pip
& friends) - Python RPM Porting Guide