Appel aux développeurs – Jellyfin
(jellyfin.org)- À l’occasion du 10e anniversaire de Hacktoberfest en octobre 2023, Jellyfin cherche à élargir sa base de contributeurs, qui stagne, et à accélérer l’amélioration du serveur, de la Web UI et des clients
- Le projet conserve un modèle de bénévolat semi-commercial, et les dons servent uniquement aux coûts d’infrastructure ainsi qu’à de rares achats de matériel client pour le développement
- Les contributeurs principaux sont au maximum environ 30 au total sur le serveur, la Web UI et l’ensemble des clients ; ce nombre n’a presque pas augmenté ces trois dernières années, si bien que certaines apps sont maintenues par 1 ou 2 personnes sur leur temps libre
- Les plaintes des utilisateurs se concentrent sur le manque de prise en charge des clients et le manque de finition ; même des fonctionnalités ou clients très demandés, comme Chromecast, ont parfois manqué d’élan de développement pendant un certain temps
- Il faut des contributions à tous les niveaux : petites corrections de bugs, amélioration de la documentation, UI/UX, traductions, développement complet de clients ; les contributeurs réguliers et de qualité peuvent aussi rejoindre l’équipe officielle
Pourquoi Jellyfin cherche maintenant des contributeurs
- Jellyfin fait de l’arrivée de nouveaux contributeurs un enjeu important à l’occasion du 10e anniversaire du Hacktoberfest de DigitalOcean
- À chaque controverse autour de Plex, Jellyfin est cité comme alternative, mais la communauté mentionne aussi régulièrement le manque de clients, l’absence de certaines fonctionnalités et le manque de finition
- Pour réduire cet écart, davantage de personnes doivent participer à l’amélioration du code, au développement de nouvelles fonctionnalités et à la mise à jour de la documentation
Les contraintes d’un projet fondé sur le bénévolat
- Jellyfin fonctionne comme un projet semi-commercial rare, même dans le monde du FLOSS
- Les développeurs, traducteurs, responsables de communauté et membres aidant à résoudre les problèmes sont tous bénévoles
- Personne n’est rémunéré pour travailler sur Jellyfin, et il n’existe pas de soutien d’une entreprise ou d’une organisation distincte
- Il n’y a aucun plan de monétisation, et le projet évite aussi activement les bug bounties
- Les dons servent uniquement aux coûts d’infrastructure et, lorsque c’est nécessaire, à l’achat rare de matériel client pour le développement
- Le projet ne rémunère pas les développeurs avec les dons et affirme qu’il ne le fera pas non plus à l’avenir
- Ce choix vise à éviter la trajectoire d’autres projets de streaming multimédia qui ont commencé comme FLOSS, puis ont ajouté des fonctionnalités hostiles aux utilisateurs pour des raisons de revenus avant de passer en code fermé
Le poids d’un large périmètre maintenu par une petite équipe
- La base actuelle de contributeurs principaux est au maximum d’environ 30 personnes au total pour le serveur, la Web UI et tous les clients
- Sa taille globale n’a presque pas augmenté ces trois dernières années
- Certains domaines, en particulier des apps individuelles, sont pris en charge gratuitement par 1 ou 2 personnes sur leur temps personnel
- Même des fonctionnalités ou clients très demandés peuvent cesser de progresser s’il n’y a personne pour lancer ou aider le développement
- Chromecast a dû être abandonné pendant un temps, mais une reprise s’est amorcée ces dernières semaines
Comment participer et rejoindre l’équipe officielle
- Les personnes qui souhaitent se lancer peuvent obtenir de l’aide via le guide de contribution, les canaux Matrix/IRC/Discord et le Forum
- Les contributions peuvent aller de petites corrections de bugs à l’amélioration de la documentation, jusqu’au développement complet de clients
- Une procédure de nomination des nouveaux membres de l’équipe existe également pour permettre aux personnes montrant des contributions de qualité et une volonté de s’impliquer de rejoindre l’équipe officielle
1 commentaires
Avis de Hacker News
Je ne savais pas que Jellyfin était basé sur C#.
J’ai commencé ma carrière comme développeur C#, mais aujourd’hui je ne fais plus que du C++, et je cherchais depuis un moment un projet qui me donnerait l’occasion de refaire du C#.
J’ai une liste de points qui me gênaient dans Jellyfin ; maintenant que je sais que c’est en C#, j’ai envie de les corriger moi-même.
Le langage a beaucoup évolué, avec notamment de meilleurs outils de confort pour les développeurs comme le pattern matching, les instructions
using, et des types de base orientés performance.J’ai recommencé à faire du C# à plein temps depuis le début de l’année, et j’en suis très satisfait.
Ce serait bien que l’équipe Jellyfin affiche aussi ce genre d’appel à contribution là où les utilisateurs demandent des fonctionnalités.
Pour la prise en charge de Chromecast, l’exemple de l’article de blog, j’avais demandé dans cette issue comment aider à implémenter la fonctionnalité : https://github.com/jellyfin/Swiftfin/issues/271#issuecomment...
Même s’il n’y avait finalement rien de productif que je puisse faire sur cette fonctionnalité, je serais certainement allé consulter un guide de démarrage s’il y en avait eu un.
Relier rapidement l’article de blog et les ressources pour démarrer dans les issues où les gens demandent comment aider pourrait convertir pas mal de monde.
Merci à toutes les personnes qui contribuent à Jellyfin, et je sais aussi que l’onboarding des développeurs finit souvent par représenter beaucoup plus de travail, mais c’est une suggestion : c’est un bon endroit pour mettre un lien d’appel à l’action.
J’avais essayé d’ajouter une fonctionnalité de liste d’autorisation basée sur des tags, très demandée à l’époque et qui ne semblait pas trop difficile à implémenter, et j’avais même identifié où la placer dans le code serveur.
Mais j’ai abandonné en réalisant que pour livrer la fonctionnalité, il fallait gérer des PR sur au moins deux dépôts et naviguer entre les deux pour les tests d’intégration.
Pour du code fortement couplé, un dépôt unique est vraiment pratique.
Je jetterai peut-être de nouveau un œil.
Au passage, le contrôle parental par liste d’autorisation est l’un des meilleurs outils, et c’est frustrant de voir qu’il est quasiment pris en charge nulle part.
Ce n’est probablement pas un problème que vous êtes seul à avoir rencontré.
C’est sans doute aussi pénible côté projet, mais ils s’y sont peut-être habitués au point de l’oublier.
La prise en charge des PR entre dépôts pourrait simplifier ce genre de procédure ; cela fait presque dix ans que je souhaite une telle fonctionnalité.
J’ai configuré le compte enfant pour qu’il ne voie que ce qui porte certains tags, et les tags Plex sont assez granulaires pour autoriser un film ou une série entière, une partie d’une série, ou seulement un épisode précis.
Aujourd’hui, il peut accéder à pas mal de contenus, mais les nouveaux contenus ne sont pas ouverts automatiquement.
Quand je récupère quelque chose comme de nouveaux épisodes de Bluey, ma femme veut d’abord les regarder ; dans les programmes pour enfants, il y a rarement de quoi poser un gros problème, donc on approuve presque toujours, mais ça rassure.
Je ne me souviens plus exactement de la terminologie, mais il y a à la fois des tags et des libellés, donc il faut faire attention.
Avant, j’essayais du mauvais côté ; en gros, il faut créer un libellé puis configurer le compte enfant pour qu’il ne voie que les contenus portant ce libellé.
C’est pratique de bloquer la plupart des films par classification, tout en autorisant individuellement certains films.
En tant que développeur travaillant uniquement sur des systèmes Linux, je me demande à quoi ressemble l’environnement de développement C#.
Je pensais que Mono existait toujours, et que c’était le runtime utilisé quand des projets C# s’exécutaient.
J’ai toujours eu l’impression que C# était un peu étrange hors Windows, mais je me trompais peut-être depuis tout ce temps.
Comme je n’ai jamais eu l’occasion ni le besoin de l’utiliser au travail, je ne sais pas vraiment à quel point les outils sont bons sur Mac ou Linux, ni comment cela fonctionne en pratique.
D’un autre côté, j’ai vu plusieurs fois des gens dire que c’était comme un Java en mieux, et ici F# semble aussi assez apprécié.
Le plugin C# ne fonctionne pas dans VSCodium.
Comme pour Java, la conception du langage C# part assez souvent du principe que l’on utilise un IDE.
Cela dit, pour une application web, à part ça, c’est correct.
Il faut faire un peu attention à l’installation du SDK et certaines API système se comportent un peu différemment, mais globalement je ne préfère Windows que très légèrement.
Mono existe toujours, mais depuis environ 2015, C# est pris en charge nativement sous Linux, et à ma connaissance presque plus personne n’utilise réellement Mono.
Son usage principal consiste plutôt à exécuter des applications .NET Framework, et non .NET Core.
Mono est encore là et sert à quelques usages spécialisés, comme WASM ou l’interpréteur.
À ma connaissance, même sur Azure, on préfère souvent le faire tourner sur des machines Linux, et c’est aussi le cas là où je travaille.
Les performances me semblent équivalentes, voire meilleures.
Désormais, beaucoup de développeurs C#, peut-être même la majorité, travaillent sur des machines non Windows, et la prise en charge de la nouvelle architecture Mac a été ajoutée très rapidement.
En résumé, aujourd’hui, le langage C# lui-même est aussi bon, voire meilleur, dans les environnements non Windows.
J’ai jeté un coup d’œil rapide au dépôt GitHub : il y a plus de 90 PR ouvertes sur le dépôt principal, et certaines sont sans retour depuis plus de 8 mois
Si l’équipe actuelle n’arrive déjà pas à traiter le volume de PR existantes, je ne vois pas bien l’intérêt de cet appel à contribution
Dans l’état actuel, davantage de PR n’aideront pas le projet
Une PR assez simple pour cela est ouverte depuis février 2023, mais elle est restée telle quelle sans retour exploitable : https://github.com/jellyfin/jellyfin/pull/9291
Je ne savais pas que Jellyfin avait besoin de développeurs
Je suis un gros utilisateur de Plex, mais comme je suis développeur C# de métier, j’ai cloné les projets serveur et web et j’ai commencé à travailler sur une première issue
J’aime vraiment Jellyfin et je l’utilise depuis 3 ans
Je compte bien participer au Hacktoberfest
J’aimerais utiliser Jellyfin, mais il n’y a pas de client Apple TV officiel
Je l’utilise et il est correct
Il s’intègre aussi à Jellyfin
[0] https://firecore.com/infuse
[1] https://jellyfin.org/posts/client-infuse/
J’en avais essayé un il y a quelques années et je n’avais pas eu de problème particulier avec le client Jellyfin
Si j’ai arrêté d’utiliser Jellyfin, c’est parce que Locast a fermé, alors que c’était mon usage principal
Les options de tri et de filtrage sont très limitées, l’interface saccade — par exemple, si on fait défiler trop vite, les jaquettes de films se chargent au mauvais endroit —, et il arrive que la barre de progression cesse de se mettre à jour pendant le reste du film après une pause
Cela reste tout de même utilisable
Le développement est un peu sporadique, mais quand j’en ai eu besoin par le passé, il fonctionnait correctement
J’avais vraiment envie d’utiliser Jellyfin et j’avais migré à un moment, mais je suis revenu à Plex quand j’ai découvert qu’il y avait beaucoup d’API non authentifiées, y compris pour les flux vidéo
Exposer Jellyfin sur le web me semblait beaucoup trop risqué
https://github.com/jellyfin/jellyfin/issues/5415
J’aimerais que la fonctionnalité Chromecast de Jellyfin iOS soit enfin développée
C’est littéralement cette seule fonctionnalité qui me fait utiliser Plex plutôt que Jellyfin
Ce serait bien que quelqu’un maîtrisant l’API Chromecast rejoigne l’équipe pour l’aider