# DRAFT RustcContributor Program (for discussion only) Feature Name: rustc_contributor_program Start Date: 2022–06–30 RFC PR: N/A (yet) Rust Issue: N/A (yet) --- Summary The RustcContributor Program is the next iteration of what we previously called the Rustc Reading Club. This program is built upon the experience we've gained in delivering RRC and the retrospective we completed with the cohort. The predessor program, the Rustc Reading Club is complete and now we are ready to launch the next phase based upon what we've learned. ## Motivation The Rustc Contributor Program has two goals. First, to produce confident new contributors to rustc. Second, to deepen understanding of rustc for mid level contributors. To support both of these goals, the program has two different components: RustcContributor::new and RustcContributor::grow these are explained below. will gain some experience with rustlang tooling and processes and practice contribution tasks. After completing ::new they will be ready to join a RustcContributor::grow cohort which is the second component of the program. The selection process needs more discussion and input from the complier team. A starting point for the discussion for the first month would look like the following. ## Guide-level explanation (need compiler team input) - Before the program starts: - take applications for a month - assemble an initial cohort list - recruit 1 instructor - recruit 2 to 4 mentors for office hours #### Week 1: Onboarding and installing things - instructor led for 90 mins via Zoom - how to use your cloud desktop and get rustc running - introduce rustc-dev-guide - introduce rustc module/area - install and setup additional environment: rr - Q&A time permitting - attend office hours when needed #### Week 2: Setup and demo pernosco - instructor led for 90 mins via Zoom - practice running rr traces - practice setup for instructor to retrieve rr trace and upload to pernosco - practice UI and access to pernosco - Q&A time permitting - attend office hours as needed #### Week 3: Introduce selected rustc crate/module - instructor led 90 mins via Zoom - present selected rustc crate/module - opening a PR, what to expect “bors”, r+, etc - Q&A time permitting - attend office hours as needed #### Week 4: How to complete a code review - instructor led for 90 mins via Zoom - assign sample code reviews to submit - practice - Q&A time permitting - attend office hours as needed #### Week 5: Present and discuss solutions - instructor led for 90 mins via Zoom - cohort practice tasks learned - Q&A time permitting - attend office hours as needed #### Week 6: Retrospective - instructor led for 90 mins via Zoom - cohort asks any remaining questions - instructor led brief introduction to ::grow #### Post Program - join the next RustcContributor::grow cohort. - PM manages adding ::new participants and filling out with other applicants ## Reference-level explanation Support for RustcContributor::new and RustcContributor::grow will require support from the compiler team in addition to the financial support received from the Rust Foundation. ### Rust Foundation Support * Compute accounts for all participants * Unlimited upload pernosco accounts for instructors * RustcContributor Challenge Coins ### Roles to recruit for * Technical support -- 1 person or perhaps person per task * Set up cloud desktop (oli) * Set up pernos.co account * Create the zulip stream (somebody from infra) * Make a rust team entry (somebody from infra) * Candidate application reviewers for the RustcContributor::new cohort * `RustcContributor::new` (twice per year: spring/fall, each for 6 weeks) * first time: * content creation -- 1-3 people (oli/lqd/jackh726) * each time: * instructor -- 1 person -- 90 min/wk * office hours -- 2-4 people -- 60 min/wk * `RustcContributor::grow` (approx 4 per year, each for 8 weeks) * each time: * instructor -- 1 person -- 90 min/wk * office hours? * Program manager to... * create calendar invites * record, post recordings * recruit ### Goals for the meeting * [ ] Overview of the way the program will work * [ ] Felix, Wesley to introductory blog as compiler-team co-leads on Inside Rust * [ ] What kind of "decision" do we need here? (RFC, MCP, etc)? * [ ] Suggestions for the people for each role ### Current filled roles of different people * Doc Jones * visionary, owns the program * Felix, Wesley * leads of Rust compiler team * stakeholders, potential instructors * we want them to help with recruiting and organizing other volunteers * getting the team on board * Niko * potential instructor * spirit animal :eagle: :fish: * Tyler Mandry * foundation board member but also an open source contributor * stakeholder * other roles as id'ed by Tyler