2 pontos por GN⁺ 2023-10-04 | 1 comentários | Compartilhar no WhatsApp
  • O Jellyfin quer ampliar sua base estagnada de contribuidores e acelerar o ritmo de melhorias no servidor, na Web UI e nos clientes, tendo como marco o 10º aniversário do Hacktoberfest em outubro de 2023
  • O projeto mantém um modelo voluntário semicomercial, e até as doações são usadas apenas para custos de infraestrutura e hardware de cliente para desenvolvimento adquirido raramente
  • Os contribuidores principais somam no máximo cerca de 30 pessoas considerando servidor, Web UI e todos os clientes, e esse número quase não cresceu nos últimos 3 anos, então alguns apps são mantidos por 1 ou 2 pessoas em seu tempo livre
  • As reclamações dos usuários se concentram na falta de suporte a clientes e na falta de polimento, e até recursos e clientes com alta demanda, como o Chromecast, já passaram um tempo sem força de desenvolvimento
  • Há necessidade de tudo, desde pequenas correções de bugs, melhorias na documentação, UI/UX, tradução e desenvolvimento de clientes completos, e quem contribuir de forma consistente e com qualidade pode até entrar para a equipe oficial

Por que o Jellyfin está procurando contribuidores agora

  • O Jellyfin definiu a entrada de novos contribuidores como uma tarefa importante em sintonia com o 10º aniversário do Hacktoberfest da DigitalOcean
  • Sempre que surgem controvérsias relacionadas ao Plex, o Jellyfin é citado como alternativa, mas na comunidade também se repetem pontos como falta de clientes, ausência de certos recursos e falta de acabamento
  • Para reduzir essa diferença, mais pessoas precisam participar da melhoria do código, do desenvolvimento de novos recursos e da organização da documentação

Limitações enfrentadas por um projeto baseado em voluntariado

  • O Jellyfin é operado como um projeto FLOSS semicomercial raro mesmo dentro do FLOSS
    • Desenvolvedores, tradutores, operadores da comunidade e membros que ajudam na solução de problemas são todos voluntários
    • Ninguém recebe remuneração pelo trabalho no Jellyfin, e não há patrocínio de empresas nem de uma organização separada
    • Não há plano de monetização, e o projeto também evita ativamente programas de bug bounty
  • As doações são usadas apenas para custos de infraestrutura e, quando necessário, para hardware de cliente de desenvolvimento comprado raramente
    • A posição do projeto é não pagar desenvolvedores com doações, e continuar assim no futuro
  • Essa escolha busca evitar o caminho de outros projetos de streaming de mídia que começaram como FLOSS, mas depois adicionaram recursos hostis aos usuários por motivos de receita e migraram para código fechado

O peso de manter um escopo amplo com uma equipe pequena

  • Atualmente, a base central de contribuidores soma no máximo cerca de 30 pessoas considerando servidor, Web UI e todos os clientes
    • O tamanho total quase não cresceu nos últimos 3 anos
    • Algumas áreas, especialmente apps individuais, são tocadas por 1 ou 2 pessoas gratuitamente em seu tempo livre
  • Mesmo recursos ou clientes com alta demanda podem parar de avançar se não houver ninguém para iniciar o desenvolvimento ou ajudar
    • O Chromecast precisou ser deixado de lado por um tempo, mas voltou a ter movimento nas últimas semanas

Como participar e o caminho para entrar na equipe oficial

