GSoC Rules

This is the Mono Project's SoC rules page. For project ideas and other information, please see our overview page.

Table of contents

Ground Rules

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

  • GCC extensions in C
  • 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 Apache 2.0 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.

Applying, suggestions

First off, be sure to sign up to our mailing lists and drop by IRC, we're happy to welcome all inquiries. Check the Contacting section below.

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. From the hundreds of requests that we got last year, in the first few hours we discarded all of the one-line requests that read something like:

I would like to work on project XYZ

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.

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.
  • Multiple people may apply for the same project, tell us why you are the best candidate.

During the summer of code, we will invest significant resources from existing team members to guide you, answer your questions, and help you architect the software in a way that is acceptable to Mono and that has a high chance of having an impact on the larger community of Mono users.

Your proposal should be submitted in the Google Summer of Code site. You should read the rules and timeline at Applications start April 22nd.

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 "" 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.

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

Mailing Lists A mailing list dedicated to discussions about developing Mono itself, such as development of the runtime, class libraries, and related Mono projects. Discussion on the development/implementation of MonoDevelop.

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