xref: /aosp_15_r20/external/coreboot/Documentation/contributing/gsoc.md (revision b9411a12aaaa7e1e6a6fb7c5e057f44ee179a49c)
1# Google Summer of Code
2
3## Organization admins
4
5The *organization admins* are managing the GSoC program for the coreboot
6organization.
7
8The organization admins are:
9
10  * Felix Singer (primary)
11  * Martin Roth
12  * David Hendricks
13
14
15## Contacts
16
17If you are interested in participating in GSoC as a contributor or mentor,
18please have a look at our [community forums] and reach out to us. Working closely
19with the community is highly encouraged, as we've seen that our most successful
20contributors are generally very involved.
21
22
23## Why work on coreboot for GSoC?
24
25  * coreboot offers you the opportunity to work with various architectures
26    right on the iron. coreboot supports both current and older silicon for a
27    wide variety of chips and technologies.
28
29  * coreboot has a worldwide developer and user base.
30
31  * We are a very passionate team, so you will interact directly with the
32    project initiators and project leaders.
33
34  * We have a large, helpful community. coreboot has some extremely talented
35    and helpful experts in firmware involved in the project. They are ready to
36    assist and mentor contributors participating in GSoC.
37
38  * One of the last areas where open source software is not common is firmware.
39    Running proprietary firmware can have severe effects on user's freedom and
40    security. coreboot has a mission to change that by providing a common
41    framework for initial hardware initialization and you can help us succeed.
42
43
44## Collection of official GSoC guides & documents
45
46  * [Timeline][GSoC Timeline]
47
48  * [Roles and Responsibilities][GSoC Roles and Responsibilities]
49
50  * [Contributor Guide][GSoC Contributor Guide]
51
52  * [Contributor Advice][GSoC Contributor Advice]
53
54  * [Mentor Guide][GSoC Mentor Guide]
55
56  * [FAQ][GSoC FAQ]
57
58  * [Rules][GSoC Rules]
59
60  * [Glossary][GSoC Glossary]
61
62  * [Organization Admin Tips][GSoC Organization Admin Tips]
63
64
65## Contributor requirements & commitments
66
67Google Summer of Code is a significant time commitment for you. Medium-sized
68projects are estimated to take 175 hours, while large-sized projects are
69estimated to take 350 hours. Depending on the project size, this means we
70expect you to work roughly half-time or full-time on your project during the
71three months of coding. We expect to be able to see this level of effort in the
72results.
73
74The standard program duration is 12 weeks and in consultation with the mentor
75it can be extended up to 22 weeks. Please keep in mind that the actual number
76of hours you spend on the project highly depends on your skills and previous
77experience.
78
79Make sure that your schedule (exams, courses, day job) gives you a sufficient
80amount of spare time. If this is not the case, then you should not apply.
81
82
83### Before applying
84
85  * Join the [mailing list] and our other [community forums]. Introduce yourself
86    and mention that you are a prospective GSoC contributor. Ask questions and
87    discuss the project that you are considering. Community involvement is a
88    key component of coreboot development.
89
90  * You accept our [Code of Conduct] and [Language style].
91
92  * Demonstrate that you can work with the coreboot codebase.
93
94    * Look over some of the development processes guidelines: [Getting started],
95      [Tutorial], [Flashing firmware tutorial] and [Coding style].
96
97    * Download, build and boot coreboot in QEMU or on real hardware. Please email
98      your serial output results to the [mailing list].
99
100    * Look through some patches on Gerrit to get an understanding of the review
101      process and common issues.
102
103    * Get signed up for Gerrit and push at least one patch to Gerrit for review.
104      Check the [small project list][Project ideas] or ask for simple tasks on
105      the [mailing list] or on our other [community forums] if you need ideas.
106
107
108### During the program
109
110  * To pass and to be paid by Google requires that you meet certain milestones.
111
112    * First, you must be in good standing with the community before the official
113      start of the program. We expect you to post some design emails to the
114      [mailing list], and get feedback on them, both before applying, and during
115      the "community bonding period" between acceptance and official start.
116
117    * You must have made progress and committed significant code before the
118      mid-term point and by the final.
119
120    * We require that accepted contributors to maintain a blog, where you are
121      expected to write about your project *WEEKLY*. This is a way to measure
122      progress and for the community at large to be able to help you. GSoC is
123      *NOT* a private contract between your mentor and you.
124
125  * You must be active in the community on IRC and the [mailing list].
126
127  * You are expected to work on development publicly, and to push commits to the
128    project on a regular basis. Depending on the project and what your mentor
129    agrees to, these can be published directly to the project or to a public
130    repository such as Gitlab or Github. If you are not publishing directly to
131    the project codebase, be aware that we do not want large dumps of code that
132    need to be rushed to meet the mid-term and final goals.
133
134We don't expect our contributors to be experts in our problem domain, but we
135don't want you to fail because some basic misunderstanding was in your way of
136completing the task.
137
138
139## Projects
140
141There are many development tasks available in coreboot. We prepared some ideas
142for Summer of Code projects. These are projects that we think can be managed in
143the timeline of GSoC, and they cover areas where coreboot is trying to reach
144new users and new use cases.
145
146Of course your application does not have to be based on any of the ideas listed.
147It is entirely possible that you have a great idea that we just didn't think of
148yet. Please let us know!
149
150The blog posts related to previous GSoC projects might give some insights to
151what it is like to be a coreboot GSoC contributor.
152
153
154## coreboot Summer of Code Application
155
156coreboot welcomes contributors from all backgrounds and levels of experience.
157
158Your application should include a complete project proposal. You should
159document that you have the knowledge and the ability to complete your proposed
160project. This may require a little research and understanding of coreboot prior
161to sending your application. The community and coreboot project mentors are your
162best resource in fleshing out your project ideas and helping with a project
163timeline. We recommend that you get feedback and recommendations on your
164proposal before the application deadline.
165
166Please complete the standard GSoC application and project proposal. Provide the
167following information as part of your application. Make sure to provide multiple
168ways of communicating in case your equipment (such as a laptop) is lost,
169damaged, or stolen, or in case of a natural disaster that disrupts internet
170service. You risk automatically failing if your mentor cannot contact you and if
171you cannot provide updates according to GSoC deadlines.
172
173**Personal Information**
174
175  * Name
176
177  * Email and contact options (IRC, Matrix, …)
178
179  * Phone number (optional, but recommended)
180
181  * Timezone, Usual working hours (UTC)
182
183  * School / University, Degree Program, expected graduation date
184
185  * Short bio / Overview of your background
186
187  * What are your other time commitments? Do you have a job, classes, vacations?
188    When and how long?
189
190**Software experience**
191
192If applicable, please provide the following information:
193
194  * Portfolio, Website, blog, microblog, Github, Gitlab, ...
195
196  * Links to one or more patches submitted
197
198  * Links to posts on the [mailing list] with the serial output of your build.
199
200  * Please comment on your software and firmware experience.
201
202  * Have you contributed to an open source project? Which one? What was your
203    experience?
204
205  * What was your experience while building and running coreboot? Did you have
206    problems?
207
208**Your project**
209
210  * Provide an overview of your project (in your own words).
211
212  * Provide a breakdown of your project in small specific weekly goals. Think
213    about the potential timeline.
214
215  * How will you accomplish this goal? What is your working style?
216
217  * Explain what risks or potential problems your project might experience.
218
219  * What would you expect as a minimum level of success?
220
221  * Do you have a stretch goal?
222
223**Other**
224
225  * Resume (optional)
226
227
228### Advice on how to apply
229
230  * [GSoC Contributor Guide]
231
232  * The Drupal project has a great page on how to write an GSoC application.
233
234  * Secrets for GSoC success: [2]
235
236
237## Mentors
238
239Each accepted project will have at least one mentor. We will match mentors and
240contributors based on the project and experience level. If possible, we also
241will try to match their time zones.
242
243Mentors are expected to stay in frequent contact with the contributor and
244provide guidance such as code reviews, pointers to useful documentation, etc.
245This should generally be a time commitment of several hours per week.
246
247Some projects might have more than one mentor, who can serve as a backup. They
248are expected to coordinate with each other and a contributor on a regular basis,
249and keep track of the contributor process. They should be able to take over
250mentoring duty if one of the mentors is unavailable (vacations, sickness,
251emergencies).
252
253
254### Volunteering to be a mentor
255
256If you'd like to volunteer to be a mentor, please read the [GSoC Mentor Guide].
257This will give you a better idea of expectations, and where to go for help.
258After that, contact Org Admins (see coreboot contacts section above).
259
260The following coreboot developers have volunteered to be GSoC 2022 mentors.
261Please stop by in our community forums and say hi to them and ask them
262questions.
263
264  * Tim Wawrzynczak
265  * Raul Rangel
266  * Ron Minnich
267
268
269[community forums]: ../community/forums.md
270[mailing list]: https://mail.coreboot.org/postorius/lists/coreboot.coreboot.org
271[Getting started]: ../getting_started/index.md
272[Tutorial]: ../tutorial/index.md
273[Flashing firmware tutorial]: ../tutorial/flashing_firmware/index.md
274[Coding style]: coding_style.md
275[Code of Conduct]: ../community/code_of_conduct.md
276[Language style]: ../community/language_style.md
277[Project ideas]: project_ideas.md
278[GSoC Timeline]: https://developers.google.com/open-source/gsoc/timeline
279[GSoC Roles and Responsibilities]: https://developers.google.com/open-source/gsoc/help/responsibilities
280[GSoC Contributor Guide]: https://google.github.io/gsocguides/student
281[GSoC Contributor Advice]: https://developers.google.com/open-source/gsoc/help/student-advice
282[GSoC Mentor Guide]: https://google.github.io/gsocguides/mentor
283[GSoC FAQ]: https://developers.google.com/open-source/gsoc/faq
284[GSoC Rules]: https://summerofcode.withgoogle.com/rules
285[GSoC Glossary]: https://developers.google.com/open-source/gsoc/resources/glossary
286[GSoC Organization Admin Tips]: https://developers.google.com/open-source/gsoc/help/oa-tips
287