# Summer Of Code - Community Info This document is intended to serve as a reference about Google Summer Of Code (GSOC) for the community, and especially for mentors. It will be expanded as needed. ## Should I Mentor? Mentorship can be an incredibly rewarding experience, but it's not something to sign up for lightly. Mentors should ideally have a specific project in mind, within their area of experience, and be: + Active, friendly, in good standing with the community. + Able to meet and vet students between February and April. + Prepared to dedicate 2-4 hours a week to mentoring, from May through August. + Commited to prompt code-review for PRs relating to their project. + Willing to evaluate the student's work objectively and submit assessments to Google -- since mentor evaluations play a part in the student receiving their funds. Google has a [guide on this topic](https://google.github.io/gsocguides/mentor/what-makes-a-good-mentor) which may also be helpful. >[!Important] > If you have a project in mind, add it to the [Project Proposals spreadsheet](https://docs.google.com/spreadsheets/d/1ehuIyy32z1CDBpdSaYLEUCT3J3EOiV7v5eRcNVGMEVQ/edit?gid=2073174432#gid=2073174432). The following section describes how to fill out each collumn. You should also add your details to the [Mentors spreadsheet](https://docs.google.com/spreadsheets/d/1ehuIyy32z1CDBpdSaYLEUCT3J3EOiV7v5eRcNVGMEVQ/edit?gid=895196178#gid=895196178). > > If you are interested in applying to mentor, but don't have a specific project yet, you can just add yourself to the [Mentors spreadsheet](https://docs.google.com/spreadsheets/d/1ehuIyy32z1CDBpdSaYLEUCT3J3EOiV7v5eRcNVGMEVQ/edit?gid=895196178#gid=895196178). ## How Do I Scope Out A Project? To submit a project idea, you must provide the following: + **The Project Name:** Make it easy for outsiders to understand, rather than clever. + **The Engine Area:** Using the normal PR-triage areas is fine; this is mostly so that we can try to get a good spread. + **A Short Description:** 2-5 sentences, as specific as possible. + **Two Mentors:** The person who writes the proposal is Mentor A. You may leave Mentor B blank to allow other people to sign up as a mentor for that project. + **Project Kind:** One of: + **Moonshot:** Large, experimental, ambitious, effectively a research project. + **Greenfield:** New development, but with a clear scope and a well-understood path to completion. + **Refinement:** Improving the existing codebase through refactoring, fixes, or features. + **Upstreaming:** Integrating code from the bevy ecosystem into the core engine. + **An Estimated Duration:** This *must* be one of the following options: + Small: 90 hours, 8-12 weeks (usually 8) + Medium: 175 hours, 10-22 weeks (usually 12) + Large: 350 hours, 10-22 weeks (usually 12) + **Difficulty.** Easy, Medium, or Hard. Just do your best to guess this, considering the expected skillset of the students who will be accepted. + **Expected Challenges.** Rate the difficulty as Easy/Intermmediate/Hard. If intermediate or hard, explain why: High complexity, lots of stakeholders, etc. We may want to avoid giving students projects where the problems are mostly social (e.g., getting people to agree on a design) rather than technical. + **Skills Required/Preferred.** Make it clear what students *must* be experienced in (e.g., Rust) and what you would prefer they know (e.g., Physically-based Rendering Lore). + **Additional Details.** Bonus points if you can include a link to a HackMD with references, background materials, etc. Do not under any circumstances link to a GitHub issue. Refer to [this guide from Google](https://google.github.io/gsocguides/mentor/making-your-ideas-page) for additional instructions. >[!Important] > If you submit a project proposal, also add your details to the [Mentors spreadsheet](https://docs.google.com/spreadsheets/d/1ehuIyy32z1CDBpdSaYLEUCT3J3EOiV7v5eRcNVGMEVQ/edit?gid=895196178#gid=895196178).