This page coordinates the [http://code.google.com/soc/ Google "Summer of Code"] projects involving Python and mentored by the Python Software Foundation (PSF).
Discussion about any Python-related SoC topic should take place on [http://mail.python.org/mailman/listinfo/soc2006 the soc2006 mailing list].
Students: How to submit a proposal
[http://code.google.com/soc/student_signup.html Apply through Google's online form.]
[http://code.google.com/soc/student_step1.html Submit an application.]
The Drupal folks have some good information for students on how you should write your application:
[http://drupal.org/node/59963 Student requirements]
[http://drupal.org/node/59037 HOWTO write an application]
Here is Google's [http://code.google.com/soc/studentfaq.html Student FAQ].
Tips on writing your proposal
Be detailed. Don't say "I want to improve Python's support of XYZ", because that's vague, making it difficult to assess the project's feasibility or the time required. Exactly what changes would you make to improve XYZ support?
Compare with alternative projects. If your project will do task XYZ, look at other existing projects that perform the same task and explain how yours is different or better. (Or you can write a proposal to finish an existing project instead.)
Try to provide a rough timeline. How much time would each change take (a day, a week, six weeks)? What intermediate milestones will there be? (e.g. for a game, you might get an initial graphic display in week 1, write a parser for level definitions in week 2, write a level editor in weeks 3 and 4, etc.)
Get feedback. Post the proposal to a relevant mailing list and ask for comments. Post the proposal to your weblog and see what people think.
Describe your experience. Why are you a good person to work on this project? What skills/interests/knowledge do you have that are applicable?
Suggest a mentor. If you know a developer who would be a good mentor for your project, contact him/her and ask if they're interested. In 2005 and 2006, some interesting projects went unfunded because there was no one in the pool of mentors who felt capable of handling them.
Mentors: How to apply
The mentor's responsibility is to ensure the student makes progress. This could entail coaching them, providing motivation, making sure they aren't stuck, answering technical questions, or pointing the student to the proper resources. However, the mentor is not expected to do work for the student. In order to accomplish this, the mentor is expected to dedicate a couple of hours per week.
[http://code.google.com/soc/mentor_step1.html Apply through Google's online form.]
[http://mail.python.org/pipermail/python-dev/2006-April/063965.html Announcement made to Python-Dev]
[http://code.google.com/soc/mentorfaq.html Mentor FAQ]
Looking at the list of PSF mentors can help you craft your proposal to match their interests.
For 2007, the PSF would like to concentrate on projects that advance PSF projects (CPython and its documentation, Jython and its documentation, the Python web site). The following pages list some ideas:
SimpleTodo -- very small projects.
["CodingProjectIdeas/PythonCore"] -- ideas for the CPython interpreter.