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

Paquetes de Felicidad es una aplicación web para enviar comentarios positivos y notas de agradecimiento a los colaboradores de código abierto. Puedes enviar una nota con tu nombre o de forma anónima. La comunidad de Fedora planea celebrar una Semana de Agradecimiento de Fedora en 2018, donde los colaboradores se agradecerán mutuamente y celebrarán juntos sus logros. Fedora quiere ampliar los Paquetes de Felicidad otorgando una Insignia de Fedora a cualquiera que envíe un Paquete de Felicidad a otro colaborador. Para ello, necesitamos bifurcar los Paquetes de Felicidad y añadir compatibilidad con el sistema de autenticación de Fedora, además de un gancho fedmsg. Esto permite a los colaboradores de Fedora iniciar sesión y recibir una insignia al enviar un Paquete de Felicidad.

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

  • Inactiva 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.

Tu tarea en este proyecto será conseguir una plataforma de integración continua (IC) de tu elección que funcione correctamente con FMW en GitHub. Los entornos requeridos son Fedora y macOS. Las compilaciones de Windows se realizan con los paquetes de MinGW en Fedora y FMW puede ejecutarse con Wine; esto debería ser suficiente para las pruebas; sin embargo, probar las compilaciones de MinGW en Windows nativo es una gran ventaja.

Qt proporciona el framework QTest para probar la aplicación. Es la plataforma preferida para escribir pruebas en este caso; sin embargo, usar una biblioteca de Bash o Python probablemente también sea adecuado. Sin embargo, como QTest se integra fácilmente con las estructuras internas de FMW, se recomienda encarecidamente.

Obtendrás puntos de bonificación si obtienes compilaciones binarias automáticas publicadas en la sección Lanzamientos para etiquetas.

Entregables

Integración de IC funcional para macOS y Fedora (versión más reciente) o Rawhide. Un conjunto de pruebas que abarca al menos 5 defectos resueltos.


Compatibilidad con ARM uBoot en Fedora Media Writer

  • Nivel de habilidad: Intermedio - Avanzado

  • Habilidades requeridas: 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 ahora admite la escritura de imágenes ARM en dispositivos portátiles. Estas tarjetas pueden arrancar en dispositivos compatibles con Fedora de fábrica, como la Raspberry Pi. Sin embargo, para que sea compatible con la mayoría de las demás placas, es necesario realizar algunas modificaciones en la imagen de la unidad flash. La primera de ellas es escribir uBoot (gestor de arranque de código abierto) al inicio de la unidad. A veces es necesario ajustar algunas variables de entorno o modificar un archivo de configuración.

Estas son las tareas que se pueden automatizar. Sin embargo, es necesario encontrar una manera de hacerlo de forma limpia. Como ejemplo de cómo abordar este problema, puede consultar el arm-image-installer. Una opción sería colaborar con el SIG de ARM para crear una solución que utilice directamente su conocimiento o código. Tengo algunas ideas, así que no dude en contactarme.

Recuerda que esto es bastante sencillo en Linux; sin embargo, necesitamos que esta funcionalidad funcione en Windows y macOS. Esto genera problemas, especialmente con la gestión del sistema de archivos. En tu propuesta de proyecto, espero que incluyas una descripción general de cómo planeas abordar este problema.

Entregables

Una compilación de Fedora Media Writer que puede entregar una tarjeta SD de Fedora que puede iniciarse en una plataforma ARM actualmente no compatible (por ejemplo, Cubieboard) en Linux, Windows y 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.