GSoC contributors FAQ

GSoC contributor Application FAQ

  • Where do I apply?
    First of all, join our forum, mailing list and/or IRC channel to discuss your idea. You are encouraged to share a draft of your proposal so developers can discuss it with you and help you improve on it.
    When it's ready, submit your application Google Summer of Code site
  • What ideas can I apply for?
    Check out our List of Google Summer of Code Ideas
  • What info do you need in the application?
    See the Application Template below for reference
  • What if I still have questions?
    Send a message to the Haiku Mailing List or contact Haiku's Google Summer of Code administrator (PulkoMandy).
  • Are there any other requirements?
    Applying students are required to submit a code contribution to our change review tool. This could either be a task marked easy, TODO commented in code, code style cleanup, or any other unlisted task. Submitting code that relates to your project will indicate a higher level of understanding and ability. The number and difficulty of resolved issues will be taken into consideration when evaluating your application. It is suggested to add the "gsoc2023" hashtag to your submissions, as this facilitates finding them in the future.
  • Why do you want a code contribution before I'm accepted?
    This serves several purposes. It displays that you have the most basic skills that are required: building Haiku from source, running Haiku either natively or inside a VM, and using tools for online collaboration (bug tracker, mailing lists, IRC, etc.). More importantly, it provides our mentors with some insight into each individual candidate's motivation and abilities. It is an opportunity for you, the candidate, to showcase yourself and to convince us that you are indeed the right person for the job.
    The code contribution is a very important part of your application. Candidates who did not submit one, or submit something insufficient, will not be accepted into the program.
  • Should I use Haiku R1/beta4 or a newer nightly image?
    As a developer, you will be working with the most recent code and test your changes on the development branches, so a nightly image is recommended. You can use either a 32bit or 64bit one, as you prefer. Some projects can also be worked on from Linux by cross-compiling and testing your changes in a virtual machine.

Making a Positive Impression

In open source work, communication is the key. You will be working remotely, and will need to communicate with your mentor, and other members of the Haiku community, over the Internet. Show us you're able to work this way and interact with other Haikuers in a productive and efficient way.

  • Submit a patch:
    • that relates to your project
    • is quality code that conforms to our Coding Guidelines
    • feel free to submit more than one patch!
  • Have a positive impact on mailing lists, forums, bug tracker, and other public spaces.
  • Do your homework; show that you have:
    • researched your project
    • an understanding of what needs to be done
    • a proper plan for accomplishing it, which includes quantifiable goals and timelines
  • It is possible to submit an "alternate" proposal for another idea. This provides our mentors with flexibility for choosing the best candidates, rather than the best project ideas, in case one of our ideas turns out to be very popular.

Words of Advice

Reading and following this advice will do wonders for ensuring that your Google Summer of Code experience will be something to be proud of.

  1. Plan your time
    Google Summer of Code has a project duration of 175 or 350 hours depending on the project. The 350 hours projects should usually be handled as a full-time job, and the 175 hours one as a half-time job. Be sure to plan ahead and dedicate some time to Haiku. Make sure you will not be overworked by other commitments (university exams or courses, or working another full-time job in parallel). We ask you to provide a tentative schedule so we can know in advance if your time commitments are reasonable.
  2. Communicate every other day
    The haiku-gsoc mailing list is to be used at all times by you. Provide regular reports. Nothing formal, just one or two lines. It is important for your mentors to have a clear picture of what you are doing, have done, and plan to do. While being self-sufficient is a worthwhile trait, it is not an ideal trait for a Google Summer of Code participant -- Haiku expects you to utilize our mentors, that is why they are there.
  3. Provide code frequently
    There is a saying in open source -- commit often, commit frequently. Take that advice to heart. Smaller patches and code snippets are easier for the mentors to review. It also gives them more chances to suggest better approaches and keep you on target. In turn, this will make you more productive and more likely to succeed! You can put your work in progress changes in our code review tool so your mentor and other developers can help you spot the problems. It is perfectly fine to share non-working code, in fact a lot of the changes listed in the code review tool are in this state and several iterations will be needed to get things right.
  4. When you do not have code, it is even more critical to converse frequently.
    If you aren't coding, what are you doing? How are you moving closer to your goal? What problems are you analyzing? What questions and ideas do you have? Every year, many GSoC contributors get stuck on an issue and spend too much time trying to solve it by themselves, when a mentor would have helped them progress much faster. This isn't a school assignment, we will not fail you for asking too many questions.

