Summer of Code Application Guidance

Introduction

First of all, please engage with the mentors and other community members on our mailing lists and IRC! Participating in a community is an essential part of open-source development. We understand that it can be intimidating if you are not experienced, but we’ve all been there and will do our best to welcome you and show you the ropes.

Project Ideas

We have an project ideas page that lists project ideas suggested by our mentors. You may submit any project proposal at all that is related to open-source C#/F#/.NET development, however we can only accept proposals for which we have a mentor available with relevant expertise. Ideas listed on our ideas page already have mentors who are able and willing to mentor them.

Do not cut-and-paste the text from our project ideas page in your application. We know full well what the text there is. Instead, explain to us your take on the problem, like “I could implement this using this and that”, “I would need to research these areas”, “I might need help sorting this out”, etc.

Applying

Remember that many people will apply to work on the Summer of Code and we cannot accept them all. Keep in mind that those of us evaluating your application do not know you, we do not know what kind of experience you have, we do not know what you have done in the past, and we have to pick the best people suited for a particular task.

Hence, it is very important that you tell us in your application why you should be considered to implement a particular project. Your proposal is a pitch for why we should pick you for a particular project. Use this opportunity to demonstrate your enthusiasm, your understanding of the topic and your ability to research and plan.

Your proposal should explain why you are interested in the idea/project, your plan to implement it, and any relevant background experience. You must also state that this project will be your primary project for the Summer of Code period and you will not have any concurrent internships or other work. Examples of existing open-source contributions, such as links to pull requests you have made, are helpful, but not required.

We especially want to see:

  • A concrete list of goals/deliverables for the time period.
  • A rough estimate of the steps it will take to complete your project.
  • A timeline showing how long you believe each step will take.

Remember that multiple people may apply for the same project, and we cannot accept multiple people for each project, even if they are amazing and we really want to work with all of them. However, you may apply multiple times for different projects, which gives us more flexibility when picking students and projects.

The student manual is also an excellent source of advice for writing a good proposal.

Make sure you get your application in by the deadline, which is shown on the Summer of Code website. Don’t leave it till the last minute!

Ground Rules

This must be your primary project for the duration of the Summer of Code coding period, and you should expect to put in put in the amount of work that you would for a full-time job. You should not have another internship or job during this time. The only default exception to this rule is examinations and other academic requirements.

Language: Code must be written in the same language as the host of the project:

  • Mono VM extensions in C
  • Tools extensions in C#
  • APIs in C#
  • etc.

Licensing: All of the code submitted must be contributed under the terms of the MIT License.

Acceptance criteria: The results must be maintainable and clean. If the code works as advertised but its a quick hack or something we would have to rewrite from scratch, we would not accept the project as completed.

We would rather have a maintainable, clean and incomplete piece of code that we could extend than a complete but unmaintainable piece of code. We strongly encourage students to submit their code as a series of pull requests that can be reviewed and merged over the course of the summer.

Contacting the Mono Team

If you have questions or suggestions that you want to make in real-time and talk to a member of the team, please join us on IRC on the server “irc.gnome.org” in channel “#monosoc”, “#monodev” or the “#mono” channel. Various mentors and students from past years are usually there and can answer some quick questions about the program and about Mono.

Our Gitter IM channels for mono and monodevelop are also a great place to chat to developers and students.

The mailing lists are a very important communication channel, students should use them to get more information and feedback about ideas and proposals. Community engagement is essential for a successful Summer of Code, so get involved!

For any questions you may have about the program itself and to talk to the Mono GSoC admin, you can use soc@xamarin.com.

Mailing Lists

http://lists.dot.net/mailman/listinfo/mono-devel-list A mailing list dedicated to discussions about developing Mono itself, such as development of the runtime, class libraries, and related Mono projects.

http://lists.dot.net/mailman/listinfo/monodevelop-devel-list Discussion on the development/implementation of MonoDevelop.

A complete breakdown of all Mono mailing lists is available at Mailing Lists.