Skip to content

Commit 886ab21

Browse files
committed
Merge branch 'origin/centralize-learning-materials' into centralize-learning-materials
Resolve README.md conflict and update learning materials
2 parents 7b0f5ac + 19b6206 commit 886ab21

File tree

6 files changed

+112
-22
lines changed

6 files changed

+112
-22
lines changed

2024/contributor_guidance.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@
77
[timeline](https://developers.google.com/open-source/gsoc/timeline), and
88
[contributor guide](https://google.github.io/gsocguides/student).
99
- Check out our
10-
[organization profile](https://summerofcode.withgoogle.com/programs/2024/organizations/the-p4-language-consortium) and
10+
[organization profile](https://summerofcode.withgoogle.com/programs/2024/organizations/the-p4-language-consortium),
11+
[learning materials](/materials/learning_materials.md), and
1112
[ideas list](ideas_list.md)
1213
to see if they fit your interests and skills.
1314
- **February 22 - March 18**

2025/contributor_guidance.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@
1010
[timeline](https://developers.google.com/open-source/gsoc/timeline), and
1111
[contributor guide](https://google.github.io/gsocguides/student).
1212
- Check out our
13-
[organization profile](https://summerofcode.withgoogle.com/programs/2025/organizations/the-p4-language-consortium) and
13+
[organization profile](https://summerofcode.withgoogle.com/programs/2025/organizations/the-p4-language-consortium),
14+
[learning materials](/materials/learning_materials.md), and
1415
[ideas list](ideas_list.md)
1516
to see if they fit your interests and skills.
1617

2026/contributor_guidance.md renamed to 2026/application_instructions.md

Lines changed: 4 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,15 @@
11
# P4 GSoC 2026 Contributor Guidance
22

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-
63
## Before the Application
74

85
- Go through the general GSoC
96
[FAQ](https://developers.google.com/open-source/gsoc/faq),
107
[timeline](https://developers.google.com/open-source/gsoc/timeline), and
118
[contributor guide](https://google.github.io/gsocguides/student).
129
- Check out our
13-
[organization profile](https://summerofcode.withgoogle.com/programs/2025/organizations/the-p4-language-consortium) and
10+
[organization profile](https://summerofcode.withgoogle.com/programs/2025/organizations/the-p4-language-consortium),
11+
[learning materials](/materials/learning_materials.md),
12+
[contributor guidance](/materials/lcontributor_guidance.md), which are mandatory for all contributors, and the
1413
[ideas list](ideas_list.md)
1514
to see if they fit your interests and skills.
1615

@@ -55,22 +54,7 @@
5554
- 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.
5655
- 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.
5756
- 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)
57+
**Project Timeline**
7458

7559
## Communication Channels
7660

materials/contributor_guidance.md

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
# Contributor Guidance
2+
3+
Here you will find several important rules which you have to agree to follow in order to be eligible to apply as a contributor for the P4 Language Consortium.
4+
5+
These rules are intended to make the program rewarding and problem-free for everyone involved. They are based on our experience with GSoC and are designed to help you get the most out of it.
6+
7+
## Before you apply
8+
9+
- **Managing Commitments and Avoiding Burnout During GSoC**
10+
Please note that Google Summer of Code requires a time commitment of 20-40 hours per week, depending on the size of the tasks you choose. If you're considering taking on an additional part-time job, have extensive exams, or plan an extended vacation during the program, you need to carefully evaluate whether you can manage all these commitments without risking burnout. To help us better assess your availability, <ins>please make sure to explicitly list any other obligations in your application.</ins>
11+
12+
- **Get in touch with us and our community**
13+
In particular, visit our [Zulip workspace](https://p4lang.zulipchat.com/), [P4 forum](https://forum.p4.org), [P4 Linkdin](https://www.linkedin.com/company/p4-language-consortium/) and/or email the mentors listed on the [ideas list](ideas_list.md) for each project that sounds appealing to you.
14+
15+
- **Respect Mentors, Deliver on Time**
16+
The P4 Language Consortium values your enthusiasm and willingness to contribute. However, contacting mentors on multiple platforms, sending repeated messages, or asking for shortcuts may be viewed as unprofessional. Likewise, requesting last-minute reviews or urgent feedback when you are close to a deadline can be interpreted as a lack of reliability. Please remember that P4 mentors and admins volunteer their time to support a meaningful and successful GSoC experience.
17+
18+
19+
- **NO LLM-generated code or texts are accepted**
20+
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.
21+
22+
23+
## Before you are accepted
24+
25+
- **Prepare a Comprehensive and Detailed Plan**
26+
Within your project proposal, please include a section with a clear timeline detailing your 12-week project plan. Be sure to note any existing commitments, such as exams, vacations, or other obligations—that could affect your availability.
27+
28+
29+
## During GSoC
30+
31+
- **Choose Your Communication Method**
32+
Before starting the coding phase, a private Zulip channel dedicated to the GSoC project will be created as the main communication channel between mentors and the student. In addition, mentors and the student should agree on the communication approach they’ll use during the GSoC period—for example, using only the Zulip channel, having weekly sync-up calls, or any other method that works best for them.
33+
34+
- **Deliverables**
35+
Before the end of the GSoC period, for the project to be considered successful, the student must complete all assigned tasks, submit a final project report, and present their work and results at the community kickoff and wrap-up meetings. The report may be used directly as a blog post. For particularly complex projects, and if the student is willing, an additional blog article can be prepared and published on the P4 Language Consortium blog.
36+
37+
Students may use any preferred approach to prepare their report, article, and presentations. One suggested method is the laboratory-diary approach: keeping a private log of task progress helps track the work and simplifies the preparation of the final deliverables.
38+
39+
The report template can be found here: [report template](report_template.md). For any insigths here a few example reports that we think is of high quality and roughly follows the template:
40+
41+
- [2025 GSoC - Bmv2 Pkt Out - Xiyu Hao](/2025/projects/bmv2_pkt_out/README.md)
42+
- [2024 GSoC - Container Migration - Stanislav Kosorin](/2024/projects/container_migration/README.md)

materials/learning_materials.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
# P4 Learning Materials
2+
3+
For all our projects, it’s good to know some P4. Here are some learning materials:
4+
5+
- General hands-on tutorials: https://github.com/p4lang/tutorials
6+
- Technical documentation on P4 related topics: https://github.com/jafingerhut/p4-guide?tab=readme-ov-file#introduction
7+
- Motivating P4: [IEEE ICC 2018 // Keynote: Nick McKeown, Programmable Forwarding Planes Are Here To Stay](https://www.youtube.com/watch?v=8ie0FcsN07U)
8+
- Introducing P4-16 in detail:
9+
- Part 1: [Introduction to P4_16. Part 1](https://www.youtube.com/watch?v=GslseT4hY1w)
10+
- Part 2: [Introduction to P4_16. Part 2](https://www.youtube.com/watch?v=yqxpypXIOtQ)
11+
- Material on the official P4 compiler:
12+
- [Understanding the Open-Soure P416 Compiler - February 15, 2022 - Mihai Budiu](https://www.youtube.com/watch?v=Rx5AQ0IF6eU)
13+
- [Understanding P416 Open-Source Compiler, Part 2 - March 1, 2022 - Mihai Budiu](https://www.youtube.com/watch?v=YnPHPaPSmpU)
14+
- https://github.com/p4lang/p4c/blob/main/docs/compiler-design.pdf
15+
- Introduction to P4Runtime: [Next-Gen SDN Tutorial - Session 1: P4 and P4Runtime Basics](https://www.youtube.com/watch?v=KRx92qSLgo4)

materials/report_template.md

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
**Contributor**: Name Contributor ([@githubContributor])
2+
3+
**Mentors**: Name Mentor ([@githubMentor]), etc
4+
5+
[@githubContributor]: https://github.com/githubContributor
6+
[@githubMentor]: https://github.com/githubMento
7+
8+
## Table of Contents
9+
- [Report Template](#report-template)
10+
- [Table of Contents](#table-of-contents)
11+
- [Abstract](#abstract)
12+
- [Implementation details](#implementation-details)
13+
- [Subsection](#Subsection)
14+
- [Demo](#demo)
15+
- [Results](#results)
16+
- [Future Work](#future-work)
17+
18+
## Abstract
19+
An effective abstract is a short and clear summary of your report (usually 1–2 paragraphs) that helps readers quickly understand the main ideas without having to read the whole text[[1]](#1-https://www.cambridge.org/core/services/authors/writing-an-effective-abstract). It should:
20+
- Include key terms related to your topic.
21+
- Use clear, accessible language, with minimal unexplained technical jargon.
22+
- Highlight the most interesting and important aspects of your work immediately.
23+
24+
## Implementation Details
25+
It contains a detailed explanation of the work implemented during the GSoC period.
26+
More specifically, it provides the technical description of what has been done; the student may use images, code snippets, and similar material to support the explanation.
27+
For particularly complex or large tasks, subsections can be used to describe each task in detail. Each subsection should reference the relevant PRs and, when useful, include images, code snippets,etc.
28+
29+
Relevant PRs:
30+
- https://SectionRelevantPR
31+
32+
### Subsection
33+
Relevant PRs:
34+
- https://SubsectionRelevantPR
35+
36+
## Demo
37+
This section provides the information required to compile, configure, and run the GSoC project. All necessary commands have to be listed and accompanied by a short description. Images showing the results should also be included and explained to demonstrate the obtained outcomes and to showcase that the implementation is functioning correctly.
38+
39+
## Results
40+
In this section, the obtained results, such as implemented features, applications, tools, or measurements, have to be presented and discussed. More specifically, for work focused exclusively on software development, the completed objectives should be described and highlighted, while for measurements, graphs can be used to present the evaluated data together with comments that analyse and discuss the results.
41+
42+
## Future Work
43+
Future work aims to provide an overview of possible improvements or enhancements to the developed GSoC project. In other words, it should give the reader a clear view of additional functionalities or possible improvements that could be implemented.
44+
45+
## References
46+
47+
##### [1]: [Writing an effective abstract](https://www.cambridge.org/core/services/authors/writing-an-effective-abstract)

0 commit comments

Comments
 (0)