- Go through the general GSoC FAQ, timeline, and contributor guide.
- Check out our organization profile and ideas list to see if they fit your interests and skills.
- February 22 - March 18
- We encourage you to reach out to mentors of your interested projects as early as possible, so we have enough time to know about you and connect with you.
- Bringing your own project idea is also welcomed. In this case, send an email to Bili and Fabian (find their emails from the ideas list), and they’ll help you connect with potential mentors.
- March 18 - April 2 (18:00 UTC)
- Before the formal application, make sure you have communicated with project mentors through emails already.
- Apply through the GSoC website.
- For proposal writing, check out the template below.
- May 1 (18:00 UTC)
- Accepted GSoC contributor projects will be announced.
- In your first email to project mentors, please attach a draft proposal (see the template below).
- If the application is already open, you can submit this draft proposal on the GSoC website directly, and mention this in your email.
- You don’t need to wait until finishing the qualification task before sending the first email. That part is only required for your formal application.
- Questions are welcomed. Don't be afraid to ask.
- Please follow this guide and use these examples (1 & 2) as reference.
- The proposal structure is up to you to decide, but make sure it contains the following elements as mentioned in the guide, with a few additional notes:
- Name and Contact Information
- Please also include your GitHub username.
- Title
- Synopsis
- Benefits to Community
- Deliverables
- Related Work
- Biographical Information
- Please structure this section as a typical 1-page CV/resume.
- If you have any P4 related experience before, please include in this section.
- If you have contributed to any open source projects before, please include in this section.
- Questionnaire
- Please include your answers to the following questions:
- Why are you interested in our organization?
- Why are you interested in this particular project?
- What makes you a good candidate to work on this project?
- What do you expect to get out of this GSoC program?
- Please include your answers to the following questions:
- Qualification Task
- The qualification task is to make a pull request in one of the following repos:
- https://github.com/p4lang/tutorials
- https://github.com/p4lang/p4c
- Only choose this one if your interested project is related to p4c.
- Please read this guide on how to write a good pull request first.
- You can identify any issue or place of improvement to work on by yourself.
- Or check out the following labels for beginner-friendly issues:
- The pull request doesn’t have to be merged for the qualification task to be considered complete. But if you can manage to get it merged, that’s a bonus point for your application.
- Please attach the link to your pull request.
- The qualification task is to make a pull request in one of the following repos:
- Name and Contact Information
For all our projects, it’s good to know some P4. Here are some learning materials:
- General hands-on tutorials: https://github.com/p4lang/tutorials
- Technical documentation on P4-related topics: https://github.com/jafingerhut/p4-guide?tab=readme-ov-file#introduction
- Motivating P4: IEEE ICC 2018 // Keynote: Nick McKeown, Programmable Forwarding Planes Are Here To Stay
- Introducing P4-16 in detail:
- Part 1: Introduction to P4_16. Part 1
- Part 2: Introduction to P4_16. Part 2
- Material on the official P4 compiler:
- Introduction to P4Runtime: Next-Gen SDN Tutorial - Session 1: P4 and P4Runtime Basics
If you have any P4 related questions, there are some communication channels you can use:
- For general P4-related questions, use the P4 forum.
- For more real-time and personal communications, use our Slack workspace.
- Use this link to join.
- Note that the Slack link on our website is not the major one we use. We are working on fixing it.
- For other communication channels, check out https://p4.org/join/.