Geliştirici çağrısı - Jellyfin
(jellyfin.org)- Jellyfin, Ekim 2023'te Hacktoberfest'in 10. yılı vesilesiyle durgunlaşan katkıcı tabanını genişletmeyi ve sunucu, Web UI ve istemci iyileştirmelerinin hızını artırmayı hedefliyor
- Proje yarı ticari olmayan gönüllülük modelini sürdürüyor; bağışlar da yalnızca altyapı maliyetleri ve nadiren gereken geliştirme amaçlı istemci donanımları için kullanılıyor
- Çekirdek katkıcı sayısı sunucu, Web UI ve tüm istemciler toplamında en fazla yaklaşık 30 kişi düzeyinde; son 3 yılda neredeyse hiç artmadığı için bazı uygulamalar 1-2 kişi tarafından kişisel zamanlarında sürdürülüyor
- Kullanıcı şikâyetleri istemci desteği eksikliği ve olgunluk eksikliği üzerinde yoğunlaşıyor; Chromecast gibi yüksek talep gören özellikler ve istemciler için bile bir süre geliştirme ivmesinin olmadığı dönemler yaşandı
- Küçük hata düzeltmelerinden dokümantasyon iyileştirmelerine, UI/UX'e, çeviriye ve tüm istemci geliştirmelerine kadar her alanda katkıya ihtiyaç var; düzenli ve kaliteli katkı sunanların resmi ekibe katılması da mümkün
Jellyfin neden şimdi katkıcı arıyor
- Jellyfin, DigitalOcean'ın Hacktoberfest etkinliğinin 10. yılına denk gelecek şekilde yeni katkıcıların katılımını önemli bir hedef olarak görüyor
- Plex ile ilgili her tartışma çıktığında Jellyfin bir alternatif olarak anılsa da toplulukta istemci eksikliği, belirli özelliklerin yokluğu ve olgunluk eksikliği de tekrar tekrar gündeme geliyor
- Bu farkları kapatmak için daha fazla kişinin kod iyileştirmelerine, yeni özellik geliştirmeye ve dokümantasyonu düzenlemeye katılması gerekiyor
Gönüllülük tabanlı bir projenin yaşadığı kısıtlar
- Jellyfin, FLOSS içinde bile nadir görülen yarı ticari olmayan bir proje olarak yürütülüyor
- Geliştiriciler, çevirmenler, topluluk yöneticileri ve sorun çözmeye yardımcı olan herkes gönüllü
- Jellyfin çalışmaları için ücret alan kimse yok; bir şirketin veya ayrı bir kuruluşun sponsorluğu da yok
- Gelir elde etme planı yok ve bug bounty programlarından da özellikle kaçınılıyor
- Bağışlar yalnızca altyapı maliyetleri ve gerektiğinde nadiren satın alınan geliştirme amaçlı istemci donanımları için kullanılıyor
- Bağışlarla geliştiricilere ücret ödenmiyor ve bundan sonra da ödenmeyeceği belirtiliyor
- Bu tercih, FLOSS olarak başlayıp daha sonra gelir gerekçesiyle kullanıcıya düşmanca özellikler ekleyen ve kapalı kaynağa geçen diğer medya akış projelerindeki eğilimden kaçınmayı amaçlıyor
Küçük bir ekiple geniş bir kapsamı sürdürmenin yükü
- Mevcut çekirdek katkıcı tabanı sunucu, Web UI ve tüm istemciler toplamında en fazla yaklaşık 30 kişi düzeyinde
- Son 3 yılda toplam büyüklük neredeyse hiç artmadı
- Bazı alanlarda, özellikle tekil uygulamalarda, 1-2 kişi ücretsiz olarak kişisel zamanlarında çalışıyor
- Yüksek talep gören özellikler veya istemciler bile geliştirmeyi başlatacak ya da yardımcı olacak kimse yoksa ilerleme durabilir
- Chromecast bir süreliğine vazgeçilmek zorunda kalmıştı, ancak son birkaç hafta içinde yeniden hareketlenme başladı
Katılım yolları ve resmi ekibe katılma süreci
- Başlamak isteyenler katkı rehberi, Matrix/IRC/Discord kanalları ve Forum üzerinden yardım alabilir
- Katkı kapsamı küçük hata düzeltmelerinden dokümantasyon iyileştirmelerine ve tüm istemci geliştirmelerine kadar çeşitlilik gösterir
- Kaliteli katkılar ve katılım isteği gösterenler için resmi ekibe katılmayı sağlayabilecek yeni ekip üyesi aday gösterme süreci de mevcut
1 yorum
Hacker News yorumları
Jellyfin’in C# tabanlı olduğunu bilmiyordum
Kariyerime C# geliştiricisi olarak başladım ama şu anda yalnızca C++ kullanıyorum; C#’ı yeniden kullanabileceğim bir proje arayıp duruyordum
Jellyfin’de rahatsız olduğum noktaların bir listesi var; artık C# olduğunu bildiğime göre bunları kendim düzeltmeyi düşünebilirim
Dil çok gelişti; özellikle pattern matching, using deyimleri, performans odaklı temel tipler gibi geliştirici konforunu artıran özellikler iyileşti
Bu yılın başından beri yeniden tam zamanlı C# kullanmaya başladım ve oldukça memnunum
Jellyfin ekibinin bu tür katkı çağrılarını, kullanıcıların özellik talep ettiği yerlerde de göstermesi iyi olur
Blog yazısındaki örnek olan Chromecast desteği için, bu issue’da özelliğin hayata geçirilmesine nasıl yardımcı olabileceğimi sormuştum: https://github.com/jellyfin/Swiftfin/issues/271#issuecomment...
Gerçekte o özelliğe üretken biçimde katkı verebileceğim bir iş olmasa bile, bir başlangıç rehberi olsaydı kesinlikle bakardım
İnsanların yardım etmek istediğini sorduğu issue’lara blog yazısını ve başlangıç materyallerini hızlıca bağlamak dönüşümü epey artırabilir gibi
Jellyfin’e katkı veren herkese teşekkürler; geliştirici onboarding’inin çoğu zaman daha büyük bir işe dönüştüğünü de biliyorum, ama burası eylem çağrısı bağlantısı koymak için iyi bir yer olabilir diye öneriyorum
Geçmişte çok istenen ve uygulanması da zor görünmeyen etiket tabanlı izin listesi özelliğini eklemeye çalışmıştım; sunucu kodunda nereye koyacağımı da anlamıştım
Ama özelliği teslim etmek için en az iki depo genelinde PR’ları takip etmem, entegrasyon testi için de iki depo arasında gidip gelmem gerektiğini fark edince vazgeçtim
Sıkı bağlı kodlarda tek depo gerçekten çok rahat
Belki tekrar bakarım
Bu arada, izin listesi tabanlı ebeveyn denetimleri en iyi araçlardan biri ama neredeyse hiçbir yerde desteklenmemesi sinir bozucu
Muhtemelen bu sorunu yaşayan tek kişi siz değilsiniz
Proje tarafı için de rahatsız edici olabilir, ama o rahatsızlığa alışıp unutmuş olabilirler
Depolar arası PR desteklense bu tür süreçler basitleşebilir; neredeyse 10 yıldır böyle bir özellik istiyorum
Çocuk hesabını yalnızca belirli etiketlere sahip içerikleri görebilecek şekilde ayarladım; Plex etiketleri oldukça ayrıntılı olduğundan bir filmin veya TV programının tamamını, bir TV programının bir kısmını ya da tek bir bölümü bile izinli yapmak mümkün
Şu anda epey fazla içeriğe erişebiliyor ama yeni içerikler otomatik olarak açılmıyor
Bluey’nin yeni bölümü gibi bir şey indirdiğimde eşim önce izlemek istiyor; çocuk programlarında ciddi sorun olacak şeyler nadiren çıktığı için neredeyse her zaman onaylıyoruz, ama içim rahat ediyor
Terimleri tam hatırlamıyorum ama tag ve label ikisi de olduğu için dikkat etmek gerekiyor
Eskiden yanlış olanı deniyordum; temelde bir label oluşturup çocuk hesabını yalnızca o label’a sahip içerikleri görecek şekilde ayarlamak yeterli
Filmlerin çoğunu derecelendirmeyle engelleyip bazı filmlere tek tek izin verebilmek güzel
Yalnızca Linux sistemlerde çalışan bir geliştirici olarak C# geliştirme ortamının nasıl olduğunu merak ediyorum
Mono’nun hâlâ var olduğunu ve C# projeleri çalıştırıldığında kullanılan runtime’ın o olduğunu sanıyordum
Windows dışı ortamlarda C# bana hep biraz garip gelmişti; ama belki bunca zamandır yanlış biliyordum
İşte kullanma fırsatım ya da ihtiyacım olmadığından Mac veya Linux’ta araçların ne kadar iyi olduğunu, pratikte nasıl çalıştığını pek bilmiyorum
Öte yandan birkaç kez daha iyi bir Java gibi olduğuna dair yorumlar gördüm; burada da F# epey seviliyor gibi
C# eklentisi VSCodium’da çalışmıyor
Java’ya benzer şekilde C# dil tasarımında da IDE kullanılacağı varsayımı epey güçlü
Yine de web uygulamasıysa bunun dışında sorun yok
SDK kurulumuna biraz dikkat etmek gerekiyor ve bazı sistem API’leri biraz farklı davranıyor; ama genel olarak Windows’u yalnızca çok az daha tercih ederim
Mono hâlâ var, fakat C# yaklaşık 2015’ten beri Linux’ta native olarak destekleniyor; bildiğim kadarıyla artık Mono’yu gerçekten kullanan pek yok
Başlıca kullanım alanı .NET Core değil, .NET Framework uygulamalarını çalıştırmak
Mono hâlâ duruyor ve WASM, interpreter gibi bazı özel kullanım alanlarında kullanılıyor
Bildiğim kadarıyla Azure’da da çoğu zaman Linux makinelerde çalıştırmak tercih ediliyor; benim çalıştığım yerde de öyle
Performansının da aynı ya da daha hızlı olduğunu düşünüyorum
Artık birçok C# geliştiricisi, hatta belki çoğunluğu Windows olmayan makinelerde çalışıyor; yeni Mac mimarisi desteği de çok hızlı eklendi
Özetle günümüzde C# dilinin kendisi Windows dışı ortamlarda da aynı ya da daha iyi
GitHub deposuna kısaca baktım; ana depoda 90’dan fazla açık PR var ve bazılarında 8 aydan uzun süredir geri bildirim yok
Mevcut ekip var olan PR birikimini bile işleyemiyorsa bu katılım çağrısının ne anlama geldiğini bilmiyorum
Bu durumda PR sayısının daha da artması projeye yardımcı olmaz
Bunun için oldukça basit bir PR Şubat 2023’ten beri açık, ancak işlenebilir bir geri bildirim olmadan öylece duruyor: https://github.com/jellyfin/jellyfin/pull/9291
Jellyfin’in geliştiriciye ihtiyaç duyduğunu bilmiyordum
Plex’i yoğun kullanan bir kullanıcıyım ama mesleğim C# geliştiriciliği olduğu için sunucu ve web projelerini klonlayıp ilk issue üzerinde çalışmayı denedim
Jellyfin’i gerçekten seviyorum ve 3 yıldır kullanıyorum
Hacktoberfest’e mutlaka katılmayı düşünüyorum
Jellyfin kullanmak istiyorum ama resmi Apple TV istemcisi yok
Kullanıyorum, fena değil
Jellyfin ile de entegre oluyor
[0] https://firecore.com/infuse
[1] https://jellyfin.org/posts/client-infuse/
Birkaç yıl önce birini kullandığımda Jellyfin istemcisinde pek sorun yaşamamıştım
Jellyfin’i bırakmamın nedeni Locast’in kapanmasıydı; asıl kullanım amacım da oydu
Sıralama ve filtre seçenekleri çok eksik; çok hızlı kaydırınca film kartlarının yanlış konumlarda yüklenmesi gibi takılmalar oluyor, ayrıca duraklattıktan sonra filmin kalan kısmı boyunca ilerleme çubuğunun güncellenmeyi bıraktığı da oluyor
Yine de kullanılabilir seviyede
Geliştirme biraz seyrek ilerliyor ama geçmişte ihtiyaç duyduğumda gayet düzgün çalışmıştı
Jellyfin’i gerçekten kullanmak istediğim için eskiden geçiş yapmıştım, ancak kimlik doğrulaması olmayan API’lerin çok olduğunu ve buna video stream’lerinin de dahil olduğunu öğrenince Plex’e geri döndüm
Jellyfin’i web’e açmak fazla riskli görünüyordu
https://github.com/jellyfin/jellyfin/issues/5415
Jellyfin iOS’taki Chromecast özelliğinin sonunda geliştirilmesini isterim
Kelimenin tam anlamıyla sırf bu özellik yüzünden Jellyfin yerine Plex kullanıyorum
Chromecast API’sine hâkim birinin gelip ekibe yardımcı olması harika olurdu