Google Summer of Code (g.co/gsoc) is Google's mentorship program for bringing new contributors into open source communities.
Google Summer of Code is a unique program where new contributors to open source, ages 18 and over, are paired with a mentor to introduce them to the open source community and provide guidance while they work on a real world open source project over the summer. Projects cover a wide range of fields including: Cloud, Operating Systems, Graphics, Medicine, Programming Languages, Robotics, Science, Security and many more. GSoC Contributors do earn a stipend to work on their small, (~90 hour), medium (~175 hour) or large (~350 hour) projects.
GSoC is a highly competitive program, so don't wait to the last minute to prepare! GSoC Contributors should reach out to the mentors of projects that interest them once orgs are announced on February 21, 2024. Potential GSoC Contributors can apply for Ceph's projects at g.co/gsoc from March 18th - April 2, 2024.
See the list of projects we have available for GSoC contributors and learn how get started with contributions.
Shaman Scheduling for Success ¶
Mentor name(s): Zack Cerza, Kamoltat (Junior) Sirivadhna Aishwarya Mathuria, Vallari Agrawal
Mentor email(s): zack1@ibm.com, ksirivad@ibm.com, aishwarya.mathuria@ibm.com, vallari.agrawal@ibm.com
Difficulty: Medium
Project Hours: 350
Skills needed: Shell, Python, FastAPI
Subcomponent of Ceph: Ceph Build System, Ceph Integration Test Framework
Description of project: We can make the process of scheduling Ceph integration tests upstream more efficient by allowing users to auto-schedule teuthology-suite commands when pushing their feature-branch to ceph-ci.
Your mission is to build the auto-schedule feature based off a pre-existing work:
Standup/weekly call mentee could attend?: teuthology weekly meeting
Steps to evaluate an applicant for the project:
- Setup teuthology-api and share screenshot that you're able to schedule runs from teuthology-api (i.e. share screenshot of success response of /suite endpoint)
- Open a PR for adding a new endpoint to teuthology-api for suite command defaults: https://github.com/ceph/pulpito-ng/issues/41
- [optional] Add unit tests for the new endpoint added above
- Include understanding of current build-and-schedule workflow and new auto-schedule workflow in proposal
Expected Outcome(s):
A working auto-schedule feature for at least one suite.
From RADOS to REDIS ¶
Mentor name(s): Yuval Lifshitz
Mentor email(s): ylifshit@ibm.com
Difficulty: Hard
Project Hours: 350
Skills needed: C++
Subcomponent of Ceph: RGW
Description of project:
Detailed description of the project, as well as the steps expected to ba taken by candidates in the evaluation stage could be found here
Expected Outcome(s):
Persistent bucket notifications being stored in a Redis cluster that is being read and written to by the RADOS Gateway with non RADOS backends like posix store
RGW AdminAPI Audit & Refactoring ¶
Mentor name(s): Ali Maredia, Samarah Uriarte
Mentor email(s): amaredia@redhat.com, samarah.uriarte@ibm.com
Difficulty: Intermediate
Project Hours: 350
Skills needed: Linux, Python, C++
Subcomponent of Ceph: RGW
Description of project:
The Rados Gateway (RGW) has a REST API that can do admin operations called the admin ops api.
This project have two phases. The first phase would include enhancing the intergration testing coverage of the admin API, and auditing the documentation to make sure it is up to date. The second phase would entail refactoring the admin API code to ensure it can work with different backends such as posix, dbstore, rados, etc.
Expected Outcome(s):
For the first phase, improvements to the test suite that tests the RGW admin API. In the second phase would be a working admin API with a non-RADOS backend like posix store
Tidy Up Song ¶
Mentor name(s): Ronen Friedman, Yuval Lifshitz
Mentor email(s): rfriedma@ibm.com, ylifshit@ibm.com
Difficulty: Intermediate
Project Hours: 175
Skills needed: C++
Subcomponent of Ceph: RGW, Core
Description of project:
Detailed description of the project, as well as the steps expected to ba taken by candidates in the evaluation stage could be found here
Expected Outcome(s):
Have clang-tidy run against Ceph PRs, and show errors only if introduced in the PR.