GSoC

From flashrom
Jump to navigation Jump to search

This wiki is retired

Our website is https://www.flashrom.org, instructions on how to add or update documentation are here

All wiki content available in read-only mode at wiki.flashrom.org

Information and Links

Flashrom is applying for participation in GSoC 2022 (also known as Google Summer of Code). We will update this page in March 2022 once the registration is confirmed.

You are very welcome to look at our list of project ideas in this doc.

If you are interested to propose your own idea for GSoC project, have a look at this template.

How to contact us

If you are interested in becoming a GSoC student, please have a look at our Contact page.

If you need to contact someone directly, Anastasia Klimchuk (aklm), Felix Singer (flx) and Angel Pons (hell) are our GSoC Admins.

Why you should choose a Flashrom project for GSoC

  • Flashrom offers you the opportunity to work with modern hardware “right on the iron”.
  • Hardware is fun. And it’s complicated. You will learn that datasheets are just loose guidelines to the hardware and real insight is gained by systematic tinkering.
  • Flashrom is the only multi-platform open source solution for flash EEPROM reading/writing for lots of different devices: on-mainboard flash (for BIOS/EFI/coreboot), graphics/network card flash (for firmware), and dozens of specialized programmer devices. If you want to update your BIOS/EFI/coreboot or update some firmware from a running Linux/*BSD/... system, then flashrom is the only choice you have.
  • Flashrom does hardware access (like firmware/drivers), but completely in user space and without the hassles present in firmware or OS kernels. That way you can write complex hardware access with ease.
  • Flashrom has a worldwide developer and user base. Big companies like Google and individual users use and contribute to it.
  • We are a very passionate team – so you will interact directly with the project initiators and project leaders.
  • We have a friendly and helpful community. Flashrom has some extremely talented and helpful experts in all things flash active in the project, and many of our friends from the coreboot project participate in flashrom as well. They are ready to assist and mentor students participating in GSoC.

Contents of your application

Please have a look at our project proposal template here.

Contributor commitments & requirements

What does it mean to be a Flashrom GSoC contributor?

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. The standard program duration is 12 weeks and in consultation with the mentor it can be extended 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.

GSoC provides some ways allowing you to be more flexible, but make sure that your schedule (exams, courses) give you sufficient amount of spare time.

  1. Prior to project acceptance, you need to demonstrate that you can work with the flashrom codebase.
    1. You need to be able to read and write C code.
    2. You need to be able to work with our git repository. Check our Development Guidelines for details.
    3. Look at Pending Patches to see what’s going on, who are our active developers and code reviewers, what does code review look like.
    4. By the time you have submitted your application, you should have downloaded and built flashrom as well as applied some patches. Run flashrom on real hardware or try at least the dummy programmer driver.
    5. Send a patch to Gerrit for review. Check Easy projects or ask for simple tasks on the mailing list or on IRC. Please include your flashrom output and test results in the commit message and/or comments to the patch.
  2. To pass and to be paid by Google, we require that you meet certain milestones.
    1. First, you should be in good standing with the community before the official start of the program. We suggest you 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.
    2. You need to have made progress and committed significant code before the mid-term point and by the final.
    3. Once a week, you will post what’s happening on your project on the mailing list. This way you will measure and share progress with the community, and the community at large will be able to help you. GSoC is not a private contract between your mentor and you. If you have your own blog, you are very welcome to post updates there, and we will link your blog from our website.
    4. You need to be active on IRC and the mailing list. Sending massive patches for midterm and final without any communication in between is not sufficient.

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.

And finally, here are official guidelines for contributors.