Checklist for FreeBSD Summer of Code Students
This page collects ideas and best practices for students participating in Summer of Code 2024 with the FreeBSD project.
We get a lot of excellent proposals to work on FreeBSD during Google Summer of Code. Although not all of the following are required, they can help make your proposal stand out:
- Find a mentor. You'll need to work closely with a FreeBSD developer who is willing to act as your GSoC mentor. If you can find a developer who is willing to commit to helping you, that is a big boost. Every year, we have to reject a handful of proposals because we cannot locate a suitable mentor.
Read the mailing lists. By reading the mailing lists, you'll learn a lot about how the FreeBSD project operates and what kind of people participate.
Talk about your idea in public. The firstname.lastname@example.org mailing list, in particular, is an open forum where many people share ideas about how to improve FreeBSD. By discussing your idea there, you can get feedback that will help improve your proposal and demonstrate that there is interest in your idea.
- Contribute. Send us a patch! Even if it's not accepted, your patch will show us that you use FreeBSD, have the coding skills we need from GSoC students, and have looked at the source code. If you plan to work on the ports collection, port some software to get familiar with the infrastructure.
Community Bonding Period
After applications are accepted, there is a period of a few weeks before the official start of coding on May 29. We require our participants to take a few simple steps during this period in preparation.
- Talk to your mentor. You'll have to work out with your mentor how you'll communicate (email, IRC, etc), how often (some mentors require daily progress reports, for example), and how you'll work together.
You'll be automatically added to the soc-students@ mailing list. You may also want to join either the freebsd-hackers@ or freebsd-current@ mailing lists to keep in touch with what the larger FreeBSD development community is doing. Your mentor may also want you to join one or more lists specific to the area of your project (net@, embedded@).
- Choose a name you would like to use for your @freebsd.org email address. Your email address will be set up to forward to whichever email address we already have for you - most webmail providers (e.g. GMail) will then let you add that as a second email address so that you can also send email from the address.
Get a wiki account so you can create a page about your project and keep it updated. When choosing your wiki username, please stick to the FirstnameLastname format. Your mentor can help you set up access, and they will need to add you to the ContributorsGroup before you can edit pages. If you would prefer to use another site to post updates about your progress, that is OK, but you should still update the wiki with a basic project description and provide links to any blogs or external websites where you will post updates.
- Provide the above two pieces of information (your FreeBSD.org username and your wiki username) to both your mentor and soc-admins@
Once you have a wiki account, follow the link for your project at SummerOfCode2023Projects and create a new page, based on the template provided at SummerOfCode/ProjectTemplate (click "edit" and copy/paste the source code). If desired, create a short page about yourself at FirstnameLastname (using the same name as your Wiki username) - this isn't required but is recommended as it helps people find out about you.
- If you use IRC, ask your mentor about relevant FreeBSD related IRC channels for your project (IRC is not a requirement, some mentors and some students find IRC very helpful, and others do not).
- Post milestones for your project, in consultation with your mentor, on your project page on the FreeBSD wiki.
- Talk with your mentor about any background reading of code, papers, or book chapters that will help provide context for your project.
- Especially if you are new to FreeBSD, expect to spend some time before the official start of coding becoming more familiar with FreeBSD: Install it, use it, perform a full system upgrade from source code. Projects based on the src tree will usually be developed on the top of the FreeBSD tree (known as "HEAD"), upgrading to this (or at least preparing a VM running head) is recommended.
First Third of the Summer, before mid-term evaluations
If your school schedule does not permit you to start on May 29, you should carefully negotiate this with your mentor. If necessary, you can raise any concerns with email@example.com.
- Talk to your mentor regularly. Most mentors expect some interaction every day via email or IRC. Make sure your mentor knows what you are doing and what problems you are having. Consider having video calls with Google Hangouts or the like on a regular basis.
Submit weekly status reports to the soc-status@FreeBSD.org mailing list.
- Find others in the community aside from your mentor who are working in similar areas or have a particular interest in your project. If beneficial, send them a short introductory mail about yourself and your project. They may be able to suggest things that you haven't yet considered.
- Push code regularly. You should commit early and often. You are working in an experimental Summer of Code repository or branch of the tree and it is not expected that code in this is in a finished state. On days where you are actively working on your project it is hoped that you'll submit at least once a day. Many students will make hundreds of commits over the course of the summer.
- Keep your wiki page up to date whenever necessary.
Rest of the Summer, after first mid-term evaluation
- Submit information about your project to a FreeBSD Developer Status Report to raise awareness of your work. Submissions are expected to be works in progress, so no matter where you are in the process if you passed the mid-term evaluation you are more than far enough along to warrant publicizing your project in the status reports.
- Update your wiki page about the milestones for your project and which ones will be completed by the end of the summer.
In consultation with your mentor, possibly send a mail to hackers@ or another FreeBSD mailing list to announce some details of what you have accomplished so far to a larger audience. In any case, continue to submit weekly reports to the soc-status@FreeBSD.org mailing list.
- Talk to your mentor about the eventual suitability of your project for submission to the main FreeBSD repository. Is the code on track to eventually be included in a future release of FreeBSD?
- Before the final evaluations are due, update your wiki page with a final summary of what you accomplished over the summer.
After the summer
- You are encouraged to continue working on FreeBSD in any way you can. Talk with your mentor and others in the community about follow-up projects if you are interested in doing more work or becoming a full FreeBSD committer.
- If your project addressed an idea from the FreeBSD ideas list, mail your mentor and the maintainers about adding a link to your work and/or removing this idea completely if the project is completed and there would be no need for others to do this.