Google Summer of Code

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:

teuthology-api pull request

ceph-build pull request

Standup/weekly call mentee could attend?: teuthology weekly meeting

Steps to evaluate an applicant for the project:

  1. 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)
  2. Open a PR for adding a new endpoint to teuthology-api for suite command defaults: https://github.com/ceph/pulpito-ng/issues/41
  3. [optional] Add unit tests for the new endpoint added above
  4. 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.