Convocatoria para desarrolladores - Jellyfin
(jellyfin.org)- Jellyfin busca ampliar su base estancada de colaboradores con motivo del 10.º aniversario de Hacktoberfest en octubre de 2023 y acelerar las mejoras del servidor, la Web UI y los clientes
- El proyecto mantiene un modelo de voluntariado semicomercial, y las donaciones solo se usan para costos de infraestructura y, en raras ocasiones, hardware cliente para desarrollo
- Los colaboradores principales suman como máximo unas 30 personas entre el servidor, la Web UI y todos los clientes, y casi no han aumentado en los últimos 3 años, por lo que algunas apps son mantenidas por 1 o 2 personas en su tiempo libre
- Las quejas de los usuarios se concentran en la falta de soporte de clientes y en la falta de pulido, e incluso funciones y clientes con alta demanda, como Chromecast, pasaron un tiempo sin impulso de desarrollo
- Hace falta de todo: desde pequeñas correcciones de errores, mejoras de documentación, UI/UX y traducción, hasta desarrollo completo de clientes; quienes aporten contribuciones de calidad de forma constante también podrían unirse al equipo oficial
Por qué Jellyfin está buscando colaboradores ahora
- Jellyfin ha tomado como una tarea importante atraer nuevos colaboradores con motivo del 10.º aniversario de Hacktoberfest de DigitalOcean
- Cada vez que surge una polémica relacionada con Plex, Jellyfin aparece como alternativa, pero en la comunidad también se repiten las críticas sobre la falta de clientes, la ausencia de ciertas funciones y la falta de pulido
- Para cerrar esa brecha, hace falta que más personas participen en mejorar el código, desarrollar nuevas funciones y poner al día la documentación
Limitaciones de un proyecto basado en voluntariado
- Jellyfin se gestiona como un proyecto semicomercial poco común incluso dentro del FLOSS
- Desarrolladores, traductores, administradores de comunidad y quienes ayudan a resolver problemas son todos voluntarios
- Nadie recibe pago por trabajar en Jellyfin, y tampoco hay patrocinio de una empresa ni de una organización aparte
- No hay planes de monetización, y también se evita activamente ofrecer bug bounties
- Las donaciones solo se usan para costos de infraestructura y para hardware cliente de desarrollo que se compra rara vez cuando hace falta
- No se usan donaciones para pagar a desarrolladores, y la postura es que tampoco se hará en el futuro
- Esta decisión busca evitar el camino de otros proyectos de streaming multimedia que comenzaron como FLOSS, pero luego añadieron funciones hostiles para los usuarios por motivos de ingresos y pasaron a código cerrado
La carga de mantener un alcance amplio con un equipo pequeño
- Actualmente, la base de colaboradores principales es de como máximo unas 30 personas entre el servidor, la Web UI y todos los clientes
- En los últimos 3 años, el tamaño total casi no ha crecido
- Algunas áreas, en especial ciertas apps individuales, son trabajadas por 1 o 2 personas gratis en su tiempo libre
- Incluso funciones o clientes con mucha demanda pueden quedarse sin avances si no hay quien empiece el desarrollo o ayude
- Chromecast tuvo que dejarse de lado durante un tiempo, pero en las últimas semanas volvió a haber movimiento
Cómo participar y la vía para unirse al equipo oficial
- Quienes quieran empezar pueden recibir ayuda a través de la guía de contribución, los canales de Matrix/IRC/Discord y el Forum
- El rango de contribuciones es amplio: desde pequeñas correcciones de errores y mejoras de documentación hasta el desarrollo completo de clientes
- Si demuestran contribuciones de calidad y disposición para participar, también existe un proceso de nominación de nuevos miembros del equipo para unirse al equipo oficial
1 comentarios
Opiniones en Hacker News
No sabía que Jellyfin estaba basado en C#.
Empecé mi carrera como desarrollador C#, pero ahora solo uso C++, y llevaba tiempo buscando un proyecto para volver a usar C#.
Tengo una lista de cosas que me incomodaban de Jellyfin, y ahora que sé que está en C#, me dan ganas de arreglarlas yo mismo.
El lenguaje avanzó mucho, y en particular mejoró la comodidad para desarrollar con cosas como pattern matching, la instrucción
usingy tipos básicos orientados al rendimiento.Empecé a usar C# de nuevo a tiempo completo desde principios de este año y estoy muy satisfecho.
Estaría bueno que el equipo de Jellyfin también muestre este pedido de participación en los lugares donde los usuarios piden funciones.
En el caso del soporte para Chromecast, que es el ejemplo del post del blog, había preguntado en este issue cómo podía ayudar a implementar la función: https://github.com/jellyfin/Swiftfin/issues/271#issuecomment...
Aunque en la práctica no hubiera habido nada en lo que pudiera contribuir productivamente para esa función, si hubiera existido una guía para empezar, sin duda la habría revisado.
Si enlazan rápidamente el post del blog y los materiales de inicio en los issues donde la gente pregunta cómo ayudar, creo que la conversión podría ser bastante buena.
Gracias a todos los que contribuyen a Jellyfin, y sé que el onboarding de desarrolladores a menudo termina siendo un trabajo más grande, pero la sugerencia es que ese es un buen lugar para poner un enlace con llamado a la acción.
Había intentado agregar una función de lista de permitidos basada en etiquetas, que se había pedido mucho antes y no parecía difícil de implementar, e incluso había identificado dónde ponerla en el código del servidor.
Pero me di cuenta de que, para entregar la función, tendría que manejar PRs en al menos dos repositorios y moverme entre ambos para las pruebas de integración, así que lo dejé.
Para código fuertemente acoplado, un solo repositorio es realmente cómodo.
Quizás vuelva a revisarlo alguna vez.
De paso, el control parental basado en listas de permitidos es una de las mejores herramientas, pero frustra que casi nadie lo soporte realmente.
Probablemente no seas la única persona a la que le pasó.
Al proyecto también puede resultarle incómodo, pero quizá ya se acostumbraron a esa incomodidad y la olvidaron.
Si se soportaran PRs entre repositorios, se podría simplificar este proceso; llevo casi 10 años queriendo una función así.
Configuré la cuenta de los niños para que solo puedan ver contenido con ciertas etiquetas, y como las etiquetas de Plex son bastante granulares, es posible permitir una película o serie completa, parte de una serie, o incluso un solo episodio.
Ahora pueden acceder a bastante contenido, pero el contenido nuevo no se habilita automáticamente.
Cuando consigo algo como un episodio nuevo de Bluey, mi esposa quiere verlo primero, y aunque casi siempre lo aprobamos porque rara vez hay algo muy problemático en los programas infantiles, nos da tranquilidad.
No recuerdo exactamente los términos, pero hay que tener cuidado porque existen tanto tags como labels.
Antes estaba intentando con el lado equivocado; básicamente hay que crear un label y luego configurar la cuenta infantil para que solo vea contenido con ese label.
Está bueno porque puedes bloquear la mayoría de las películas por clasificación y permitir solo algunas de forma individual.
Como desarrollador que trabaja solo en sistemas Linux, me da curiosidad cómo es el entorno de desarrollo de C#.
Pensaba que Mono todavía existía y que ese era el runtime que usaban los proyectos C# al ejecutarse.
Siempre sentí que C# era algo incómodo fuera de Windows, aunque quizá estuve equivocado todo este tiempo.
Como no tuve oportunidad ni necesidad de usarlo en el trabajo, no sé qué tan buenas son las herramientas en Mac o Linux, ni cómo funciona realmente.
Por otro lado, varias veces leí que es como un Java mejor, y por aquí parece que también gusta bastante F#.
El plugin de C# no funciona en VSCodium.
Al igual que Java, el diseño del lenguaje C# asume bastante que vas a usar un IDE.
Aun así, si se trata de una aplicación web, aparte de eso está bien.
Hay que prestar un poco de atención al instalar el SDK y algunas APIs del sistema se comportan de forma ligeramente distinta, pero en general el nivel de preferencia por Windows es apenas mayor.
Mono todavía existe, pero desde alrededor de 2015 C# tiene soporte nativo en Linux y, hasta donde sé, casi nadie usa Mono realmente hoy.
Su uso principal es ejecutar apps de .NET Framework, no .NET Core.
Mono todavía sigue existiendo y se usa en algunos casos especiales, como WASM e intérpretes.
Hasta donde sé, incluso en Azure muchas veces prefieren correrlo en máquinas Linux, y donde trabajo también es así.
Diría que el rendimiento es igual o mejor.
Hoy muchos desarrolladores C#, quizá incluso la mayoría, trabajan en máquinas que no son Windows, y el soporte para la nueva arquitectura de Mac también se agregó muy rápido.
En resumen, hoy en día el lenguaje C# en sí es igual o mejor en entornos que no son Windows.
Le di un vistazo al repositorio de GitHub, y en el repositorio principal hay más de 90 PR abiertos, y algunos llevan más de 8 meses sin feedback
Si el equipo actual ni siquiera puede procesar el volumen de PR existente, no sé qué sentido tiene esta convocatoria a participar
En el estado actual, que haya más PR no ayuda al proyecto
Hay un PR bastante simple para esto abierto desde febrero de 2023, pero sigue igual, sin feedback accionable: https://github.com/jellyfin/jellyfin/pull/9291
No sabía que Jellyfin necesitaba desarrolladores
Soy usuario intensivo de Plex, pero de profesión soy desarrollador C#, así que cloné el servidor y el proyecto web y me puse a trabajar en mi primer issue
Me encanta Jellyfin y lo uso desde hace 3 años
Definitivamente pienso participar en Hacktoberfest
Quiero usar Jellyfin, pero no tiene cliente oficial para Apple TV
Lo estoy usando y está bien
También se integra con Jellyfin
[0] https://firecore.com/infuse
[1] https://jellyfin.org/posts/client-infuse/
Cuando probé uno hace unos años, no tuve mayores problemas con el cliente de Jellyfin
Dejé de usar Jellyfin porque Locast cerró, y ese era mi uso principal
Le faltan muchas opciones de ordenamiento y filtros; se traba, por ejemplo si haces scroll demasiado rápido, las tarjetas de películas se cargan en posiciones equivocadas, y a veces la barra de progreso deja de actualizarse durante el resto de la película después de pausar
Aun así, es usable
El desarrollo es algo intermitente, pero cuando lo necesité antes funcionaba bien
Tenía muchas ganas de usar Jellyfin y en su momento migré, pero al enterarme de que tiene muchas API no autenticadas, incluso para streams de video, volví a Plex
Me pareció demasiado riesgoso exponer Jellyfin a la web
https://github.com/jellyfin/jellyfin/issues/5415
Ojalá por fin se desarrolle la función de Chromecast en Jellyfin para iOS
Literalmente uso Plex en lugar de Jellyfin solo por esa función
Sería genial que alguien con experiencia en la API de Chromecast se sumara y ayudara al equipo