summaryrefslogtreecommitdiff
path: root/Documentation/contributing/gsoc.md
diff options
context:
space:
mode:
Diffstat (limited to 'Documentation/contributing/gsoc.md')
-rw-r--r--Documentation/contributing/gsoc.md249
1 files changed, 249 insertions, 0 deletions
diff --git a/Documentation/contributing/gsoc.md b/Documentation/contributing/gsoc.md
new file mode 100644
index 0000000000..049c80aea8
--- /dev/null
+++ b/Documentation/contributing/gsoc.md
@@ -0,0 +1,249 @@
+# Google Summer of Code
+
+
+## Contacts
+
+If you are interested in participating in GSoC as a contributor or mentor,
+please have a look at our [community forums] and reach out to us. Working closely
+with the community is highly encouraged, as we've seen that our most successful
+contributors are generally very involved.
+
+Felix Singer, David Hendricks and Martin Roth are the coreboot GSoC admins for
+2022. Please feel free to reach out to them directly if you have any questions.
+
+
+## Why work on coreboot for GSoC?
+
+ * coreboot offers you the opportunity to work with various architectures
+ right on the iron. coreboot supports both current and older silicon for a
+ wide variety of chips and technologies.
+
+ * coreboot has a worldwide developer and user base.
+
+ * We are a very passionate team, so you will interact directly with the
+ project initiators and project leaders.
+
+ * We have a large, helpful community. coreboot has some extremely talented
+ and helpful experts in firmware involved in the project. They are ready to
+ assist and mentor contributors participating in GSoC.
+
+ * One of the last areas where open source software is not common is firmware.
+ Running proprietary firmware can have severe effects on user's freedom and
+ security. coreboot has a mission to change that by providing a common
+ framework for initial hardware initialization and you can help us succeed.
+
+
+## Contributor requirements & commitments
+
+Google Summer of Code is a significant time commitment for you. Medium-sized
+projects are estimated to take 175 hours, while large-sized projects are
+estimated to take 350 hours. Depending on the project size, this means we
+expect you to work roughly half-time or full-time on your project during the
+three months of coding. We expect to be able to see this level of effort in the
+results.
+
+The standard program duration is 12 weeks and in consultation with the mentor
+it can be extended up to 22 weeks. Please keep in mind that the actual number
+of hours you spend on the project highly depends on your skills and previous
+experience.
+
+Make sure that your schedule (exams, courses, day job) gives you a sufficient
+amount of spare time. If this is not the case, then you should not apply.
+
+
+### Before applying
+
+ * Join the [mailing list] and our other [community forums]. Introduce yourself
+ and mention that you are a prospective GSoC contributor. Ask questions and
+ discuss the project that you are considering. Community involvement is a
+ key component of coreboot development.
+
+ * You accept our [Code of Conduct] and [Language style].
+
+ * Demonstrate that you can work with the coreboot codebase.
+
+ * Look over some of the development processes guidelines: [Getting started],
+ [Tutorial], [Flashing firmware tutorial] and [Coding style].
+
+ * Download, build and boot coreboot in QEMU or on real hardware. Please email
+ your serial output results to the [mailing list].
+
+ * Look through some patches on Gerrit to get an understanding of the review
+ process and common issues.
+
+ * Get signed up for Gerrit and push at least one patch to Gerrit for review.
+ Check Easy projects or ask for simple tasks on the [mailing list] or on our
+ other [community forums] if you need ideas.
+
+
+### During the program
+
+ * To pass and to be paid by Google requires that you meet certain milestones.
+
+ * First, you must be in good standing with the community before the official
+ start of the program. We expect you to post some design emails to the
+ [mailing list], and get feedback on them, both before applying, and during
+ the "community bonding period" between acceptance and official start.
+
+ * You must have made progress and committed significant code before the
+ mid-term point and by the final.
+
+ * We require that accepted contributors to maintain a blog, where you are
+ expected to write about your project *WEEKLY*. This is a way to measure
+ progress and for the community at large to be able to help you. GSoC is
+ *NOT* a private contract between your mentor and you.
+
+ * You must be active in the community on IRC and the [mailing list].
+
+ * You are expected to work on development publicly, and to push commits to the
+ project on a regular basis. Depending on the project and what your mentor
+ agrees to, these can be published directly to the project or to a public
+ repository such as Gitlab or Github. If you are not publishing directly to
+ the project codebase, be aware that we do not want large dumps of code that
+ need to be rushed to meet the mid-term and final goals.
+
+We don't expect our contributors to be experts in our problem domain, but we
+don't want you to fail because some basic misunderstanding was in your way of
+completing the task.
+
+
+## Projects
+
+There are many development tasks available in coreboot. We prepared some ideas
+for Summer of Code projects. These are projects that we think can be managed in
+the timeline of GSoC, and they cover areas where coreboot is trying to reach
+new users and new use cases.
+
+Of course your application does not have to be based on any of the ideas listed.
+It is entirely possible that you have a great idea that we just didn't think of
+yet. Please let us know!
+
+The blog posts related to previous GSoC projects might give some insights to
+what it is like to be a coreboot GSoC contributor.
+
+
+## coreboot Summer of Code Application
+
+coreboot welcomes contributors from all backgrounds and levels of experience.
+
+Your application should include a complete project proposal. You should
+document that you have the knowledge and the ability to complete your proposed
+project. This may require a little research and understanding of coreboot prior
+to sending your application. The community and coreboot project mentors are your
+best resource in fleshing out your project ideas and helping with a project
+timeline. We recommend that you get feedback and recommendations on your
+proposal before the application deadline.
+
+Please complete the standard GSoC application and project proposal. Provide the
+following information as part of your application. Make sure to provide multiple
+ways of communicating in case your equipment (such as a laptop) is lost,
+damaged, or stolen, or in case of a natural disaster that disrupts internet
+service. You risk automatically failing if your mentor cannot contact you and if
+you cannot provide updates according to GSoC deadlines.
+
+** Personal Information **
+
+ * Name
+
+ * Email and contact options (IRC, Matrix, …)
+
+ * Phone number (optional, but recommended)
+
+ * Timezone, Usual working hours (UTC)
+
+ * School / University, Degree Program, expected graduation date
+
+ * Short bio / Overview of your background
+
+ * What are your other time commitments? Do you have a job, classes, vacations?
+ When and how long?
+
+** Software experience **
+
+If applicable, please provide the following information:
+
+ * Portfolio, Website, blog, microblog, Github, Gitlab, ...
+
+ * Links to one or more patches submitted
+
+ * Links to posts on the [mailing list] with the serial output of your build.
+
+ * Please comment on your software and firmware experience.
+
+ * Have you contributed to an open source project? Which one? What was your
+ experience?
+
+ * What was your experience while building and running coreboot? Did you have
+ problems?
+
+** Your project **
+
+ * Provide an overview of your project (in your own words).
+
+ * Provide a breakdown of your project in small specific weekly goals. Think
+ about the potential timeline.
+
+ * How will you accomplish this goal? What is your working style?
+
+ * Explain what risks or potential problems your project might experience.
+
+ * What would you expect as a minimum level of success?
+
+ * Do you have a stretch goal?
+
+** Other **
+
+ * Resume (optional)
+
+
+### Advice on how to apply
+
+ * [GSoC Contributor Guide]
+
+ * The Drupal project has a great page on how to write an GSoC application.
+
+ * Secrets for GSoC success: [2]
+
+
+## Mentors
+
+Each accepted project will have at least one mentor. We will match mentors and
+contributors based on the project and experience level. If possible, we also
+will try to match their time zones.
+
+Mentors are expected to stay in frequent contact with the contributor and
+provide guidance such as code reviews, pointers to useful documentation, etc.
+This should generally be a time commitment of several hours per week.
+
+Some projects might have more than one mentor, who can serve as a backup. They
+are expected to coordinate with each other and a contributor on a regular basis,
+and keep track of the contributor process. They should be able to take over
+mentoring duty if one of the mentors is unavailable (vacations, sickness,
+emergencies).
+
+
+### Volunteering to be a mentor
+
+If you'd like to volunteer to be a mentor, please read the [GSoC Mentor Guide].
+This will give you a better idea of expectations, and where to go for help.
+After that, contact Org Admins (see coreboot contacts section above).
+
+The following coreboot developers have volunteered to be GSoC 2022 mentors.
+Please stop by in our community forums and say hi to them and ask them
+questions.
+
+ * Tim Wawrzynczak
+ * Raul Rangel
+ * Ron Minnich
+
+
+[community forums]: https://doc.coreboot.org/community/forums.html
+[mailing list]: https://mail.coreboot.org/postorius/lists/coreboot.coreboot.org
+[Getting started]: https://doc.coreboot.org/getting_started/index.html
+[Tutorial]: https://doc.coreboot.org/tutorial/index.html
+[Flashing firmware tutorial]: https://doc.coreboot.org/flash_tutorial/index.html
+[Coding style]: https://doc.coreboot.org/contributing/coding_style.html
+[Code of Conduct]: https://doc.coreboot.org/community/code_of_conduct.html
+[Language style]: https://doc.coreboot.org/community/language_style.html
+[GSoC Contributor Guide]: https://google.github.io/gsocguides/student
+[GSoC Mentor Guide]: https://google.github.io/gsocguides/mentor