Fedora está orgullosa de haber sido aceptada como una organización de tutoría GSoC.

Si es usted un estudiante buscando participar en Google Summer of Code with Fedora, no dude en navegar por esta lista de ideas. Es posible que se añadan más durante el período de solicitud.

Ahora, por favor, lea la sección Que Puedo Hacer Hoy de la página principale. Esta tiene las respuestas a sus preguntas y le dice como aplicar

No dude en contactar con los mentores o colaboradores listados en esta página para cualquier pregunta o aclaración. Puede encontrar personas útiles en el canal IRC o usar la lista de correo. Puede ser usada para obtener ayuda con problemas de programación.

Mentores de Apoyo

Los siguientes colaboradores están disponibles para proporcionar ayuda y apoyo general para el programa GSoC si un mentor específico está ocupado, puede encontrar uno entre la gente de abajo para una ayuda a corto plazo con su proyecto o tareas, . (Añadanse a ustedes y su página wiki).

  • Sumantro Mukherjee (Desarrollo general, Linux general, comunidad Fedora, antiguo alumno GSoC alumnus, preguntas sobre el programa, consejos generales)

  • Vipul Siddharth (Fedora CI,GCI,GSoC,linux general, comunidad Fedora, misc.)

Lista de ideas

Las ideas están sujetas a cambios a medido que se incorporan mentores adicionales.

Packit can work with Gitlab

  • Difficulty : Intermediate

  • Technology : Python, Flask, Container basics, REST API

  • Mentor : Frantisek Lachman

  • IRC & Email : Frantisek Lachman [IRC: lachmanfrantisek, flachman@redhat.com]

Description

Packit (https://packit.dev/) project has native support exclusively for GitHub now. There were numerous requests from the community to add support for GitLab as well. So here we are - are you up for the challenge to implement support for GitLab in packit-service (https://github.com/packit-service/packit-service) so that it can process events from GitLab API and return feedback of successful builds or failed tests back into the merge request? Please bear in mind that GitLab and GitHub use slightly different workflows (pipelines vs. external CI systems) so design work needs to be done before writing code.

Resources can be found at Upstream tracking issue: https://github.com/packit-service/packit-service/issues/249

Deliverables

As a GSoC intern, you will be responsible for the following :

  • Code in Packit service repository which makes packit understand the gitlab events

  • Packit is able to talk to a GitLab server API and:

    • Comment on merge request

    • Report check results (builds, tests)

  • On-board at least a single project from GNOME gitlab instance (https://gitlab.gnome.org/explore/groups) to use packit.


Dashboard for Packit

  • Difficulty : Intermediate

  • Technology : Python, Flask, Container basics, REST API, webdesign (CSS & javascript)

  • Mentor : Hunor Csomortáni

  • IRC & Email : Hunor Csomortáni [IRC: csomh, csomh₊gsoc@redhat.com]

Description

Packit project currently has an extremely basic dashboard (https://github.com/packit-service/dashboard/) with very little information in it. We’d love to have more tables, more data, charts and all the shiny stuff, in order to make it easier to get an insight of how the service operates and how users interact with it.

We’re looking for these views:

  • Listing for recent build and test runs

  • The same listing but per project

  • A chart of usage - how many tasks are executed in a given time of a day

  • Details for projects and builds

This task has a challenge - our API doesn’t provide most of the data needed to accomplish this. So the expectation here is to work with the upstream project (us) to come up with a final design, provide the data and develop the dashboard.

Deliverables

As a GSoC intern, you will be responsible for the following :

  • Code in packit-service/dashboard with the functionality

  • OpenShift templates and Ansible playbooks in packit-service/dashboard,deployment so that we can deploy it in our openshift cluster

  • Tests to verify that the proposed code works

  • The updated dashboard deployed in production


Improve Network Linux System Role

  • Difficulty : Intermediate

  • Technology : Python, Ansible

  • Mentor : Till Maas, Thomas Haller

  • IRC & Email : tyll, till q redhat.com / thaller, thaller q redhat.com

Description

The Network Linux System Role provides a uniform configuration interface for network-scripts and NetworkManager. In this project, the role would be improved. There are several areas that could be selected by an intern depending on their interest:

  • Add support for more interfaces/options, this includes the following tasks

    1. Write missing tests/documentation for open PRs to finalize them

    2. Add support for wake-on-lan options: https://github.com/linux-system-roles/network/issues/150

    3. Add proper support for team and make the configuration more uniform with bonding

  • Improve the testing framework

    1. Write an integration test to become familiar with the role, for example for https://github.com/linux-system-roles/network/issues/124

    2. Make the tests more uniform (they developed over the time. Adjust old tests to use the conventions of newer tests)

    3. Add support to test the ansible module directly via pytest instead of only via ansible-playbook

    4. Simplify test playbooks by writing custom Ansible modules that simplify test setup/preparation and assertions

  • Network state management (most difficult)

    1. Support to update only partial settings

    2. Return the current network configuration

    3. Initially only the configuration files

    4. Maybe also the runtime state

  • What are we looking for:

    1. Interest in writing high-quality code in Python for Ansible

    2. Personal accountability with regular, clear and open communication

    3. Ability to independently transfer feedback into code

    4. Support for more features or a better test framework

    5. Effective collaboration via GitHub, IRC and video conferences

  • Notes & references:


  • Difficulty : Intermediate

  • Technology : Python, Linux shell, REST api, LInux Networking (basic)

  • Mentor : Fernando Fernandez Mancera, Till Maas (Helping with mentoring) and Gris Ge (Helping with mentoring).

  • IRC & Email :ffmancera, ferferna@redhat.com

Description

Nmstate is a python library (libnmstate) and a command line tool (nmstatectl) that manages host networking settings in a declarative manner. https://nmstate.github.io/

There are some users that want to run nmstate in systems that do not have or do not support python. In order to solve this issue, the student would implement the varlink support to use nmstate from other languages. https://varlink.org/

Till have implemented a Proof of Concept for this task so the user is able to use it to understand how varlink works and how to proceed. https://github.com/tyll/varlink-nmstate

Ideally, kubernetes-nmstate should be updated to use varlink. This is not a must.

Deliverables

As a GSoC intern, you will be responsible for the following :

  • Code of the varlink nmstate support

  • Basic usage documentation (User README)

  • Code documentation (Not very detailed, just general comments on how is the code structured)