Google Summer of Code
Information about Mercurial's GSoC program.
1. About Mercurial and GSoC
For the last few years, Google has offered a fantastic opportunity for students to help out Open Source software projects in the summer while getting paid for it. It's called Google Summer of Code™, and it provides free software projects a great way of attracting development effort while providing software developers who are still in university with some interesting and useful experiences. Find out more about the Summer of Code (SoC) from their site.
Mercurial is a popular project with many enthusiastic users and a dynamic development community. By participating in GSoC with Mercurial, you'll be exposed to exciting technology and top-notch developers.
2. Notes on applying
Here are some tips on how to apply:
- Get feedback on your proposal! We want to know all about you and your proposal before we have to choose between projects.
Submit a patch! We ask applicants to pick a simple issue from the BugTracker and send a patch for it. This will help demonstrate some of the basic skills you'll need for your summer project (using our tools, reading the code, talking to people, etc.).
3. Getting things done
The primary challenge of GSoC is not technical! Your goal as a GSoC student should be learning how to interact with other developers on a real-world project, and how to develop effectively in a cooperative environment.
- Focus. Working on Mercurial in the summer should be your main activity. Realize that collaborating on software development takes time, and not just the time used to reason about and write the code. This also means that we want you to set some intermediate milestones to be able to keep track of your progress.
- Communicate. In some ways, open source software development is more about communicating than about writing code. Some part of your time will be spent writing code, but a large part of the time spent will go towards explaining the code on mailing lists, asking and answering questions on IRC and in general reasoning about proposed software changes. If you can't do this, you take the risk of not understanding the goals of our project or not being able to explain why your patch is necessary.
- Participate. Developing your own code is only part of the open source experience. You should also be getting involved with discussions on our mailing lists with users and developers, commenting on other code, responding to bug reports, editing the wiki, etc.