diff options
Diffstat (limited to 'Documentation/contributing')
-rw-r--r-- | Documentation/contributing/gsoc.md | 249 |
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 |