Pass or Fail Criteria

As you know, Google Summer of Code has a midterm and a final evaluation points. If you happen to receive a failing mark at either point, you are not paid that portion and your GSoC project comes to an abrupt end. There are two areas that are considered during the evaluation: code output and communication/interactions.

A word of caution -- do not expect to make miracles during the week of mid-term or final evaluations. Instead, expect your mentor to evaluate your progress on the first day of the window.

  1. Code.
    This includes everything from 'commit worthy' patches to all the code (and non-code, such as design documents or pseudo code) leading up to that polished patch. In other words, if for some reason you and your mentor pursue an approach that turns out to be a dead end you will not be punished.
  2. Communication.
    This includes discussions on the haiku-development list, talking with haiku developers on IRC, posting the Milestone Blog/Email Reports.

In other words, you will be writing code and talking with one or more mentors on a daily basis. Anything less will hurt your mid-term and final evaluation! Do not expect to be able to cram days, weeks, or months of work into a shorter period and receive a passing evaluation.

Application Template

This application template has two sections.

  1. A fill-in-the-blank section with basic information.
  2. An open-ended section with suggestions for content to include. Feel free to add more.

(Fill in)

  • Full name:
  • Timezone:
  • Email address:
  • IRC username (oftc.net):
  • Trac username (dev.haiku-os.org):
  • Gerrit changes submitted (review.haiku-os.org):
  • (optional) GitHub (or other public) repository:
  • (optional) emergency contact (please include contact information for someone we can get in touch with if something makes you unable to continue your project and you can't give any news to us):
  • Will you treat Google Summer of Code as full time employment?
  • How many hours per week will you work?
  • List all obligations (and their dates) that may take time away from GSoC (a second job, vacations, classes, ...):
  • Are you using Google Summer of Code to fullfill a university requirement -- internship, class credit, ..? (If so, you need to provide confirmation that your school approves. Remember, Google Summer of Code is a remote software development internship.)
  • How and when did you first heard about Haiku?
  • Did you also apply to other GSoC organizations? If so, which is your order of preference? (this has no impact on the selection process, we use this information only if you are selected as an intern by several of these organizations to decide which one would keep you)
  • Estimated last day of classes/exams:
  • Estimated first day of classes (for most interns, there will be some overlap with the GSoC coding period. This is fine, but we want to check that you have planned your timeline accordingly):

You may want to share early drafts of your proposal with the Haiku developers using the mailing list or forum. This would allow everyone visiting the forum or mailing list to open the document. In this case, it is recommended to remove parts or all of this section, which includes personal information that only needs to be shared with the GSoC mentors (a much smaller group). The open-ended part below is the part that will benefit most from draft reviews. Make sure that the final submission done through the GSoC website does include all the needed information. That one will be shared only with the GSoC mentors.

(Open-ended)

  1. Introduce yourself. (Who you are. Why you chose Haiku. What programming experience you have.)
  2. Project Proposal. (Title. Description. Goals.)
  3. Timeline. Include what you plan to have accomplished by the end of:
    • Community bonding period (May/June)
    • First month of coding (June/July)
    • Second month of coding (July/August)
    • Third month of coding (August/September)
    • After Google Summer of Code
  4. Expectations from Mentors. (What do you expect Haiku's mentors to help you with?)

If you have questions about your application for a Haiku idea, please contact the developers by email to the Haiku development mailing list, the forum, or the IRC channel.

Resources available to students

In addition to the mentor(s) assigned to each GSoC contributor, the following resources will be available where inquiries can be made in order to get assistance during your Google Summer of Code project.

For more information

For more information about general information and eligibility for Google Summer of Code 2023, please check out the following Google resources: