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)

  • Martin Bříza

Lista de ideas

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

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.

Entregables

  • Un prototipo del IU/UX para revista de comunidad.

  • Integrar el prototipo con la aplicación existente

  • Diseño de interfaz de usuario adaptable y compatible con múltiples pantallas (escalable)

  • ¡Trabaja con el pasante backend de GSoC para traer juntos una mejor aplicación!


Mejorar la aplicación Fedora para Android - Backend

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:

  • Investigar la mejor manera posible de mejorar el rendimiento e informar al mentor

  • Escriba código de Javascript para interprete de varios API de Fedora

  • Integrar en app de Android.

  • Trabajar con el becario de UX y colaborar en el diseño y las maquetaciones.

  • Lanzar la aplicación (Play Store, F-droid, etc. y mantener las versiones actualizadas)

Entregables

  • Sustituir las vistas web y crear una experiencia de Android más nativa, como el modo inmersivo, etc.

  • App de Android completamente funcional

  • Disponible en Play Store y F-droid.

  • Notificaciones para publicaciones nuevas, eventos del calendario, etc. con opción de suscripción.


Métricas : complemento fedmsg para perceval

Descripción

Durante el curso del proyecto, estará trabajando de cerca con las Operaciones de la Comunidad del Equipo Fedora (CommOps) para crear un panel de métricas para la comunidad. Para crear el panel, está utilizando la suite de herramientas Grimoirelab para crear el backend tan bien como el fontend.

Perceval es una herramienta que recopila datos de una fuente específica y cuenta con numerosos plugins predefinidos. El objetivo de este proyecto es añadirle compatibilidad con fedmsg para poder extraer métricas, lo que resultará útil para la comunidad Fedora.

Entregables Finales

Objetivos principales:

  • Un consumidor de fedmsg en funcionamiento

  • Un complemento para Perceval que permite obtener métricas directamente de FedMSG

  • Documentación del complemento

Objetivos secundarios: - Complementos adicionales para dar mantenimiento a WordPress, Twitter y otros orígenes de datos


Pagure: Un git basado en repositorio de fuentes

  • Dificultad: Intermedia

  • Tecnología: Python, git, pygit2

  • Mentores: pingou

Los solicitantes interesados en Pagure deben contribuir resolviendo los problemas de fácil solución en https://pagure.io/pagure/issues?status=Open&tags=easyfix antes de que finalice el período de solicitud.

Pagure es una forja centrada en git, basada en python y que utiliza pygit2.

Con pagure puedes alojar tu proyecto con su documentación, permitir que tus usuarios reporten problemas o soliciten mejoras utilizando el sistema de tickets y construir tu comunidad de colaboradores permitiéndoles bifurcar tus proyectos y contribuir a ellos a través del ahora popular mecanismo de pull request.

En Pagure, el estudiante seleccionará los proyectos junto con su mentor. Estos se elegirán entre los problemas más complejos de la lista de incidencias. Se espera que los estudiantes guíen al mentor en la selección de sus áreas de interés.


Aplicación web ASP.NET Core para subreddit /r/Fedora y Discord.

Descripción

Aplicación web ASP.NET Core para nuestro subreddit /r/Fedora que permitirá al usuario elegir una etiqueta (flair), según su pertenencia al grupo FAS (Sistema de Cuentas de Fedora) y verificar su cuenta de Discord con FAS como colaborador con CLA+1. Estos serán desarrollados en C# y se implementará en un servidor de producción Fedora como servicio systemd.

Aprenderá: - Qué es .NET Core y cómo usarlo en Linux - como escribir un código en C# para Linux y que IDEs están disponibles para ti. - Estructura básica de archivos de unidades de systemd y trabajo con servicios.

Entregables

  • Crea una aplicación ASP.NET Core con integraciones de Reddit y Discord.

  • Despliéguelo en nuestro servidor de producción Fedora como un servicio systemd

  • Configurar un proxy Apache seguro


Paquetes Fedora: Paquetes de Felicidad de Fedora

Resumen

Agrega la autenticación de cuentas de usuario de Fedora y la integración con fedmsg al Happiness Packets para su implementación en la infraestructura de Fedora

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

El proyecto se desglosa en entregables primarios (obligatorios) y entregables secundarios (opcionales).

Entregables primarios
  • Agregar soporte de backend para la autenticación de Ipsilon

    • Envía la aplicación al servidor principal

  • Integrar Publicación de fedmsg

  • Crea un archivo de reglas para la insignia de Fedora para otorgarla automáticamente

Entregables secundarios
  • Añadir compatibilidad con mensajes de vídeo

  • Añadir mantenimiento para emojis

  • Explora las principales API de redes sociales (por ejemplo, Twitter, Facebook, Reddit) para permitir compartir contenido en redes sociales

    • X

    • Facebook™


Host Atomic IoT (probablemente útil en muchas otras ideas atómicas) moderniza demonio

  • Nivel de habilidad: medio

  • Requisitos: Python y/o C

  • Mentor: Peter Robinson

Los dispositivos IoT deben ser prácticamente inutilizables. Al actualizar un dispositivo, si deja de funcionar, debe poder revertir automáticamente a la versión anterior o, como mínimo, contactar con el servicio de actualizaciones para obtener una versión corregida más reciente.

Se requiere un demonio para gestionar este estado. El demonio debería poder hacer lo siguiente:

  • Supervisar el estado de las descargas disponibles

  • Aplicar el delta de actualización Atomic

  • Configura un indicador de "arrancar una vez" para iniciar la versión nueva a través de GRUB

  • Configura un vigilante de hardware

  • inicia un reinicio del sistema

  • Si falla el arranque en el espacio de usuario normal, se activa el temporizador de vigilancia y se restablece a la versión anterior

  • Si el arranque se realiza correctamente hasta que se inicia el demonio, entonces se procede a la segunda fase del proceso de modernización

  • Desactiva el vigía tal que el SO no se reinicie

  • Comprueba que puede ver todas las interfaces de red necesarias

  • Comprueba que puede resolver direcciones y contactar con el servidor de actualizaciones

  • Comprueba que esté conectado a todos los demás servicios críticos (p.e. MQTT o una API HTTPS

  • Comprueba que todo lo que puede ver y todos los sensores y servicios funcionan correctamente

Es necesario establecer un método para determinar qué componentes son críticos para el funcionamiento correcto del dispositivo. Algunos componentes serán comunes a todos los tipos de dispositivos, como la capacidad de verificar el funcionamiento de las interfaces de red, la disponibilidad de un servicio de actualización y la disponibilidad de otros servicios, etc. Otros, en cambio, podrían ser complementos, por ejemplo, para comprobar el funcionamiento de las GPIO y que sensores IIO específicos, cámaras u otros elementos similares se detecten correctamente.

  • Lo que estamos buscando: un demonio inicial con funcionalidad básica con diseño bueno que pude ser extendido. Integración con actualizaciones atómicas, etc.


Linter de Dockerfile Fedora que aprovecha las Mejores Prácticas de Contenedor

  • Nivel de habilidad: Intermedio

  • Capacidades requeridas: Python, contenedores

  • Mentores: Tomas Tomecek, Eliska Slobodova

  • Contactos (IRC y correo-e): ttomecek (ttomecek @redhat.com), eslobodo (eslobodo @redhat.com)

Descripción

La infraestructura de Fedora para la distribución de imágenes de contenedores carece de pruebas automatizadas de las imágenes y los Dockerfiles subyacentes. El documento Documento sobre las mejores prácticas para contenedores recopila las mejores prácticas para escribir e implementar imágenes.

Entregables

Con Container Best Practices como guía, crearás una herramienta para realizar comprobaciones básicas y avanzadas en Dockerfiles e imágenes, aplicables a cualquier imagen. En colaboración con el equipo de infraestructura de Fedora, implementarás la herramienta en la infraestructura de contenedores para que las pruebas se ejecuten automáticamente con cada nueva compilación o confirmación, o localmente antes de que el desarrollador suba los cambios de forma remota.


Casos de prueba avanzados para imágenes que se ejecutan en OpenShift usando conu

  • Nivel de habilidad: Intermedio

  • Habilidades requeridas: Python, contenedores, OpenShift

  • Mentores: Tomas Tomecek, Dominika Hodovska

  • Contactos (IRC y correo-e): ttomecek (ttomecek @redhat.com), dhodovsk (dhodovsk @redhat.com)

Descripción

Conu es una biblioteca la cual proporciona API de Python para interacturar con un contenedor seleccionado en tiempo de ejecución. Simplifica la escritura de pruebas para imágenes de contenedor. Sin embargo, al proyecto actuales le falta mantenimiento para OpenShift y Kubernetes.

Entregables

  • Tu logro principal será desarrollar al menos 10 funciones nuevas que permitan a los usuarios escribir pruebas para escenarios de OpenShift.

  • Tu logro secundario será escribir pruebas para al menos 5 imágenes (por ejemplo, MariaDB, MySQL, PostgreSQL, Golang, Rust) utilizando todas las capacidades de conu.


Soporte completo para OpenShift y Kubernetes como backend en conu

  • Nivel de habilidad: Intermedio - Avanzado

  • Habilidades requeridas: Python, contenedores

  • Mentor: Tomas Tomecek

  • Contactos (IRC y correo-e): ttomecek (ttomecek @redhat.com)

Descripción

conu define una API genérica para interactuar con contenedores y motores de contenedores. Para que el proyecto sea más usable, nos gustaría añadir la implementación de sistemas de orquestación de contenedores conocidos: Kubernetes y OpenStorage.

Entregables

  • Escribe una serie de solicitudes de extracción para agregar soporte para Kubernetes y OpenShift en el proyecto conu.

  • La funcionalidad recién añadida necesita contar con pruebas de integración que puedan ejecutarse dentro de un entorno de integración continua (CI) y que sean superadas.

  • Y, por último, se debe demostrar que la función funciona bien con al menos 3 ejemplos reales.


Integración continua para Fedora Media Writer + Pruebas

  • Nivel de habilidad: Intermedio

  • Habilidades requeridas: CI, C++, Qt

  • Mentor: Martin Bříza

  • Contactos (IRC y correo-e): mbriza@freenode y m@rtinbriza.cz

Descripción

Fedora Media Writer es una herramienta con dos plataformas de compilación y tres de despliegue. Resulta bastante difícil comprobar que todo el código nuevo se compile correctamente y, por ahora, no hay pruebas.

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.

Entregables

Working CI integration for macOS and Fedora-latest or Rawhide. A set of tests covering at least 5 closed bugs.


Compatibilidad con ARM uBoot en Fedora Media Writer

  • Nivel de habilidad: Intermedio - Avanzado

  • Skills required: C++, Qt, ext4, bash/Python (?)

  • Mentor: Martin Bříza

  • Contactos (IRC y correo-e): mbriza@freenode y 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.

Entregables

A Fedora Media Writer build that’s able to deliver a Fedora SD card that can boot on a currently unsupported ARM platform (for example, Cubieboard) on Linux, Windows and macOS.


Ideas Abiertas Desde Anteriores Años

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.