Git's application to Google's Summer of Code 2007.
The application questions can be found on code.google.com.
Shawn Pearce has volunteered to submit the application and serve as our group's primary contact.
What is your Organization's Name?
Git Development Community
What is your Organization's Homepage?
Describe your organization.
As Git approaches its second anniversary, it is now the revision control system of choice for many of the largest and most successful open source projects, including the Linux kernel and at least five Google Summer of Code 2006 projects: One Laptop Per Child, Tangram, The Wine Project, XMMS2, and X.org. Many more are considering Git adoption.
This achievement is the product of the Git development community, a loose-knit team of developers, technical writers, and end users with a passion for high quality open-source development.
Why is your organization applying to participate in GSoC 2007? What do you hope to gain by participating?
Prior Google Summer of Code projects have asked for several new features in Git, including submodule support (needed by Gentoo) and a native Windows port (needed by KDE and The Mozilla Foundation). The future development and maintenance of these and other features depends on the community's continued ability to attract new developers.
The Git community has a proven track record of attracting, mentoring and retaining new contributors, thanks to a welcoming community, active IRC and mailing list, and developers and leadership with excellent communication skills and a dedication to explaining architecture and providing feedback on contributions. We are therefore optimistic about our ability to take advantage of GSoC 2007 to attract more long-term contributors.
Did your organization participate in GSoC 2005 or 2006? If so, please summarize your involvement and the successes and failures of your student projects.
If your organization has not previously participated in GSoC, have you applied in the past? If so, for what year(s)?
No; this is our first application.
Who will your organization administrator be? Please include Google Account information.
Shawn O. Pearce (have Google Account)
What license does your project use?
GPL (GNU Public License)
What is the URL for your ideas page?
What is the main development mailing list for your organization?
What is the main IRC channel for your organization?
Does your organization have an application template you would like to see students use? If so, please provide it now.
Who will be your backup organization administrator? Please include Google Account information.
Martin Langhoff (have Google Account)
Who will your mentors be? Please include Google Account Information.
- Petr Baudis (have Google Account)
- Brian Gernhardt (have Google Account)
- Martin Langhoff (have Google Account)
- Shawn O. Pearce (have Google Account)
- Johannes Schindelin (have Google Account)
- Sam Vilain (have Google Account)
- Martin Waitz (have Google Account)
What criteria did you use to select these individuals as mentors? Please be as specific as possible.
All mentors volunteered for the specific project(s) that they could contribute the most to. All mentors are active contributers within the Git development community.
Active contributers are defined to be those who have submitted and have had accepted into a shipped release a substantial amount of new code or fixes within the last 4 months (Nov 2006 - Mar 2007). Substantial amount of code is defined to be equal in size (or larger) to what might be reasonably expected of a student working on a Google Summer of Code project.
All mentors are well known within the Git development community for their accomplishments and contributions.
What is your plan for dealing with disappearing students?
Every reasonable effort will be made to maintain contact with students and ensure they are making progress throughout the summer.
In the unfortunate event that a student abandons and does not complete his/her GSoC project, the Git community will try to pick up and continue the work without the student. This is one reason why we will require frequent publishing of project materials to repo.or.cz.
Students will also be strongly encouraged by our mentors to work through their project by completing several small milestones throughout the summer. This strategy of project organization will help students to feel like they have accomplished something useful sooner, as well as making it easier for the Git community to pick up an abandoned project.
What is your plan for dealing with disappearing mentors?
Most of our suggested projects have more than one mentor available. As a community we plan on making sure all of the active projects have at least two mentors willing and available to work with the student, reducing the likelihood that the project becomes mentor-less during GSoC '07.
In the unlikely event that a mentor disappears during the summer another mentor will be arranged to step in. The Git community has plenty of good people within that would be more than happy to help a student finish their project. It is very probable that the replacement mentor would already be familiar with the student and the project, as many community members routinely review code and discussions on the mailing list.
What steps will you take to encourage students to interact with your project's community before, during and after the program?
Students will be required to join the main development mailing list, and post their patches for discussion to same. All current contributors already do this, so students will see the experienced hands performing the same tasks, and will therefore be able to learn by example. We feel that the list based discussions will help the students to become, and stay, a member of the community.
Mailing list traffic is currently around 80-100 messages per day, and is focused on Git feature development. Keeping current by at least skimming list messages is an important part of the Git development process.
Students will be required to post their work as a Git repository on repo.or.cz (an open community hosting server), or on another publicly available server, so that their work is immediately available for everyone to review, experiment with, and make use of. Nearly all members of the Git community post their active work to repo.or.cz or similar servers.
Mentors will also exchange email with students on at least a weekly basis, if not more frequently. Students will be required to provide weekly progress reports back to their mentors, so that the mentors are aware of the tasks that a student might be stuck on or are having difficulty with. The intent of the progress reports is to give the mentors a chance to provide suggestions for problem resolution back to the student.
Frequent email and IRC interaction with mentors and other developers will be strongly encouraged by suggesting students post their questions and ideas to the mailing list, and to discuss them on #git. Most developers either already hold "office-hours" on IRC, or have agreed to do so during GSoC '07.
What will you do to ensure that your accepted students stick with the project after GSoC concludes?
GSoC will be a good introduction to Git (both the technology and the community) for the students. Once they know Git and are "hooked", we are confident they won't easily leave the arena, for a number of reasons.
The interaction between community members has always been very friendly, and new people are have always been warmly welcomed; especially those with interesting new ideas and viewpoints. Jovial working friendships have been easily formed between the community members, and students will most certainly also be warmly welcomed into that environment.
Hacking on Git is an excellent way to hone one's development skills, as the community is filled with a wide range of very experienced programmers who are ready and willing to help a contributor improve the quality of their work. We hope that students will realize this unique opportunity during GSoC and continue staying active within the community even after GSoC '07 completes.