From Fedora Project Wiki
(Initial edits)
 
(28 intermediate revisions by 2 users not shown)
Line 3: Line 3:
== Python Special Interest Group ==
== Python Special Interest Group ==


A SIG for people who are interested in Python on Fedora. This includes:
[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|Python runtimes]]
* packaging Python libraries and applications
* setting and improving [[Packaging:Python|standards for packaging them as RPMs]]
* maintaining Python packages for Fedora


* Packaging and optimizing the various Python 2 and Python 3 [[#Python_Runtimes|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...


== Communicate ==
== Communicate ==
Line 31: Line 33:


{{admon/tip|Zodbot|Read the [[Zodbot]] page for helpful [[IRC]] commands.}}
{{admon/tip|Zodbot|Read the [[Zodbot]] page for helpful [[IRC]] commands.}}
=== Trac ===
CommOps uses a ticket-based system called [[Trac]] to keep on top of what tasks we are working on, what objectives need to be completed, and to help set the pace of our meeting agendas. If you need help from CommOps, you can "light the bat signal" by filing a ticket on [https://fedorahosted.org/fedora-commops/ our Trac].
'''''[https://fedorahosted.org/fedora-commops/ CommOps Trac]'''''
=== Meetings ===
The CommOps team meets '''weekly'''. Check the [https://apps.fedoraproject.org/calendar/commops/ CommOps Fedocal] for schedule.
Meeting minutes are logged at [https://meetbot.fedoraproject.org/teams/commops/ Meetbot] and via wiki articles outlining the meeting agendas (such as [[Meeting:CommOps_2015-12-01|CommOps meeting 2015-12-01]]). All meetings use the [[Template:CommOps_meeting|CommOps meeting template]]. You're invited to join us!
* [https://fedoraproject.org/wiki/Category:Meetings:CommOps:2015 Meetings 2015]
* [https://fedoraproject.org/wiki/Category:Meetings:CommOps:2016 Meetings 2016]
Meetings are often logged by Meetbot. Fedora møte logs for CommOps : [https://meetbot.fedoraproject.org/sresults/?group_id=commops&type=team CommOps Meeting Logs]
==== Meeting format ====
Meetings primarily follow the agenda outlined in the meeting plan on the wiki. This includes a ticket-based approach to handle the tickets in [https://fedorahosted.org/fedora-commops/ our Trac].
The following is a long-term goal for our how tickets on our Trac will work:
* Tickets that don't get requests for information responded to after 2 weeks become inactive.
* Tickets that are stalled for two weeks either get unassigned or can be renewed for an additional two weeks by their owner.
== Delegation ==
This is a long-term goal of the Community Operations team and one of the things we hope to see farther in the future.
One person, [[FPL|Lead]] or otherwise, cannot possibly know everything that is happening in every corner of a project the size of Fedora, let alone where each of those sub-communities would like to go in the future. This requires broad participation across many teams and communities. A delegation, rather than an elected board, or other top-down style governance structure, would be the vehicle through which to gather input and reach consensus on community infrastructure. Delegates will represent distinct groups within Fedora, selected from within their delegation, with additional input and participation by non-voting delegates who want to be involved.
=== Members ===
* The 13 Fedora Subprojects
* The five Working Groups (three Editions, plus Base and [[Env_and_Stacks|Environments/Stacks]] Working Groups)
* Any active and interested SIGS (opt-in)
* Distinct web properties without a team / committee / group
** ask.fedoraproject.org (?)
* Other moving parts of Fedora not yet identified but needing representation
== 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 ==
== Core Members ==
See [https://fedoraproject.org/wiki/SIGs/Python/Members_list SIGs/Python/Members_list] for a list of our current core members.


* 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 CommOps ==
== 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 CommOps. Join CommOps 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
* Get a holistic view of the entire Fedora Project and learn how all the pieces fit together
* Work directly with Fedora Project leadership
* Elevated privileges in different parts of the project (e.g. wiki editing)
* 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
* Aspire to the greatness of a superhero
* Build your portfolio by working on real-world projects


[[Image:happypanda.png|100px|middle]] '''[[CommOps/Join | Join the CommOps Team now]]'''
[[Image:fedora-loves-python.png|200px|middle]] '''[[SIGs/Python/JoinSIG | Join the Python SIG now]]'''


== Areas of contribution ==


== Things we help with ==
=== Packaging and maintaining Python applications ===


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


To help direct contributor activity, the community team will help existing sub-projects come up with badges and series of badges to establish an official process (and an award) for team / subproject membership. The Badges ''design process'' is operating very well, but the Badges ''strategy process'' falls onto the [[Design|Design team's]] already full plate. It is our aim to help fix that.
* 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: <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://apps.fedoraproject.org/packages/pyp2rpm pyp2rpm] tool.


=== Culture ===
==== Python SIG FAS group ====


There are many different ethics and values that compose the community, and it's important to be mindful of these. Not only to be mindful, but also to help enrich and support the communities of culture that exist within Fedora.
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.


The Ambassadors are the most obvious example of this as they are separated by region, but it's not the case for other sub-projects. For how CommOps
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].)
fits into this, it is our duty and responsible to help build a community infrastructure of support and acceptance for all of the different cultures that fit into Fedora. The "Friends" part of the Four Foundations is there for a reason. People enjoy contributing in a community where they
feel valued for ''being a part of the family'', not just that they are useful.


We help with a lot of the "technical" things in the community, like measuring impact at events with powerful metrics, documenting what's happening in the community on the [[Community Blog]], and directing resources and assistance when and where it is needed. All of which are ''very important things''. But it is also our role to help support the "non-technical" things in the community too, things like bringing the community together, helping
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].
"federate" the different sub-projects, and building a supportive and welcoming community.


Some of the things that make up "culture" in the Fedora community:
=== Review Python packages ===


* [[Overview]]
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].
* [[Foundations]]
* Bugzilla query for packages which have not passed review with "python" in the name or summary.
* [[Objectives]]


==== Code of Conduct and Diversity ====
=== Porting to Python3 ===


CommOps helps work with the [[Diversity Adviser]] to evaluate topics such as the [https://getfedora.org/code-of-conduct Code of Conduct] and evaluate diversity in the Fedora community. One of the responsibilities that the Diversity Adviser will help with is creating a survey to be shared with the Fedora community to get a better sense of how our contributors are composed.
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].


=== Internal communications ===
Contributors interested in porting packages are encouraged to read the [http://python-rpm-porting.readthedocs.io Python RPM Porting Guide]


This is an ongoing and difficult problem, and we have come up with an approach, but it does resemble the proposed structure of FOSCo. Each of the 13 official subprojects, active and interested SIGs, working groups, and each web-property (Ask, Magazine, etc...) can choose a delegate.
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]]


Since this is a ''massive'' synchronous effort, we will need a way for each delegate to report on behalf of their delegation via a template. That template will be ticket-driven. Creating zodbot hooks to fill in this template from existing IRC meetings will solve this in many cases, but not all. Having a method to manually submit reports will help as a fallback.
You can track the overall progress at [http://fedora.portingdb.xyz/ Fedora Porting Database].


=== Metrics ===
== Upstream Release Schedules ==


Because of the [http://www.fedmsg.com fedmsg] stack, we have some very detailed raw data on Fedora contributor activity. There are a number of efforts being undertaken to generate data visualizations and regular reports based on this raw data. A critical part of developing metrics will be defining what kinds of questions we want to ask of this massive store of raw data.
[https://www.python.org/dev/peps/pep-0373/ Python 2.7]


Some past and future metrics ideas are listed [[CommOps/Metrics_Ideas|here]]. You should also take a look at the [[CommOps#Toolbox|CommOps Toolbox]] for metrics related tools.
[https://www.python.org/dev/peps/pep-0429/ Python 3.4]


=== Onboarding via Fedora Hubs ===
[https://www.python.org/dev/peps/pep-0478/ Python 3.5]


This is an existing effort with the momentum and full support of the [[Design|Design Team]] and a buy-in from the [[Infrastructure|Infrastructure Team]]. We do not have to create or recreate this wheel and want to support Hubs as the Community Operation team's official strategy.
[https://www.python.org/dev/peps/pep-0494/ Python 3.6]


The point behind the idea was to provide a space specifically for Fedora contributors that was separate from the user space, and to make it easier for folks who are non-packager contributors to Fedora to collaborate by providing them explicit tools to do that. This would include tools for folks working in [[Docs_Project|Docs]], [[Marketing]], [[Design]], [[Ambassadors]], and so on, to help make it easier and enable them to bring new contributors on-board.


See the [http://blog.linuxgrrl.com/2015/03/24/enabling-new-contributors-brainstorm-session/ proposal] and the [http://blog.linuxgrrl.com/2015/03/25/summary-of-enabling-new-contributors-brainstorm-session/ results] of the proposal.
== Python Features ==


=== Release notes ===
=== Future work ===


Each time Fedora makes a release, subprojects and teams provide updates and highlights. Helping to aggregate and publish that data takes a village, and CommOps is here to help. See the[https://fedoraproject.org/wiki/Releases Releases] page for details.
* [[Features/PythonNamingDependingOnImplementation | Rename Python packages to reflect Python implementation in the name]].


=== Storytelling ===
=== Under development (Fedora 26) ===


Much in the spirit of [http://boingboing.net/ BoingBoing], the idea of &quot;Cover Posts&quot; are a target goal which can be generated from existing content and point to existing parts of Fedora to minimize the burden of &quot;publishing in yet another place.&quot;
* [[Changes/python3.6|Update of the Python3 stack to 3.6]]


Content that is highly designed and curated already (announce-list, Fedora Magazine) should get the &quot;greenlight&quot; to be published automatically, and others added to a curated content queue from the community by Zodbot, other mailing lists, [http://www.fedmsg.com fedmsg], and/or other means. This queue of curated content will help feed both the [[Magazine|Fedora Magazine]] (end-user focused content) and the [[Community Blog]].
=== Older Changes ===


Here are some places where you can find the latest news and updates about the Fedora Project, read articles, and keep in touch with the community that develops, supports, and promotes Fedora. You can also publish your own articles, share an experience with others, ask a question, and interact with the community. Some of the most well-known sites are the following:
See the [[SIGs/Python/features_history| History of Python Changes]]
* [https://fedoramagazine.org/ Fedora Magazine]
* [https://communityblog.fedoraproject.org/ Fedora Community Blog]
* [http://opensource.com/ OpenSource.com]
* [http://fedoraplanet.org/ Fedora Planet]


=== Unified messaging ===


When someone asks the question, &quot;What is Fedora?&quot; to an existing community member, *everyone* should have at least a standard elevator pitch, whether you are a designer, engineer, or translator. Ideally, this will be informed by the Fedora Core Values and Mission, and developed in the open (similar to the Red Hat Mission Statement). Input from existing groups (such as Marketing and Design) will be needed.
== Toolbox ==


=== Voter turnout ===
=== Python Runtimes ===


Improving voter turnout during [[FESCo]] and [[Council]] elections makes for a stronger field of candidates and a more participatory community. This priority has been identified and added at the request of the Fedora Council.
==== Within Fedora: ====


=== Wiki ===
* {{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].


The wiki is aging. The wiki tries to be all things to all Fedorans. There are a number of initiatives happening: some are moving user documentation out of the wiki into a ''readthedocs.org''-style site, others say there is a <nowiki>{{old}}</nowiki> tag that is going to help us sift through content, and there are likely other initiatives too.
==== Within EPEL: ====


We'd like to do things automatically, such as generate User pages on the wiki (in the spirit of the Badges template) so that users don't have yet-another-place-to-edit.
* {{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




== Members & Interest Areas ==
<!--
'''Awaiting review:'''


See [[CommOps/Members]] for a list of our current members and their interest areas.
'''Awaiting packaging:''' -->
=== Python Compilers ===


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


Already, the [[Infrastructure]], [[Design]], and other teams started developing tools to help drive community initiatives and aggregate metrics. You can also find a detailed listing of CommOps tools on [http://decausemaker.org/posts/commops-toolbox.html decause's blog].


=== Internal tools ===
== Important Links ==


These are tools that we use for managing some of our own resources, communication platforms, or other things.
* [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]]
! Project !! Source !! Description !! Stack !! Interest Area
[[Category:Language-specific SIGs]]
|-
[[Category:Python]]
| [[Community Blog|Community Blog (CommBlog)]] || [https://communityblog.fedoraproject.org communityblog.fedoraproject.org] || A centralized blog available to contributors to publish news, activities, or calls for help for the rest of the project. Useful place for getting the inside scoop of "what's happening" in Fedora. Note that the blog publishes in UTC.|| WordPress (PHP) || Messaging, Storytelling
|-
| [[Fedora Hubs]] || [https://pagure.io/fedora-hubs/branch/develop pagure.io/fedora-hubs] || Modern, web-based Fedora activity center || Python || Hubs, Messaging
|-
| ircbot.py || [https://infrastructure.fedoraproject.org/cgit/ansible.git/tree/roles/fedmsg/irc/templates/ircbot.py?id=0279643#n77 infrastruture.fedoraproject.org/cgit/ansible.git] || IRC bots in #fedora-commops that relay real-time updates and news in Fedora about various topics || Python || Messaging, Storytelling
|}


=== Metrics ===
These tools are all useful for generating metrics, analyzing data, or interacting with the fedmsg bus.
{|
! Project !! Source !! Description !! Stack !! Interest Area
|-
| annualgrepper || [https://github.com/fedora-infra/fedora-stats-tools/blob/develop/annualgrepper.py annualgrepper.py] || gather raw fedmsg totals on topics over 1 year timespan || Python ||Metrics, Storytelling
|-
| cardsite || [https://github.com/decause/cardsite github.com/decause/cardsite] || live fedmsg tracker inspired by http://emojitracker.com || Python || Metrics
|-
| daily-briefing || [https://github.com/fedora-infra/fedora-stats-tools/blob/develop/daily-briefing.py daily-briefing.py] || template takes lists of URLs, generates summary report of daily meetbot links and action items. Manual now, but can be automated in the future. || Python || Metrics
|-
| '''datagrepper''' || [https://apps.fedoraproject.org/datagrepper/ apps.fedoraproject.org/datagrepper] || Using HTTP GET requests, you can query for all kinds of historical data from the fedmsg bus: events by username, by package, by message source, by topic... you name it. || REST API || Hubs, Metrics, Storytelling
|-
| '''fedmsg''' || [http://fedmsg.com fedmsg.com] ||  Python package and API that hooks all the services in Fedora Infrastructure together by sending messages to one another over a unified message bus in real-time. || Python || Hubs, Metrics
|-
| fedora-stats-tools || [https://github.com/fedora-infra/fedora-stats-tools github.com/fedora-infra/fedora-stats-tools] || GitHub repo with multiple statistics tools, data, and slide decks for fedmsg metrics, year in reviews, and Fedora Events metrics || Python || Metrics
|-
| feedcloud || [https://github.com/decause/feedcloud github.com/decause/feedcloud] || Take an RSS feed, or list of RSS feeds, and generate fancy wordlcouds for all/each|| Python ||Metrics, Storytelling
|-
| gsoc-stats || [https://pagure.io/gsoc-stats pagure.io/gsoc-stats] || Python tool to generate statistics of Fedora Users || Python || Messaging, Metrics, Storytelling
|-
| longtail || [https://github.com/fedora-infra/fedora-stats-tools/blob/develop/longtail-analyze.py longtail-analyze.py] [https://github.com/fedora-infra/fedora-stats-tools/blob/develop/longtail-gather.py longtail-gather.py] || Measure the ratio of activity/user to approximate burnout || Python || Metrics
|-
| meetbot-fedmsg-activity || [https://github.com/fedora-infra/fedora-stats-tools/blob/develop/meetbot-fedmsg-activity.py meetbot-fedmsg-activity.py] || jinja2 template that creates links to meetbot activities for each subproject || Python || Metrics
|-
| statscache || [https://github.com/fedora-infra/statscache github.com/fedora-infra/statscache] || A daemon to build and keep highly-available fedmsg statistics || Python/REST API || Hubs, Metrics, Storytelling
|-
| wordcloudbot || [https://github.com/decause/wordcloudbot github.com/decause/wordcloudbot] || Create pretty wordclouds from IRC meeting logs || Python ||Storytelling, Metrics
|}
=== Other ===
These are other tools in our toolbox that are worth checking out for various uses and purposes.
{|
! Project !! Source !! Description !! Stack !! Interest Area
|-
| 5 Things In Fedora This Week (5tftw) || [https://fedoramagazine.org/5tftw-2015-10-30/ Final Product], [https://www.piratepad.ca/p/5tftw Contributions] || Weekly series by the Fedora [[Project Leader]] to sum up five things going on in Fedora community shared via the Fedora Magazine. CommOps team can contribute to this by finding the "things" happening in Fedora, collecting one URL for the topic, and writing a maximum of five sentences describing it. || N/A ||Storytelling, Wiki
|-
| OSAS/rh-events || https://github.com/OSAS/rh-events || Repo with data for Red Hat conference and talk attendance. Useful for plotting events in our own calendar and keeping track of what's happening in the open source community. || N/A || Messaging, Storytelling
|}


== Fedora Program Management and Schedule Track ==
[[Category:Fedora special-interest groups|Python SIG]]
* [https://fedorapeople.org/groups/schedule/f-23/f-23-all-tasks.html Fedora 23 Tasks]
* [https://fedorapeople.org/groups/schedule/f-23/f-23-elections.html Fedora 23 Elections]
* [https://fedorapeople.org/groups/schedule/f-23/f-23-marketing-tasks.html Fedora 23 Marketing Team Tasks]
* [https://fedorapeople.org/groups/schedule/f-23/f-23-ambassadors-tasks.html Fedora 23 Ambassadors Team Tasks]
* [https://fedorapeople.org/groups/schedule/f-23/f-23-design-tasks.html Fedora 23 Design Team Tasks]
* [https://fedorapeople.org/groups/schedule/f-23/f-23-devel-tasks.html Fedora 23 Development Team Tasks]
* [https://fedorapeople.org/groups/schedule/f-23/f-23-docs-tasks.html Fedora 23 Docs Team Tasks]
* [https://fedorapeople.org/groups/schedule/f-23/f-23-fpl.html Fedora 23 FPL]
* [https://fedorapeople.org/groups/schedule/f-23/f-23-infrastructure.html Fedora 23 Infrastructure Freezes]
* [https://fedorapeople.org/groups/schedule/f-23/f-23-key-tasks.html Fedora 23 Key Tasks & Milestones]
* [https://fedorapeople.org/groups/schedule/f-23/f-23-pm-tasks.html Fedora 23 Project Management Tasks]
* [https://fedorapeople.org/groups/schedule/f-23/f-23-pr.html Fedora 23 Media/ PR]
* [https://fedorapeople.org/groups/schedule/f-23/f-23-quality-tasks.html Fedora 23 Quality Tasks]
* [https://fedorapeople.org/groups/schedule/f-23/f-23-releng-tasks.html Fedora 23 Releng Team Tasks]
* [https://fedorapeople.org/groups/schedule/f-23/f-23-spins-tasks.html Fedora 23 Spins SIG Tasks]
* [https://fedorapeople.org/groups/schedule/f-23/f-23-trans-tasks.html Fedora 23 Translation Tasks]
* [https://fedorapeople.org/groups/schedule/f-23/f-23-web-tasks.html Fedora 23 Web Team Tasks]

Latest revision as of 11:40, 14 September 2016

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

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:

  • pyjamas - Python-to-JavaScript compiler, implemented in Python
  • shedskin - Python to C++ compiler (for a subset of Python with "implicit types")


Important Links