Google Summer of Code: Guidelines for students
These are some notes all students should read and follow. They are not meant to be carved in stone, but rather as a guide to how we imagine your mentoring should work. In the following, you refers to a student working for MacPorts during GSoC.
Commit early, commit often is a common phrase in Open Source development. In our case, we want you to show your work as early as possible.
- Be honest about your version control experience. No problem if you need an introduction to Subversion, we will arrange that.
- We will give you a branch to work on and expect bite-sized commits for easy review. This helps to give you feedback and it is also important to identify potential problems with your design at an early stage.
- Please do not work the whole day and then push everything out in a single code bomb. Instead, every commit should be self-contained to one task only which should be summarized in the log message.
- Please do not commit additional parts as "while I was at it". Instead, make a commit on its own.
Keep us posted
Always tell your mentor, all mentors or the whole community about:
- What are you currently working on?
- How far have you gotten?
- What issues did you experience?
- How will you overcome them?
If you are going to blog about your task, tell us the URL.
Discuss your tasks with the community. You are working on a project whose result is meant to be incorporated into MacPorts itself. The people in the community are those who are going to use it later, so solicit and appreciate their feedback. Subscribe and participate on the MailingLists and IRC. We are friendly and promise not to bite.
Ask for help. Do not be afraid to ask your mentor or anybody in the community for assistance. It may happen that you don't know what to do next or how to approach the next task.
- Speak to your mentor, that's what he is for.
- Find the best medium to communicate with your mentor (Email, IM, IRC, VoIP, Telephone call?) and schedule together how often you will communicate (daily? weekly? every Monday/Wednesday/Friday?)
- If you lost the communication channel to your mentor, immediately speak to other mentors and tell us about that. Unplanned gaps in communication should not happen and will probably hit your progress.
Merging the Code
By the end of the summer your code should be ready to be merged back into the main development branch. Plan accordingly and prepare some time for the actual merge and a few hours of work through the next week(s) when bug reports from other developers testing your code come in on the mailing lists. We've made this a requirement in 2013 to avoid the code laying around unused on a branch after GSoC where nobody can benefit from it and have had good experience with it so far.