share
Stack OverflowWhat are good open source projects in Python for which I can be a contributor?
[+63] [24] Ray Vega
[2008-09-22 20:51:21]
[ python open-source polls projects ]
[ http://stackoverflow.com/questions/117561/what-are-good-open-source-projects-in-python-for-which-i-can-be-a-contributor ] [DELETED]

I have been learning and using Python for the last several months and I am interested in getting involved in open source projects using Python so as to be exposed to good implementations of Python in the real world.

What are some that folks recommend?

(If at all possible please try to provide just one project per answer.)

[+40] [2008-09-22 21:19:38] Glyph

Twisted [1].

  1. No shortage of things to do. We have hundreds of open tickets [2], with difficulty that varies from trivial fixes to substantial new systems.
  2. Extensive feedback on every contribution [3]. You'll learn a lot about how to write better code.
  3. Thousands of unit tests, run on lots of different platforms [4]. You'll learn how to write good tests and keep your code portable.

And of course, being an open source project we're always looking for more contributors, so we will be happy to have any help you would be inclined to give.

[1] http://twistedmatrix.com/
[2] http://twistedmatrix.com/trac/report/13
[3] http://twistedmatrix.com/trac/wiki/ReviewProcess
[4] http://buildbot.twistedmatrix.com/boxes-supported

(4) What about mentors - someone to guide newbies? - Cristian Ciupitu
(3) #twisted on freenode is full of people who are willing to help people if they want to contribute patches. - Jerub
(2) Hmm, Twisted sounds interesting! I'm thinking about trying to contribute something to a Python project. Twisted, Mercurial and TortoiseHg are my candidates right now. - Johan
(2) You just made me want to get involved. - mizipzor
1
[+19] [2008-09-22 20:54:38] Khoth

More important than any specific project is that you should contribute to a project that you personally want to use.


(3) I agree even though I asked the question. But being somewhat of a Python newbie, I guess I am more interested in seeing really good code for Python than making contributions myself. Perhaps the question should be re-worded? - Ray Vega
I agree, but there lies a problem of technically capable enough to contribute to my loved project. - Yugal Jindle
2
[+11] [2010-09-08 09:30:27] mizipzor

alt text

I recently stumbled across the OpenHatch [1] site which is specifically built to index bug trackers and list "bitesize" issues:

Bite-size [ˈbaɪtˌsaɪz], adj. Good for newcomers; relatively easy and rewarding to fix.

It lists quite a few Python projects [2].

The mentor system [3], while I havent used it, seems quite super as well. People add themselves to a list, specifying which languages and/or projects they are willing to mentor as well as a location (optional).

[1] https://openhatch.org/
[2] https://openhatch.org/search/?q=&toughness=bitesize&language=Python
[3] https://openhatch.org/people/?q=can_mentor%3a%22Python%22

3
[+6] [2008-09-22 21:03:14] Andy Lester

Use whichever makes sense to you. You won't be much help to the project if it's not one that you personally care about.


4
[+6] [2008-09-22 23:46:03] Tony Meyer

As others have said, pick something that you're interested in and is implemented in Python.

Python [1] itself is a good open-source project. You might think it's too difficult to start with, but you don't have to dive right into the C code - there are lots of places you can start that involve looking at the library modules, for example. Reviewing patches [2] and adding documentation where it is missing is a great start.

[1] http://python.org
[2] http://bugs.python.org/

5
[+6] [2010-09-08 08:35:02] Constantin

Another directory of Python open source projects [1]. Can be sorted by freshness, popularity, etc. Also has project metrics and historical overview.

[1] http://www.ohloh.net/p?sort=users&q=language%3Apython

6
[+4] [2008-09-22 20:57:13] Bill Turner

Now that Django has hit 1.0, I'm sure they're getting more help, but they always will need help with tickets, and extending the system with plugins and whatnot. Some info here [1].

[1] http://code.djangoproject.com/#Gettinginvolved

7
[+4] [2008-10-04 06:23:15] mm2001

Zope [1] has all the benefits of working on Twisted (per another excellent post) but a wider set of problems to choose from. You'll also get exposure to i18n [2] issues and other aspects of large scale, broadly used software.

It has the added benefit of quite a bit of paid work available in the community once you've proven yourself.

[1] http://www.zope.org/
[2] http://en.wikipedia.org/wiki/I18n

8
[+4] [2008-11-20 17:43:13] Ray Vega

Pythoscope [1]

To create an easily customizable and extensible open source tool that will automatically, or semi-automatically, generate unit tests for legacy systems written in Python.

[1] http://pythoscope.org/

9
[+4] [2009-12-19 16:41:55] Jason Baker

There are also a couple of projects being advertised on stackoverflow [1].

[1] http://meta.stackoverflow.com/questions/31913/open-source-advertising-sidebar-1h-2010

10
[+4] [2010-09-08 08:51:07] Johan

Mercurial [1] or its GUI frontend TortoiseHg [2]. (Yes, I know that is two projects, but they are pretty tightly coupled together.) Seems Mercurial has gathered some momentum now. These are two projects I have been thinking about contributing to myself.

They are both mostly written in Python (some core things and windows shell extension in C/C++).

[1] http://mercurial.selenic.com
[2] http://tortoisehg.bitbucket.org/

11
[+3] [2008-09-22 23:51:06] phloopy

Pick a project that coincides with your personal interests. You'll be immensely more productive, and more likely to help long term, if you're personally invested in the project's target audience.


12
[+3] [2009-12-19 16:35:57] Jason Baker

http://stackoverflow.com/questions/1933329/good-python-open-source-to-learn/1933352#1933352

If you're coming from a functional programming background, pysistence [1] may be a good place to look.

Full disclosure: I wrote it.

[1] http://packages.python.org/pysistence/

13
[+3] [2010-09-08 07:52:01] Johnsyweb

A quick search on a popular search engine starting with 'G' and rhyming with "schmoogle" revealed a handy list at http://pythonsource.com/ .


14
[+2] [2008-09-22 20:58:36] Clokey

As already commented it depends on your personal tastes. However, there are a number of tools that use Python as an extension mechanism and these may start you off in the right direction and to see whether you want to participate around a particular project.

As an example Inkscape [1] and Blender [2] both have python extension API's

M

[1] http://inkscape.org
[2] http://blender.org

15
[+2] [2008-09-22 21:21:59] idontwanttortfm

Twisted [1] is a popular networking engine that's used in a number of other open source projects (Zenoss, Zope, etc). If you're at all interested in networking then you should check it out.

[1] http://twistedmatrix.com/trac/

16
[+2] [2008-09-23 02:14:05] Ignacio Vazquez-Abrams

The Fedora Project uses Python in a number of projects located at their Fedora Hosted site.


17
[+2] [2008-09-23 12:59:08] crystalattice

If you want to get involved in game design with an relatively easy learning curve, try OpenRPG [1]. It's built with wxPython so you get standard GUI design practice along with networking and other areas that will benefit you later on.

[1] http://www.openrpg.com/

18
[+2] [2009-03-15 20:06:23] Macke

BuildBot [1] could always use help

[1] http://buildbot.net

19
[+1] [2008-09-22 20:54:23] Mike Elkins

How about SCons. It's a great build tool. See www.scons.org [1]

[1] http://www.scons.org

20
[+1] [2008-09-22 21:29:20] INS

wxPython [1] is one of the best way to create GUI using python. I guess all you need to do is subscribe to their mailing lists [2].

[1] http://wxpython.org/
[2] http://wxpython.org/maillist.php

21
[+1] [2008-09-22 23:47:54] Tony Meyer

SpamBayes [1] is looking for people interested in helping. If you're interested in mathematics/statistics, or email, or developing/testing Windows applications, those are all areas that could use help.

[1] http://spambayes.org

22
[+1] [2008-09-23 18:24:41] Nate

WikidPad [1] is a pretty cool PC-based, personal Wiki written in Python.

[1] http://groups.google.com/group/wikidpad/web/home

23
[0] [2008-09-22 21:24:20] torial

Pythoncard [1] -- they seem to have slowed in terms of active development and would probably welcome some help. Their code base uses various design patters, so it is a good way to get exposure to those.

[1] http://pythoncard.sourceforge.net/

24