views:

6922

answers:

24

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

A: 

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

Mike Elkins
+13  A: 

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

Khoth
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
+3  A: 

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.

Bill Turner
+2  A: 

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 and Blender both have python extension API's

M

Clokey
+4  A: 

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.

Andy Lester
+24  A: 

Twisted.

  1. No shortage of things to do. We have hundreds of open tickets, with difficulty that varies from trivial fixes to substantial new systems.
  2. Extensive feedback on every contribution. You'll learn a lot about how to write better code.
  3. Thousands of unit tests, run on lots of different platforms. 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.

Glyph
What about mentors - someone to guide newbies?
Cristian Ciupitu
#twisted on freenode is full of people who are willing to help people if they want to contribute patches.
Jerub
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
You just made me want to get involved.
mizipzor
+2  A: 

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

idontwanttortfm
A: 

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

torial
A: 

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

Iulian Şerbănoiu
+4  A: 

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

Python 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 and adding documentation where it is missing is a great start.

Tony Meyer
+1  A: 

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

Tony Meyer
+1  A: 

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.

phloopy
+2  A: 

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

Ignacio Vazquez-Abrams
+1  A: 

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

crystalattice
A: 

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

Nate
+2  A: 

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

mm2001
+3  A: 

Pythoscope

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.

Ray Vega
+1  A: 

BuildBot could always use help

Marcus Lindblom
+1  A: 

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

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

Full disclosure: I wrote it.

Jason Baker
+1  A: 

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

Jason Baker
+1  A: 

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

Johnsyweb
+1  A: 

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

Constantin
+1  A: 

Mercurial or its GUI frontend TortoiseHg. (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++).

Johan
+1  A: 

alt text

I recently stumbled across the OpenHatch 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.

The mentor system, 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).

mizipzor