1 comentários

 
GN⁺ 2023-10-04
Opiniões no Hacker News
  • Eu não sabia que o Jellyfin era baseado em C#
    Comecei minha carreira como desenvolvedor C#, mas hoje uso só C++, e vinha procurando algum projeto para voltar a usar C#
    Tenho uma lista de coisas que me incomodavam no Jellyfin e, agora que sei que é em C#, fiquei com vontade de corrigir eu mesmo

    • Se você ficou um tempo sem usar C#, há uma boa chance de se divertir bastante
      A linguagem evoluiu muito, e as comodidades de desenvolvimento melhoraram, especialmente pattern matching, declarações using e tipos primitivos voltados a desempenho
      Voltei a usar C# em tempo integral no começo deste ano e estou muito satisfeito
  • Seria bom se a equipe do Jellyfin também exibisse esse chamado à participação nos pontos em que os usuários pedem funcionalidades
    No caso do suporte a Chromecast, que é o exemplo do post do blog, eu tinha perguntado nesta issue como poderia ajudar a implementar a funcionalidade: https://github.com/jellyfin/Swiftfin/issues/271#issuecomment...
    Mesmo que na prática não houvesse nada com que eu pudesse contribuir de forma produtiva para essa funcionalidade, se houvesse um guia de primeiros passos eu certamente teria ido ver
    Acho que, se vocês vincularem rapidamente o post do blog e os materiais de introdução nas issues em que as pessoas perguntam como ajudar, a conversão pode ser bem boa
    Agradeço a todos que contribuem com o Jellyfin, e sei que onboarding de desenvolvedores muitas vezes acaba virando um trabalho maior, mas é uma sugestão de um bom lugar para colocar links de chamada para ação

  • Tentei adicionar um recurso de lista de permissões baseada em tags, que já tinha sido muito solicitado e não parecia difícil de implementar, e até identifiquei onde colocá-lo no código do servidor
    Mas percebi que, para entregar a funcionalidade, teria que cuidar de PRs em pelo menos dois repositórios e ficar alternando entre os dois para testes de integração, então desisti
    Para código fortemente acoplado, um único repositório é realmente conveniente
    Talvez eu dê outra olhada nisso
    Além disso, controle parental baseado em lista de permissões é uma das melhores ferramentas, mas é frustrante como quase ninguém dá suporte a isso de fato

    • Seria bom pelo menos enviar feedback dizendo onde você travou e desistiu
      Provavelmente não foi um problema só seu
      Do lado do projeto isso também deve ser incômodo, mas talvez eles tenham se acostumado com o incômodo e esquecido dele
    • Isso é um grande problema do git/GitHub
      Suporte a PRs entre repositórios poderia simplificar esse tipo de processo, e eu quero esse recurso há quase 10 anos
    • Para referência, o controle parental do Plex é absurdamente flexível
      Configurei a conta das crianças para ver apenas itens com determinadas tags, e as tags do Plex são bem granulares, então dá para permitir filmes ou séries inteiras, partes de uma série, ou apenas um episódio específico
      Hoje elas têm acesso a bastante conteúdo, mas conteúdo novo não é liberado automaticamente
      Quando recebo algo como um episódio novo de Bluey, minha esposa quer assistir antes; raramente há algo muito problemático em programas infantis, então quase sempre aprovamos, mas fico tranquilo
    • Passei muito tempo frustrado com listas de permissões, até aprender no Reddit como criar uma no Plex
      Não lembro exatamente os termos, mas existem tags e rótulos, então é preciso tomar cuidado
      Antes eu estava tentando usar o lado errado; basicamente, você cria um rótulo e configura a conta infantil para ver apenas conteúdo com esse rótulo
    • O Plex oferece suporte tanto a listas de permissões quanto a listas de bloqueio
      É bom poder bloquear a maioria dos filmes pela classificação indicativa e permitir alguns filmes individualmente
  • Como desenvolvedor que trabalha apenas em sistemas Linux, fico curioso sobre como é o ambiente de desenvolvimento C#
    Achei que o Mono ainda existisse e que fosse o runtime usado quando projetos C# são executados
    Sempre achei C# meio estranho em ambientes que não fossem Windows, mas talvez eu tenha entendido errado esse tempo todo
    Como nunca tive oportunidade nem necessidade de usar no trabalho, não sei muito bem quão boas são as ferramentas no Mac ou no Linux, nem como isso funciona na prática
    Por outro lado, já vi várias vezes dizerem que é como um Java melhor, e por aqui o pessoal também parece gostar bastante de F#

    • No Arch, a instalação é um pouco trabalhosa e, desde que o Mono praticamente desapareceu, parece que a única opção de IDE é o VS Code fechado da Microsoft
      O plugin de C# não funciona no VSCodium
      Assim como em Java, o design da linguagem C# parece presumir bastante o uso de uma IDE
      Ainda assim, se for uma aplicação web, fora isso é tranquilo
    • C# no Linux é só um pouco mais trabalhoso do que no Windows
      É preciso ter um pouco de cuidado ao instalar o SDK, e algumas APIs do sistema se comportam de forma um pouco diferente, mas no geral é apenas um caso de eu preferir muito ligeiramente o Windows
      O Mono ainda existe, mas desde por volta de 2015 C# tem suporte nativo no Linux e, até onde sei, quase ninguém usa Mono de fato hoje em dia
      O principal uso dele é executar apps .NET Framework, não .NET Core
    • O Mono ainda existe, mas o Jellyfin usa o .NET Core, o runtime livre e de código aberto fornecido pela Microsoft
    • O ambiente de desenvolvimento C# é excelente e roda nativamente no Linux
      O Mono ainda existe e é usado em alguns casos especiais, como WASM e interpretadores
    • C# roda nativamente no Linux há muito tempo
      Até onde sei, no Azure muitas vezes há preferência por rodar em máquinas Linux, e no lugar onde trabalho também é assim
      Eu diria que o desempenho é igual ou melhor
      Hoje muitos desenvolvedores C#, talvez a maioria, trabalham em máquinas que não são Windows, e o suporte à nova arquitetura dos Macs também foi adicionado muito rapidamente
      Resumindo, hoje em dia a linguagem C# em si é igual ou melhor em ambientes que não sejam Windows
  • Dei uma olhada rápida no repositório do GitHub, e há mais de 90 PRs abertos no repositório principal; alguns estão há mais de 8 meses sem feedback
    Se a equipe atual não consegue nem dar conta do volume de PRs existentes, não sei qual é o sentido desse chamado para participação
    No estado atual, mais PRs não ajudam o projeto

  • Eu não sabia que o Jellyfin precisava de desenvolvedores
    Sou um usuário assíduo do Plex, mas trabalho como desenvolvedor C#, então clonei os projetos do servidor e da web e trabalhei na minha primeira issue

  • Gosto muito do Jellyfin e uso há 3 anos
    Com certeza pretendo participar do Hacktoberfest

  • Quero usar o Jellyfin, mas não há um cliente oficial para Apple TV

    • https://github.com/jellyfin/Swiftfin
      Estou usando e é bom
    • O media player Infuse[0][1] tem excelentes clientes para Apple TV / iOS / macOS
      Ele também se integra ao Jellyfin
      [0] https://firecore.com/infuse
      [1] https://jellyfin.org/posts/client-infuse/
    • Fico curioso se os clientes existentes são tão ruins assim
      Quando usei um deles alguns anos atrás, não tive grandes problemas com o cliente Jellyfin
      Parei de usar o Jellyfin porque o Locast foi encerrado, e esse era meu principal caso de uso
    • Desde que comprei uma Apple TV, estou usando o Swiftfin, e ele é razoável
      Faltam muitas opções de ordenação e filtros; ele engasga, por exemplo, carregando cards de filmes no lugar errado se você rola rápido demais; e às vezes a barra de progresso para de atualizar pelo restante do filme depois de pausar
      Ainda assim, dá para usar
    • Não existe o Swiftfin?
      O desenvolvimento é meio esporádico, mas funcionava bem quando precisei dele antes
  • Eu realmente queria usar o Jellyfin e cheguei a migrar no passado, mas voltei para o Plex quando descobri que há muitas APIs não autenticadas, incluindo streams de vídeo
    Pareceu arriscado demais expor o Jellyfin na web
    https://github.com/jellyfin/jellyfin/issues/5415

  • Seria ótimo se a funcionalidade de Chromecast no Jellyfin para iOS finalmente fosse desenvolvida
    Literalmente uso o Plex em vez do Jellyfin por causa apenas desse recurso
    Seria ótimo se alguém com experiência na API do Chromecast entrasse para ajudar a equipe