This page coordinates the [[http://code.google.com/soc/|Google Summer of Code]] projects involving Python and mentored by the Python Software Foundation (PSF) in 2009.

The 2009 PSF SoC coordinator is ArcRiley <arcriley@gmail.com>. Contact him if you have any questions. 

= Prospective Students =

If you are a student interested in working on core Python development or on a project that helps the Python community, we'd love to have you apply to the Python Software Foundation for this year's Google Summer of Code.

You should join the [[http://mail.python.org/mailman/listinfo/soc2009-general|soc2009-general]] mailing list and take a look at the Project Ideas section below. If any interest you, feel free to contact the proposer for details. You can also discuss your own project ideas with the people mentioned or talk about them on the soc2009-general mailing list. Some of us also hang out on #gsoc-python on freenode.

Students should read [[SummerOfCode/Expectations]] to understand what is expected of them.

= Project Ideas =
These are project ideas proposed by mentors grouped roughly on the type of work it entails.  Use the provided links for each for more information and contact the mentors interested in it.

'''Note:'''  This list of project ideas is still being expanded; check back regularly!

||<tablestyle="border: 1px solid #000; width:100%;">'''Summary'''||'''Useful skills and experience'''||'''Contact'''||
||||||<style="color:#366D9C;font-size:140%;font-weight:bold;border-bottom: 1px solid #000;border-top: 1px solid #000"> Core Python ||
||<style="border-bottom:1px dotted #000;"> Improve the [[2to3]] tool for better Python 3 migration ||<style="border-bottom:1px dotted #000;"> Python, Python3 ||<style="border-bottom:1px dotted #000;"> BenjaminPeterson ||
||<style="border-bottom:1px dotted #000;"> 3to2 tool for backporting Py3 code ||<style="border-bottom:1px dotted #000;"> Python, Python3 ||<style="border-bottom:1px dotted #000;"> BenjaminPeterson ||
||<style="border-bottom:1px dotted #000;"> Extend subprocess module ||<style="border-bottom:1px dotted #000;"> Python ||<style="border-bottom:1px dotted #000;"> TitusBrown ||
||<style="border-bottom:1px dotted #000;"> Provide nose wrapper for core Python test framework  ||<style="border-bottom:1px dotted #000;"> Python ||<style="border-bottom:1px dotted #000;"> TitusBrown ||
||<style="border-bottom:1px dotted #000;"> Improve C and Python test coverage for core  ||<style="border-bottom:1px dotted #000;"> C, Python ||<style="border-bottom:1px dotted #000;"> TitusBrown ||
||<style="border-bottom:1px dotted #000;"> Implement branch coverage recording for CPython  ||<style="border-bottom:1px dotted #000;"> C, Python ||<style="border-bottom:1px dotted #000;"> TitusBrown ||
||<style="border-bottom:1px dotted #000;"> Helper Python core development tools  ||<style="border-bottom:1px dotted #000;"> Python, dev tools ||<style="border-bottom:1px dotted #000;"> [[mailto:aafshar@gmail.com|Ali Afshar]], DanielDiniz  ||
||||||<style="color:#366D9C;font-size:140%;font-weight:bold;border-bottom: 1px solid #000;border-top: 1px solid #000"> Development ||
||<style="border-bottom:1px dotted #000;"> [[http://lists.idyll.org/pipermail/testing-in-python/2009-March/001277.html|Buildbot replacement]] ||<style="border-bottom:1px dotted #000;"> Python, Buildbot ||<style="border-bottom:1px dotted #000;"> TitusBrown ||
||<style="border-bottom:1px dotted #000;"> Distutils test framework using PYPI. See [[http://tarekziade.wordpress.com/2009/02/08/a-distutils-regression-test-system/|this page]] ||<style="border-bottom:1px dotted #000;"> Python, Buildbot ||<style="border-bottom:1px dotted #000;">  [[mailto:ziade.tarek@gmail.com|Tarek Ziadé]] ||
||<style="border-bottom:1px dotted #000;"> Build a keyring library for Python. See [[http://tarekziade.wordpress.com/2009/03/27/pycon-hallway-session-1-a-keyring-library-for-python/|this page]] ||<style="border-bottom:1px dotted #000;"> Python ||<style="border-bottom:1px dotted #000;">  [[mailto:ziade.tarek@gmail.com|Tarek Ziadé]] ||
||<style="border-bottom:1px dotted #000;"> [[http://cython.org|Cython]] has a list of [[http://wiki.cython.org/codeprojects|potential projects]]||<style="border-bottom:1px dotted #000;"> Python, C ||<style="border-bottom:1px dotted #000;"> [[http://cython.org/#community|CythonTeam]] ||
||<style="border-bottom:1px dotted #000;"> [[http://sphinx.pocoo.org|Sphinx]] has a list of [[http://bitbucket.org/birkenfeld/sphinx/wiki/SoC|potential projects]] as well -- contact #pocoo on freenode ||<style="border-bottom:1px dotted #000;"> Python, potentially HTML/JavaScript ||<style="border-bottom:1px dotted #000;"> GeorgBrandl ||
||<style="border-bottom:1px dotted #000;"> [[http://stackless.com|Stackless Python]] has a list of [[http://stackless.com/wiki/SummerOfCode2009|potential projects]]||<style="border-bottom:1px dotted #000;"> Python, C, C++ ||<style="border-bottom:1px dotted #000;"> [[mailto:richard.m.tew@gmail.com?subject=GSOC%202009%20Stackless|Richard Tew]] ||
||<style="border-bottom:1px dotted #000;"> [[http://codespeak.net/pypy|PyPy]] also has a list of [[http://codespeak.net/pypy/trunk/pypy/doc/project-ideas.txt|potential projects]]||<style="border-bottom:1px dotted #000;"> Python ||<style="border-bottom:1px dotted #000;"> [[mailto:pypy-dev@codespeak.net|the PyPy team]] ||
||<style="border-bottom:1px dotted #000;"> [[http://www.roundup-tracker.org/cgi-bin/moin.cgi/SummerOfCodeIdeas|Roundup]] / [[http://bugs.python.org|Python Tracker]] enhancements||<style="border-bottom:1px dotted #000;"> Python ||<style="border-bottom:1px dotted #000;"> [[https://lists.sourceforge.net/lists/listinfo/roundup-devel|Stefan Seefeld]], MartinvonLoewis, DanielDiniz ||
||||||<style="color:#366D9C;font-size:140%;font-weight:bold;border-bottom: 1px solid #000;border-top: 1px solid #000"> Education ||
||<style="border-bottom:1px dotted #000;"> Porting [[http://code.google.com/p/crunchy|Crunchy]] to Python 3.0 ||<style="border-bottom:1px dotted #000;"> Python, Python3, WSGI ||<style="border-bottom:1px dotted #000;"> [[mailto:andre.roberge@gmail.com|André Roberge]] ||
||<style="border-bottom:1px dotted #000;"> Adapting [[http://rur-ple.sourceforge.net|RUR-PLE]] as a [[http://code.google.com/p/crunchy|Crunchy]] plugin ||<style="border-bottom:1px dotted #000;"> Python,  javascript ||<style="border-bottom:1px dotted #000;"> [[mailto:andre.roberge@gmail.com|André Roberge]] ||
||||||<style="color:#366D9C;font-size:140%;font-weight:bold;border-bottom: 1px solid #000;border-top: 1px solid #000"> Gaming ||
||<style="border-bottom:1px dotted #000;"> Accelerated soy.fields physics in [[http://www.pysoy.org/|PySoy]] ||<style="border-bottom:1px dotted #000;"> Python, C, [[http://liboil.freedesktop.org/wiki/|liboil]], [[http://opende.sourceforge.net/|ODE]] ||<style="border-bottom:1px dotted #000;"> EricStein ||
||<style="border-bottom:1px dotted #000;"> Character animation in [[http://www.pysoy.org/|PySoy]] using GLSL ||<style="border-bottom:1px dotted #000;"> Python, C, OpenGL, [[http://en.wikipedia.org/wiki/Quaternion|Quaternion math]] ||<style="border-bottom:1px dotted #000;"> BlaisePascal ||
||<style="border-bottom:1px dotted #000;"> [[http://www.pysoy.org/ticket/976|Programmable rendering models]] in [[http://www.pysoy.org/|PySoy]] ||<style="border-bottom:1px dotted #000;"> Python, C, OpenGL ||<style="border-bottom:1px dotted #000;"> ArcRiley ||
||<style="border-bottom:1px dotted #000;"> [[http://www.pysoy.org/ticket/977|Themeable widgets with inheritance]] in [[http://www.pysoy.org/|PySoy]] ||<style="border-bottom:1px dotted #000;"> Python, C, OpenGL ||<style="border-bottom:1px dotted #000;"> ArcRiley ||
||<style="border-bottom:1px dotted #000;"> [[http://pygame.org/|PyGame]] has their own [[http://pygame.org/wiki/gsoc2009ideas|ideas page]] ||<style="border-bottom:1px dotted #000;"> Python, C (varied) ||<style="border-bottom:1px dotted #000;"> [[http://pygame.org/wiki/gsoc2009ideas|PyGame]] ||
||||||<style="color:#366D9C;font-size:140%;font-weight:bold;border-bottom: 1px solid #000;border-top: 1px solid #000"> !MathSci ||
||<style="border-bottom:1px dotted #000;"> Extracting [[http://matplotlib.sf.net/|matplotlib]]'s mathematical expression renderer a standalone project ||<style="border-bottom:1px dotted #000;"> Python ||<style="border-bottom:1px dotted #000;"> MplMentors ||
||<style="border-bottom:1px dotted #000;"> Adding an html5/canvas backend to [[http://matplotlib.sf.net/|matplotlib]] ||<style="border-bottom:1px dotted #000;"> Python, HTML5 ||<style="border-bottom:1px dotted #000;"> MplMentors ||
||<style="border-bottom:1px dotted #000;"> [[http://numpy.scipy.org/|NumPy]] and [[http://www.scipy.org/|SciPy]] has a list of [[http://projects.scipy.org/scipy/wiki/SummerofCodeIdeas|project ideas]] ||<style="border-bottom:1px dotted #000;"> Python ||<style="border-bottom:1px dotted #000;">  [[http://www.scipy.org/Developer_Zone|SciPy/NumPy team]] ||
||<style="border-bottom:1px dotted #000;"> [[http://code.google.com/p/sympy/|SymPy]] has a list of [[http://wiki.sympy.org/wiki/GSoC2009Ideas|project ideas]] ||<style="border-bottom:1px dotted #000;"> Python ||<style="border-bottom:1px dotted #000;">  [[http://code.google.com/p/sympy/|SymPy team]] ||
||||||<style="color:#366D9C;font-size:140%;font-weight:bold;border-bottom: 1px solid #000;border-top: 1px solid #000"> Networking ||
||<style="border-bottom:1px dotted #000;"> [[http://gajim.org/|Gajim]] propose some [[http://trac.gajim.org/wiki/GajimGSOC|ideas]].||<style="border-bottom:1px dotted #000;"> Python, XMPP ||<style="border-bottom:1px dotted #000;"> [[mailto:asterix@lagaule.org|Yann Leboulanger]] ||
||||||<style="color:#366D9C;font-size:140%;font-weight:bold;border-bottom: 1px solid #000;border-top: 1px solid #000"> Testing ||
||<style="border-bottom:1px dotted #000;"> Port figleaf to Python3 ||<style="border-bottom:1px dotted #000;"> Python3 ||<style="border-bottom:1px dotted #000;"> TitusBrown ||
||<style="border-bottom:1px dotted #000;"> Integrate C coverage reporting into figleaf ||<style="border-bottom:1px dotted #000;"> C, Python ||<style="border-bottom:1px dotted #000;"> TitusBrown ||
||<style="border-bottom:1px dotted #000;"> [[http://pythoscope.org/|Pythoscope]] enhancements ||<style="border-bottom:1px dotted #000;"> Python, unit testing, code generation ||<style="border-bottom:1px dotted #000;"> [[mailto:constant.beta@gmail.com|Michał Kwiatkowski]] ||
||||||<style="color:#366D9C;font-size:140%;font-weight:bold;border-bottom: 1px solid #000;border-top: 1px solid #000"> Miscellaneous ||
||<style="border-bottom:1px dotted #000;"> Build suite of migration tools to help people move projects between forges like DrProject, SourceForge, Google Code, Trac, etc. ||<style="border-bottom:1px dotted #000;"> Python, Trac/SF/GC ||<style="border-bottom:1px dotted #000;">  [[mailto:bwinton@latte.ca|Blake Winton]], [[mailto:gvwilson@cs.toronto.edu|Greg Wilson]], [[mailto:wolever@cs.toronto.edu|David Wolever]] ||
||<style="border-bottom:1px dotted #000;"> [[http://plastex.sourceforge.net|Plastex]] performance improvements and [[http://www.w3.org/Math/|MathML]] extensions (so we can finally retire Latex2Html) ||<style="border-bottom:1px dotted #000;"> Python, LaTeX ||<style="border-bottom:1px dotted #000;">  [[Kevin.Smith@sixquickrun.com|Kevin D. Smith]], [[mailto:gvwilson@cs.toronto.edu|Greg Wilson]] ||
||<style="border-bottom:1px dotted #000;"> Extend [[http://code.google.com/p/pysync/|Pysync]] version control abstraction library to work with more VCS's and provide write access as well as read||<style="border-bottom:1px dotted #000;"> Python, C, CVS/SVN/P4/Git/Hg/Bzr/etc. ||<style="border-bottom:1px dotted #000;">  [[mailto:ad@cs.toronto.edu|Aran Donohue]], [[mailto:cjmuise@cs.toronto.edu|Christian Muise]], [[mailto:gvwilson@cs.toronto.edu|Greg Wilson]] ||
||<style="border-bottom:1px dotted #000;"> Build Python into BOINC/GridRepublic ||<style="border-bottom:1px dotted #000;"> Python ||<style="border-bottom:1px dotted #000;"> TitusBrown ||
||<style="border-bottom:1px dotted #000;"> Work on [[http://pygr.org/|pygr]] ||<style="border-bottom:1px dotted #000;"> Python, bioinformatics ||<style="border-bottom:1px dotted #000;"> TitusBrown ||
||<style="border-bottom:1px dotted #000;"> [[http://allmydata.org/trac/tahoe/wiki/GSoCIdeas|Tahoe]]: implement the storage server protocol over HTTP -- [[http://allmydata.org/trac/tahoe/ticket/510|details]] ||<style="border-bottom:1px dotted #000;"> Python, networking, HTTP ||<style="border-bottom:1px dotted #000;"> TahoeMentors ||
||<style="border-bottom:1px dotted #000;"> [[http://allmydata.org/trac/tahoe/wiki/GSoCIdeas|Tahoe]]: FUSE integration -- [[http://allmydata.org/trac/tahoe/ticket/36|details]], [[http://allmydata.org/pipermail/tahoe-dev/2008-November/000885.html|more details]] ||<style="border-bottom:1px dotted #000;"> Python, filesystems, Linux kernel ||<style="border-bottom:1px dotted #000;"> TahoeMentors ||
||<style="border-bottom:1px dotted #000;"> [[http://allmydata.org/trac/tahoe/wiki/GSoCIdeas|Tahoe]]: visualization -- real-time and historical filesystem performance, and social network ||<style="border-bottom:1px dotted #000;"> Python, GUI ||<style="border-bottom:1px dotted #000;"> TahoeMentors ||
||<style="border-bottom:1px dotted #000;"> [[http://allmydata.org/trac/tahoe/wiki/GSoCIdeas|Tahoe]]: DVCS-on-Tahoe -- integrate a DVCS such as Mercurial to make an indestructible "repository in the clouds" -- [[http://allmydata.org/trac/tahoe/ticket/663|details]] ||<style="border-bottom:1px dotted #000;"> Python, DVCS ||<style="border-bottom:1px dotted #000;"> TahoeMentors ||
||<style="border-bottom:1px dotted #000;"> [[http://allmydata.org/trac/tahoe/wiki/GSoCIdeas|Tahoe]]: semi-private keys -- prove the security of a new form of public key cryptography, and implement it -- [[http://allmydata.org/trac/tahoe/ticket/217|details]]||<style="border-bottom:1px dotted #000;"> Python, mathematics ||<style="border-bottom:1px dotted #000;"> TahoeMentors ||




= Mentor Instructions =
We've setup [[/Incoming]] for mentors who find the above table intimidating to edit.  You can still brave editing this page, just be careful.

= Previous years =

 * [[SummerOfCode/2005]]
 * [[SummerOfCode/2006]]
 * [[SummerOfCode/2007]]
 * [[SummerOfCode/2008]]

= Related Organizations =

 * [[http://code.djangoproject.com/wiki/SummerOfCode2009|Django Software Foundation]]
 * [[http://www.selenic.com/mercurial/wiki/index.cgi/SummerOfCode|Mercurial]]
 * [[http://code.google.com/p/soc/wiki/GSoC2009Ideas|Melange]]
 * [[http://socghop.appspot.com/document/show/user/matthewwilkes/pil2009|Plone Foundation]]
 * [[http://scons.org/wiki/GSoC2009|SCons]]
 * [[http://code.google.com/p/swig-gsoc/wiki/ProjectIdeas|SWIG]]
 * [[http://wiki.blender.org/index.php/Dev:Ref/GSoC/2009/Ideas|Blender]]
 * [[http://moinmo.in/GoogleSoc2009/InitialProjectIdeas|MoinMoin]]
 * [[http://www.review-board.org/wiki/Summer_of_Code_Ideas|Review Board]]
 * [[http://allmydata.org/trac/tahoe/wiki/GSoCIdeas|Tahoe LAFS]]