Google Summer of Code

Google Summer of Code (g.co/gsoc) is Google's mentorship program for bringing new contributors into open source communities. It's happening again for the 18th year in 2022! Over 18,000 developers from 112 countries have participated.

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 medium (~175 hour) or large (~350 hour) projects. This is not an internship but provides an invaluable experience and allows you to be part of an amazing community!

GSoC is a highly competitive program, so don't wait to the last minute to prepare! GSoC Contributors should reach out to the organizations that interest them once orgs are announced on March 7, 2022. Potential GSoC Contributors can apply at g.co/gsoc from April 4 -19, 2022.

See the list of projects we have available for GSoC contributors!


Making Teuthology a Better Detective

Mentor name(s): Aishwarya Mathuria, Zack Cerza, Kamoltat Sirivadhna

Mentor email(s): amathuri@redhat.com, zcerza@redhat.com, ksirivad@redhat.com

Project type: 175 hour project

Difficulty: intermediate

Skills needed: Python, Linux as a development environment.

Subcomponent of Ceph: Teuthology

Description of project: Teuthology, an automation test framework for Ceph, currently lacks the ability to detect and report certain unit-test failures such as gtest and nose. We want to improve teuthology's ability to recognize these failures and report them accurately so that it cuts down the time developers spent on traversing through teuthology's logs, looking for the root cause of the failure. The way we want to approach this is through parsing the xml file generated by the test frameworks, since we believe that in doing this we only have to deal with 1 universal format rather than many different failure patterns generated by different test frameworks.

Standup/weekly call mentee could attend?: Teuthology meeting

Steps to evaluate an applicant for the project:


End to End Tracing

Mentor name: Omri Zeneva

Mentor email: ozeneva@redhat.com

Project type: 350 hour project

Difficulty: intermediate

Skills needed: c++

Subcomponent of Ceph: RGW, OSD

Description of project: We currently have the infrastructure to create traces in the RGW and in the OSD separately, and then the traces are sent to the jaeger tracing backend. We would like to have traces representing a single operation, from the beginning in the RGW down to the OSD.

Standup/weekly call mentee could attend?: RGW, Core

Steps to evaluate an applicant for the project:


All Clients Deserve a Chance

Mentor name: Yuval Lifshitz

Mentor email: ylifshit@redhat.com

Project type: 350 hour project

Difficulty: intermediate

Skills needed: golang, java, python

Subcomponent of Ceph: RGW

Description of project:

We have several examples of how to hack the standard AWS clients to use out extended bucket notifications APIs. Currently we have such examples for python (using the boto library) - however, we need to keep them up to date with the recent changes in our code we are missing an example of how to hack the golang/java AWS SDK for the same purpose.

Standup/weekly call mentee could attend?: RGW

Steps to evaluate an applicant for the project:


Telescópio Lua

Mentor name: Yuval Lifshitz

Mentor email: ylifshit@redhat.com

Project type: 350 hour project

Difficulty: advance

Skills needed: C++, Lua

Subcomponent of Ceph: RGW

Description: Enhance our Lua binding in the RGW to expose the content of an object when doing GET operations. The script should be able to process the object's content and overwrite it if needed. e.g.:

Standup/weekly call mentee could attend?: RGW


Visualizing a Ceph Cluster

Mentor name: Ernesto Puerta, Nizamudeen A

Mentor email: epuertat@redhat.com, nia@redhat.com

Project type: 350 hour project

Difficulty: intermediate

Skills needed:

Subcomponent of Ceph: Dashboard

Description of project:

This project aims to provide users with a rich and interactive visualization of the status of a Ceph cluster. While Ceph already provides a high-level cluster status (HEALTH, WARNING, ERROR), that's often not enough when the cluster departs from the peaceful HEALTH zone to enter the shadowy WARNING or ERROR regions. In that situation, users will require a more fine-grained view of the status of the different cluster components.

Reference

Standup/weekly call mentee could attend?: Dashboard

Steps to evaluate an applicant for the project:

What the first 2 weeks of work would look like during the internship:


Improving Dashboard Accessibility for Blind and Visually-Impaired Ceph Users

Mentor name: Laura Flores, Ernesto Puerta

Mentor email: lflores@redhat.com, epuertat@redhat.com

Project Type: 175 hour project

Skills needed: HTML, JavaScript / TypeScript

Difficulty: beginner

Subcomponent of Ceph: Dashboard

Description of project:

The goal of this project is to improve Dashboard accessibility for blind and visually-impaired users. While it's likely that the Dashboard already meets some accessibility guidelines, we currently ignore its compliance to Web Content Accessibility Guidelines (WCAG) 2.1 standard levels (levels A, AA, and AAA). The steps to achieve at least an A level of conformance would involve using a mix of web accessibility guidelines and software (listed in the Tracker) to evaluate the Dashboard's level of accessibility and improve it as needed. Reference: https://tracker.ceph.com/issues/43264

Standup/weekly call mentee could attend?: Dashboard, Core

Steps to evaluate an applicant for the project:

What the first 2 weeks of work would look like during the internship: