2 points par GN⁺ 2023-10-04 | 1 commentaires | Partager sur WhatsApp
  • À 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

1 commentaires

 
GN⁺ 2023-10-04
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.

    • Si vous n’avez pas fait de C# depuis un moment, il y a de bonnes chances que ce soit assez agréable.
      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 serait au moins bien d’envoyer un retour sur l’endroit où vous êtes resté bloqué et avez abandonné.
      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.
    • C’est un gros problème de git/GitHub.
      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é.
    • Pour info, le contrôle parental de Plex est incroyablement flexible.
      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.
    • J’ai longtemps été frustré par les listes d’autorisation, puis j’ai appris sur Reddit comment en créer une avec Plex.
      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é.
    • Plex prend en charge à la fois les listes d’autorisation et les listes de blocage.
      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é.

    • Sur Arch, l’installation est un peu délicate, et depuis que Mono a quasiment disparu, on a l’impression que le seul choix d’IDE est VS Code, propriétaire et signé Microsoft.
      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.
    • C# sous Linux est seulement un peu plus pénible que sous Windows.
      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 existe encore, mais Jellyfin utilise .NET Core, le runtime libre et open source fourni par Microsoft.
    • L’environnement de développement C# est excellent et s’exécute nativement sous Linux.
      Mono est encore là et sert à quelques usages spécialisés, comme WASM ou l’interpréteur.
    • C# s’exécute nativement sous Linux depuis longtemps.
      À 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

  • 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

    • https://github.com/jellyfin/Swiftfin
      Je l’utilise et il est correct
    • Le lecteur multimédia Infuse[0][1] a d’excellents clients Apple TV / iOS / macOS
      Il s’intègre aussi à Jellyfin
      [0] https://firecore.com/infuse
      [1] https://jellyfin.org/posts/client-infuse/
    • Je me demande si les clients existants sont vraiment si mauvais
      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
    • Depuis que j’ai acheté une Apple TV, j’utilise Swiftfin et c’est globalement correct
      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
    • Il n’y a pas Swiftfin ?
      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