|
| 1 | +# P4 GSoC 2026 Contributor Guidance |
| 2 | + |
| 3 | +> [!Warning] |
| 4 | +> Please note that proposals completely generated using Large Language Models (LLMs) will not be accepted. Using LLM to assist you is acceptable, but letting LLM replace you is not. If you do use LLM, use your best judgement to use it responsibly. During the application process, if we find out it's easier to work with an LLM directly than working with you, it will be an immediate reject. |
| 5 | +
|
| 6 | +## Before the Application |
| 7 | + |
| 8 | +- Go through the general GSoC |
| 9 | + [FAQ](https://developers.google.com/open-source/gsoc/faq), |
| 10 | + [timeline](https://developers.google.com/open-source/gsoc/timeline), and |
| 11 | + [contributor guide](https://google.github.io/gsocguides/student). |
| 12 | +- Check out our |
| 13 | + [organization profile](https://summerofcode.withgoogle.com/programs/2025/organizations/the-p4-language-consortium) and |
| 14 | + [ideas list](ideas_list.md) |
| 15 | + to see if they fit your interests and skills. |
| 16 | + |
| 17 | +## Application Process |
| 18 | + |
| 19 | +1. Email mentors (both primary and support) of your interested projects. |
| 20 | + - You only need to email mentors whose emails are listed. |
| 21 | + - We encourage you to reach out to mentors as early as possible, so we have enough time to know about you and connect with you. |
| 22 | + - **In your first email to mentors, please attach a draft proposal (see template below).** It doesn't have to be complete. But we expect to see a draft so we can start the conversation, and help you polish it. |
| 23 | +2. Apply through the [GSoC website](https://summerofcode.withgoogle.com). |
| 24 | + - Before submitting your formal application, make sure you have communicated with mentors through emails already. |
| 25 | +3. Wait for your application result. |
| 26 | + |
| 27 | +## Proposal Template |
| 28 | + |
| 29 | +- Please follow this |
| 30 | + [guide](https://google.github.io/gsocguides/student/writing-a-proposal) |
| 31 | + and use these examples ([1](https://google.github.io/gsocguides/student/proposal-example-1) & |
| 32 | + [2](https://google.github.io/gsocguides/student/proposal-example-2)) as reference. |
| 33 | +- 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: |
| 34 | + - **Name and Contact Information** |
| 35 | + - Please also include a link to your GitHub profile. |
| 36 | + - **Title** |
| 37 | + - **Synopsis** |
| 38 | + - **Benefits to Community** |
| 39 | + - **Deliverables** |
| 40 | + - **Related Work** |
| 41 | + - **Biographical Information** |
| 42 | + - Please structure this section as a typical 1-page CV/resume. |
| 43 | + - If you have any prior open source contribution, or P4 related experience, make sure you list and emphasize them in this section. |
| 44 | + - **Questionnaire** |
| 45 | + - Please include your answers to the following questions: |
| 46 | + - Why are you interested in our organization? |
| 47 | + - Why are you interested in this particular project? |
| 48 | + - What makes you a good candidate to work on this project? |
| 49 | + - What do you expect to get out of this GSoC program? |
| 50 | + - **Qualification Task** |
| 51 | + - The qualification task is to make a pull request in one of the following repos: |
| 52 | + - https://github.com/p4lang/tutorials |
| 53 | + - https://github.com/p4lang/p4c |
| 54 | + - It's suggested to check out existing issues for inspirations, but your pull request could be anything meaningful. |
| 55 | + - Please read [this guide](https://developers.google.com/blockly/guides/contribute/get-started/write_a_good_pr) on how to write a good pull request first. |
| 56 | + - 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. |
| 57 | + - Please attach the link to your pull request in the proposal. |
| 58 | + |
| 59 | +## P4 Learning Materials |
| 60 | + |
| 61 | +For all our projects, it’s good to know some P4. Here are some learning materials: |
| 62 | + |
| 63 | +- General hands-on tutorials: https://github.com/p4lang/tutorials |
| 64 | +- Technical documentation on P4 related topics: https://github.com/jafingerhut/p4-guide?tab=readme-ov-file#introduction |
| 65 | +- Motivating P4: [IEEE ICC 2018 // Keynote: Nick McKeown, Programmable Forwarding Planes Are Here To Stay](https://www.youtube.com/watch?v=8ie0FcsN07U) |
| 66 | +- Introducing P4-16 in detail: |
| 67 | + - Part 1: [Introduction to P4_16. Part 1](https://www.youtube.com/watch?v=GslseT4hY1w) |
| 68 | + - Part 2: [Introduction to P4_16. Part 2](https://www.youtube.com/watch?v=yqxpypXIOtQ) |
| 69 | +- Material on the official P4 compiler: |
| 70 | + - [Understanding the Open-Soure P416 Compiler - February 15, 2022 - Mihai Budiu](https://www.youtube.com/watch?v=Rx5AQ0IF6eU) |
| 71 | + - [Understanding P416 Open-Source Compiler, Part 2 - March 1, 2022 - Mihai Budiu](https://www.youtube.com/watch?v=YnPHPaPSmpU) |
| 72 | + - https://github.com/p4lang/p4c/blob/main/docs/compiler-design.pdf |
| 73 | +- Introduction to P4Runtime: [Next-Gen SDN Tutorial - Session 1: P4 and P4Runtime Basics](https://www.youtube.com/watch?v=KRx92qSLgo4) |
| 74 | + |
| 75 | +## Communication Channels |
| 76 | + |
| 77 | +- For general P4 related questions, use the [P4 forum](https://forum.p4.org). |
| 78 | +- For more real-time and personal communications, use our [Zulip workspace](https://p4lang.zulipchat.com/). |
| 79 | + - For GSoC related discussion, we have a `#gsoc` channel on Zulip. |
| 80 | +- For other communication channels, check out https://p4.org/join/. |
0 commit comments