Menciones e Ideas de Google Summer of Code 2018
| ¡Fedora ha sido aceptada como organización mentora! Por favor, lea detenidamente las páginas información general y proceso de solicitud antes de presentar su solicitud. |
Si eres estudiante y te interesa participar en el Google Summer of Code con Fedora, no dudes en consultar esta lista de ideas. Es posible que se agreguen más ideas durante el período de solicitud.
Ahora por favor ve a leer la sección Qué Puedo Yo Hacer Hoy de la página principal. Esto 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).
-
Brian (bex) Exelbierd (Acción de la Comunidad Fedora y Coordinación de Impacto, ACFCI/FCAIC, 🎂, contenedores, desarrollo general, Linux general)
-
Justin W. Flory (Desarrollo general, Linux general, Comunidad Fedora, GSoC alumnus, cuestiones sobre programa, consejo misc.)
-
Sachin S. Kamath (Python Dev, Linux General, Comunidad Fedora, Métricas, Alumnos GSoC, Ayuda con programa)
Lista de ideas
| Las ideas están sujetas a cambios a medido que se incorporan mentores adicionales. |
-
[Mejora de App de Android de Fedora - Investigación y Diseño de UI/UX]
-
[Aplicación web ASP.NET Core para subreddit /r/Fedora y Discord.]
-
[Demonio de modernización de host de Atomic IoT (probablemente útil en muchas otras ideas atómicas)]
-
[Linter de Dockerfile de Fedora que aprovecha las mejores prácticas de contenedores]
-
[Casos de prueba avanzados para imágenes que se ejecutan en OpenShift usando conu]
-
[Soporte completo para OpenShift y Kubernetes como backend en conu]
-
Mejorar el soporte GPIO en Fedora en general y particularmente en Raspberry Pi - Este proyecto ya no está más disponible
Mejorar la aplicación Fedora para Android: investigación y diseño de UI/UX
-
Dificultad : Intermedia
-
Tecnología : XML, UX, Inkscape, Android, Diseños, HTML, CSS, Cordova, Angular, Javascript, Ionic.
-
Mentores: Kanika Murarka, Sumantro Mukherjee
Descripción
Fedora cuenta con una aplicación para Android que permite al usuario explorar revistas, Fedora Ask, el calendario, etc. Sin embargo, aún es muy básica y requiere mucha experiencia en UI/UX. Como becario de GSoC, serás responsable de lo siguiente:
-
Participar en debates comunitarios y realizar investigaciones comunitarias
-
Construya maquetas iniciales y recopile comentarios de la comunidad.
-
Finalizar el diseño y empezar a hacerlos funcionales
-
Escriba Javascript (Angular), integre con la aplicación de Android
-
Siga los estándares UX/IU para crear la mejor experiencia posible para Android.
Repositorio: https://pagure.io/Fedora-app
Mejorar la aplicación Fedora para Android - Backend
-
Dificultad: Intermedio - Experto
-
Tecnología: Javascript, Android, Experiencia con API REST, Android Studio.
-
Mentores: Kanika Murarka, Sumantro Mukherjee
Descripción
Fedora cuenta con una aplicación para Android que permite al usuario explorar Fedora Magazine, Fedora Ask, Fedocal, etc. Sin embargo, la mayoría de las funciones dependen de un navegador integrado en la aplicación para mostrar el contenido y requieren optimización de velocidad e integración nativa. Como becario de Summer of Code, serás responsable de lo siguiente:
-
Research on the best possible way to improve performance and report to mentor
-
Write Javascript code to parse various Fedora APIs
-
Integrate in Android app.
-
Work with the UX intern and collaborate over the design and layouts.
-
Publish app (Play Store, F-droid, etc and maintain releases)
Repositorio: https://pagure.io/Fedora-app
Entregables
-
Replace web views and build a more native Android experience like immersive mode, etc.
-
Fully functional Android app
-
Releases in Play Store and F-droid.
-
Notifications for new posts, calendar events, etc on an opt-in basis.
Metrics : fedmsg plugin for perceval
-
Dificultad: Intermedio - Experto
-
Technology : Python, More Python, Understanding of data processing, Python libraries
-
Mentors : Sachin S. Kamath (skamath), Justin W. Flory (jwf)
Descripción
During the course of the project, you will be closely working with the Fedora Community Operations (CommOps) Team to build a metrics dashboard for the community. For building the dashboard, we will be using Grimoirelab suite of tools to build the backend as well as the frontend.
Perceval is a tool that collects data from a given data source and has a lot of pre-defined plugins. The aim of this project is to add fedmsg support to it so that metrics can be pulled out of it, suitable for the Fedora community.
Pagure: A git based source repository
-
Dificultad: Intermedia
-
Technology: Python, git, pygit2
-
Mentors: pingou
| Applicants interested in Pagure must contribute by solving easy fix issues before the end of the application period. |
With pagure you can host your project with its documentation, let your users report issues or request enhancements using the ticketing system and build yourcommunity of contributors by allowing them to fork your projects and contributeto it via the now-popular pull-request mechanism.
-
Repo: https://pagure.io/pagure
-
Issues: https://pagure.io/pagure/issues
Projects in Pagure will be selected by the student in concert with the mentor. They will be drawn from the non-easyfix issues in the issue queue. Students are expected to guide the mentor in helping them select areas of interest.
ASP.NET Core web application for /r/Fedora subreddit and Discord.
-
Difficulty: Intermediate (some Object Oriented language experience required, not necessarily C#)
-
Technology: C# - .NET Core on Fedora & ipsilon
-
Mentors: Radka Janeková (rhea)
Descripción
ASP.NET Core web application for our /r/Fedora subreddit to let the user choose a flair, based on their FAS (Fedora Account System) Group memberships, and to be able to verify Discord account with FAS as contributor with CLA+1. These will be written in C# and deployed on a Fedora production server as systemd service.
You will learn: - What is it .NET Core and how to use it in Linux - How to write C# code in Linux and what IDEs are available to you. - Basic systemd unitfile structure and working with services.
Fedora Packets: Fedora Happiness Packets
-
Difficulty: Intermediate - Expert
-
Technology: Python, HTML/CSS/JS, knowledge of fedmsg optional: Cloud / Ansible, UI UX skills graphic design
-
Mentors:
-
Bee Padalkar (bee2502) (tentative)
-
Project is open for mentors (commitment 6-8 hrs/week)
Resumen
Add Fedora user account authentication and fedmsg integration to Happiness Packets to deploy in Fedora’s infrastructure
Segundo plano
Happiness Packets is a web application to send positive feedback and thank-you notes to open source contributors. You can send a note with your name or anonymously. The Fedora community plans to have a Fedora Appreciation Week in 2018, where contributors thank each other and celebrate our accomplishments together. Fedora wants to extend Happiness Packets by giving a Fedora Badge to anyone who sends a Happiness Packet to another contributor. To do this, we need to fork Happiness Packets and add support for Fedora’s authentication system and add a fedmsg hook. This lets Fedora contributors log in and receive a badge when they send a Happiness Packet.
Detalles
The project is split into primary deliverables (required) and secondary deliverables (optional).
Primary deliverables
-
Add back-end support for Ipsilon authentication
-
Push the application upstream
-
-
Integrate fedmsg publishing
-
Create Fedora Badge rule file to automatically award badge
Atomic IoT (likely useful in numerous other Atomic ideas) host upgrade daemon
-
Skill level: medium
-
Skills required: python3 ans/or C
-
Mentor(s): Peter Robinson
IoT devices need to be almost impossible to brick. When you upgrade a device if it doesn’t work it needs to be able to automatically role back, or at the very least be able to contact the update service for a newer fixed version.
A daemon to manage this state is required. The daemon would need to be able to do the following:
-
Monitor the status of available downloads
-
Apply the Atomic update delta
-
Set a "boot once" flag to boot the new version via grub
-
Set a hardware watchdog
-
initiate a reboot of the system
-
If boot to normal userspace fails the watchdog triggers and it resets to the old version
-
If boot succeeds to the point the daemon starts up it then proceeds to phase two of the upgrade process
-
Unsets watchdog so the OS won’t reset
-
Checks it can see all required network interfaces
-
Checks it can resolve addresses and contact the update server
-
Check it’s connected to all other critical services (eg MQTT or a HTTPS API
-
Checks it can see and all sensors and services are running correctly
There needs to be a means of specifying what components are critical to the successful operation of the device. Some components will be the same across all types of device such as the ability to check network interfaces are operating, to check an update service is available, to check services are available etc but some might be plugins eg to check GPIO is working, specific IIO sensors, cameras or other such things are seen as expected.
-
What are we looking for: An initial daemon with basic functionality with good design that can be extended. Integration with atomic updates etc.
Fedora Dockerfile linter leveraging Container Best Practices
-
Skill level: Intermediate
-
Skills required: Python, containers
-
Mentor(s): Tomas Tomecek, Eliska Slobodova
-
Contacts (IRC & email): ttomecek (ttomecek @redhat.com), eslobodo (eslobodo @redhat.com)
Descripción
Fedora infrastructure for container image delivery is lacking any kind of automated testing of the images or underlying Dockerfiles. The Container Best Practices document is a digest of recommended practices for writing and deploying images.
Entregables
With Container Best Practices serving as a “cheatsheet”, you will create a tool to perform basic and advanced checks on Dockerfiles and images that can be applicable generally regardless of an image. In cooperation with the Fedora infrastructure team, you will deploy the tool in the container infrastructure so that the tests can be executed automatically upon a new build/commit or locally before the developer pushes the changes remotely.
Advanced test cases for images running in OpenShift using conu
-
Skill level: Intermediate
-
Skills required: Python, containers, OpenShift
-
Mentor(s): Tomas Tomecek, Dominika Hodovska
-
Contacts (IRC & email): ttomecek (ttomecek @redhat.com), dhodovsk (dhodovsk @redhat.com)
Descripción
Conu is a library which provides Python API to interact with a selected container runtime. It simplifies writing of tests for container images. However, the project currently lacks support for OpenShift and Kubernetes.
Complete support for OpenShift and Kubernetes as a backend in conu
-
Skill level: Intermediate - Expert
-
Skills required: python, containers
-
Mentor(s): Tomas Tomecek
-
Contacts (IRC & email): ttomecek (ttomecek @redhat.com)
Descripción
conu defines a generic API to interact with containers and container engines. To make the project more usable, we would like to add implementation of well known container orchestration systems — Kubernetes and OpenShift.
Entregables
-
Write a series of pull requests to add support for Kubernetes and OpenShift in conu project.
-
The newly added functionality needs to have integration tests which can run inside CI environment and are passing.
-
And finally, the feature should be demonstrated it works well by at least 3 real examples.
Continuous Integration for Fedora Media Writer + Tests
-
Skill level: Intermediate
-
Skills required: CI, C++, Qt
-
Mentor(s): Martin Bříza
-
Contacts (IRC & email): mbriza@freenode & m@rtinbriza.cz
Descripción
Fedora Media Writer is a tool with two build platforms and three deployment platforms. It’s quite challenging to check all the new added code for being able to build properly and as of now, there are no tests.
Your task in this project would be to get a CI platform of your choice to work well with FMW on GitHub. The required environments are Fedora and macOS. Windows builds are done using the MinGW packages in Fedora and FMW can run using Wine - this should be sufficient for testing, however testing the MinGW builds under native Windows is a definite plus.
Qt provides the QTest framework for testing the application - it’s the preferred platform to write tests in this case, however using a bash or Python library is likely okay, too. However, once again, as QTest is easily attachable to the internal structures of FMW, it’s strongly suggested.
Bonus points are if you get automatic binary builds published in the Releases section for tags.
ARM uBoot Support in Fedora Media Writer
-
Skill level: Intermediate - Expert
-
Skills required: C++, Qt, ext4, bash/Python (?)
-
Mentor(s): Martin Bříza
-
Contacts (IRC & email): mbriza@freenode & m@rtinbriza.cz
Descripción
Fedora Media Writer now supports writing ARM images to portable media. These cards can then boot on devices that support Fedora out of the box, like the Raspberry Pi. However, to support most other boards, one has to do some modifications to the image on the flash drive. The first of them is writing uBoot (open source bootloader) to the start of the drive. Then it’s sometimes necessary to tweak some environment variables or modify a configuration file.
These are the tasks that are possible to be automated. However, it’s necessary to find a way how to do that in a clean fashion. As an example of an approach to this problem, you can take a look at the arm-image-installer. One option would be to cooperate with the ARM SIG to create a solution that uses their know-how or code directly. I have some ideas so please go ahead and talk to me.
Remember, this is pretty trivial to do on Linux, however we need this functionality to work on Windows and macOS. This induces issues - especially with filesystem handling. For your project proposal, I expect you include a rough description of how you’re planning to tackle this problem.
Open Ideas From Previous Years
Además de la lista de ideas anterior, es posible que desees consultar ideas de años anteriores y comunicarte con los mentores de esos proyectos para ver si todavía están interesados en asesorar a alguien este año.
Nota: No envíes una propuesta para una idea de un año anterior sin contactar al mentor para asegurarte de que esté disponible para guiarte. Sin mentor, las propuestas serán rechazadas.
Want to help? Learn how to contribute to Fedora Docs ›