Google Summer of Code 2021
Contents
What is GSOC?
Google Summer of Code is a global program focused on bringing more student developers into open source software development. Students work with an open-source organization on a 3-month programming project during their break from school.
Student's checklist
Choose the area you're most interested in
ReactOS is a large project, it involves many areas of software development - kernel development, graphics, networking, sound, build tools and more. The earlier you know which area you would like to work in, the more time you have for actual coding. You can check the Google Summer of Code 2021 Ideas page for some an inspiration, and feel free to ask mentors for help too.
Reach out to us
Effective communication is a key requirement for a successful project. Our main communication platform is Mattermost, and you are advised to join our Development channel there (there is also a bridged #reactos-dev channel on Freenode’s IRC network)
Ask questions, look for possible mentors and discuss your proposal. Note: proposals which don't have prior discussion with mentors and the team in general have less chances to succeed
Get familiar with the code
Every student new to ReactOS should begin by obtaining the code through our GitHub repository and performing the first build using our build environment. This environment ensures consistent build results, eliminates the need to set up your own toolchain and makes ReactOS one of the easiest operating systems to build.
Creating a fork of the ReactOS repository on GitHub is recommended for most students. This enables the use of branches and pull requests for contributions.
Make a small contribution
Before your application can be accepted, it is expected that you submit a patch proposing a code change to the project, and work through the process of getting it merged into the master branch. Check out the starter-project label on JIRA for ideas, or ask the chat providing your area of interest. You are not required to complete these steps in solitude, and we are happy to help with any part of the process if asked. Please note that while translations, documentation or comment fixes are an easy way to validate your workflow, they do not count towards this requirement.
Go through Development Introduction to get started with your contribution.
Fill out your application
See the Student Application Form below.
Read the documentation
MSDN and plenty of available Windows publications serve as the primary reference for functionality ReactOS seeks to implement. However, there are parts of Windows that are poorly documented or completely undocumented. In these instances, the ReactOS Techwiki may possess descriptions of the data structures or interfaces. If no documentation exists, students may have to conduct their own research and document the results – following project guidelines on respecting intellectual property. Our mentors can help guide this research process.
Our GSoC Adminstrators
Our Potential Mentors
- TBA
Student Application Form
Students apply via the Google Summer of Code web site. Please see the information found there about how GSoC works for students, the timeline, and other details.
General Information
- Full Name
- Languages You Speak
- Timezone
- ReactOS website Account Name
- IRC Nickname on Freenode
Time Commitment
You are required to outline any additional obligations you may have during the summer and how much of your time you will be able to commit to your GSoC project. Failure to do so will result in a rejection of your application.
Proposed Project
Please provide a brief description, in your own words, of the project you are interested in
Proposed Milestones
Please propose milestones that can be used to gauge progress on the project.
Legal Requirements
Students are required to affirm that the following is true. I hereby swear that I have not used nor seen the source code to any version of the Windows operating system nor any Microsoft product that may be related to the proposed project that is under a license incompatible with contribution to ReactOS, including but not limited to the leaked Windows 2000 source code and the Windows Research Kernel.
FAQ
- 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 ReactOS from source, running it either natively or inside a VM, and using tools for online collaboration (GitHub, chat, etc.). More importantly, it provides our mentors with some insight into each individual student's motivation and abilities. It is an opportunity for you, the student, 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.
- What criteria do you use for passing or failing students?
As you know, Google Summer of Code has three monthly evaluation points. If you happen to receive a failing mark at either point, you are not paid that portion and your internship 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.
- 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 the 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.
- Communication. This mostly includes speaking with the team in chat, discussions in GitHub PR reviews and writing blog posts about your progress. (check out posts from our former students)
In other words, you will be writing code and talking with one or more mentors at least a couple times a week. Anything less may 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.
- What is your plan for dealing with disappearing students?
While every effort will be made to select students who are unlikely to disappear, we recognize that unpredictable circumstances are always possible. As such, we will require that all students provide backup contact information that we will verify as a failsafe in case students drop out of contact and are unable to inform us directly. Based on the situation, we will try to work with the student to accommodate any special circumstances that arise to ensure a project’s success, but if a student is unable to complete their project we will contact the GSoC team to consider any necessary actions, including marking a project as failed.
- What is your plan for dealing with disappearing mentors?
While the mentor candidates we have selected are considered highly reliable, we again recognize that life can result in unexpected circumstances. As noted above, the mentor candidates we have selected are knowledgeable in more than just one specific part of Windows NT, and we will encourage students to consult with not just their assigned mentor but also others taking part in the GSoC program. As such, students will always have advisers available to them even if their assigned mentor is unable to continue with the project thanks to the fact that pretty much all our active contributors are wide-coverage developers.
- Besides my mentor, who else is available to help me?
Besides developers not directly involved as mentors, we encourage all of our mentors to interact with students. As such, consider any mentor or developer as a resource to field questions and help as needed.