soc/intel/xeon_sp/cpx: Fix PCU device IDs
[coreboot.git] / Documentation / contributing / gsoc.md
blob3ed62c216ea3874deef62c05b31aa75960f3dfd2
1 # Google Summer of Code
3 ## Organization admins
5 The *organization admins* are managing the GSoC program for the coreboot
6 organization.
8 The organization admins are:
10   * Felix Singer (primary)
11   * Martin Roth
12   * David Hendricks
15 ## Contacts
17 If you are interested in participating in GSoC as a contributor or mentor,
18 please have a look at our [community forums] and reach out to us. Working closely
19 with the community is highly encouraged, as we've seen that our most successful
20 contributors are generally very involved.
23 ## Why work on coreboot for GSoC?
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.
29   * coreboot has a worldwide developer and user base.
31   * We are a very passionate team, so you will interact directly with the
32     project initiators and project leaders.
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.
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.
44 ## Collection of official GSoC guides & documents
46   * [Timeline][GSoC Timeline]
48   * [Roles and Responsibilities][GSoC Roles and Responsibilities]
50   * [Contributor Guide][GSoC Contributor Guide]
52   * [Contributor Advice][GSoC Contributor Advice]
54   * [Mentor Guide][GSoC Mentor Guide]
56   * [FAQ][GSoC FAQ]
58   * [Rules][GSoC Rules]
60   * [Glossary][GSoC Glossary]
62   * [Organization Admin Tips][GSoC Organization Admin Tips]
65 ## Contributor requirements & commitments
67 Google Summer of Code is a significant time commitment for you. Medium-sized
68 projects are estimated to take 175 hours, while large-sized projects are
69 estimated to take 350 hours. Depending on the project size, this means we
70 expect you to work roughly half-time or full-time on your project during the
71 three months of coding. We expect to be able to see this level of effort in the
72 results.
74 The standard program duration is 12 weeks and in consultation with the mentor
75 it can be extended up to 22 weeks. Please keep in mind that the actual number
76 of hours you spend on the project highly depends on your skills and previous
77 experience.
79 Make sure that your schedule (exams, courses, day job) gives you a sufficient
80 amount of spare time. If this is not the case, then you should not apply.
83 ### Before applying
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.
90   * You accept our [Code of Conduct] and [Language style].
92   * Demonstrate that you can work with the coreboot codebase.
94     * Look over some of the development processes guidelines: [Getting started],
95       [Tutorial], [Flashing firmware tutorial] and [Coding style].
97     * Download, build and boot coreboot in QEMU or on real hardware. Please email
98       your serial output results to the [mailing list].
100     * Look through some patches on Gerrit to get an understanding of the review
101       process and common issues.
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.
108 ### During the program
110   * To pass and to be paid by Google requires that you meet certain milestones.
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.
117     * You must have made progress and committed significant code before the
118       mid-term point and by the final.
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.
125   * You must be active in the community on IRC and the [mailing list].
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.
134 We don't expect our contributors to be experts in our problem domain, but we
135 don't want you to fail because some basic misunderstanding was in your way of
136 completing the task.
139 ## Projects
141 There are many development tasks available in coreboot. We prepared some ideas
142 for Summer of Code projects. These are projects that we think can be managed in
143 the timeline of GSoC, and they cover areas where coreboot is trying to reach
144 new users and new use cases.
146 Of course your application does not have to be based on any of the ideas listed.
147 It is entirely possible that you have a great idea that we just didn't think of
148 yet. Please let us know!
150 The blog posts related to previous GSoC projects might give some insights to
151 what it is like to be a coreboot GSoC contributor.
154 ## coreboot Summer of Code Application
156 coreboot welcomes contributors from all backgrounds and levels of experience.
158 Your application should include a complete project proposal. You should
159 document that you have the knowledge and the ability to complete your proposed
160 project. This may require a little research and understanding of coreboot prior
161 to sending your application. The community and coreboot project mentors are your
162 best resource in fleshing out your project ideas and helping with a project
163 timeline. We recommend that you get feedback and recommendations on your
164 proposal before the application deadline.
166 Please complete the standard GSoC application and project proposal. Provide the
167 following information as part of your application. Make sure to provide multiple
168 ways of communicating in case your equipment (such as a laptop) is lost,
169 damaged, or stolen, or in case of a natural disaster that disrupts internet
170 service. You risk automatically failing if your mentor cannot contact you and if
171 you cannot provide updates according to GSoC deadlines.
173 **Personal Information**
175   * Name
177   * Email and contact options (IRC, Matrix, …)
179   * Phone number (optional, but recommended)
181   * Timezone, Usual working hours (UTC)
183   * School / University, Degree Program, expected graduation date
185   * Short bio / Overview of your background
187   * What are your other time commitments? Do you have a job, classes, vacations?
188     When and how long?
190 **Software experience**
192 If applicable, please provide the following information:
194   * Portfolio, Website, blog, microblog, Github, Gitlab, ...
196   * Links to one or more patches submitted
198   * Links to posts on the [mailing list] with the serial output of your build.
200   * Please comment on your software and firmware experience.
202   * Have you contributed to an open source project? Which one? What was your
203     experience?
205   * What was your experience while building and running coreboot? Did you have
206     problems?
208 **Your project**
210   * Provide an overview of your project (in your own words).
212   * Provide a breakdown of your project in small specific weekly goals. Think
213     about the potential timeline.
215   * How will you accomplish this goal? What is your working style?
217   * Explain what risks or potential problems your project might experience.
219   * What would you expect as a minimum level of success?
221   * Do you have a stretch goal?
223 **Other**
225   * Resume (optional)
228 ### Advice on how to apply
230   * [GSoC Contributor Guide]
232   * The Drupal project has a great page on how to write an GSoC application.
234   * Secrets for GSoC success: [2]
237 ## Mentors
239 Each accepted project will have at least one mentor. We will match mentors and
240 contributors based on the project and experience level. If possible, we also
241 will try to match their time zones.
243 Mentors are expected to stay in frequent contact with the contributor and
244 provide guidance such as code reviews, pointers to useful documentation, etc.
245 This should generally be a time commitment of several hours per week.
247 Some projects might have more than one mentor, who can serve as a backup. They
248 are expected to coordinate with each other and a contributor on a regular basis,
249 and keep track of the contributor process. They should be able to take over
250 mentoring duty if one of the mentors is unavailable (vacations, sickness,
251 emergencies).
254 ### Volunteering to be a mentor
256 If you'd like to volunteer to be a mentor, please read the [GSoC Mentor Guide].
257 This will give you a better idea of expectations, and where to go for help.
258 After that, contact Org Admins (see coreboot contacts section above).
260 The following coreboot developers have volunteered to be GSoC 2022 mentors.
261 Please stop by in our community forums and say hi to them and ask them
262 questions.
264   * Tim Wawrzynczak
265   * Raul Rangel
266   * Ron Minnich
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