Planning a Target List 🎯


#1

We currently don’t have a roadmap, and no direction other than “clean up code, release when there’s a bunch of fixes collected”. This is fine for the first little while of a project’s life, and the Server core and UI have definitely been getting faster and steadier with each PR and each release.

Eventually we’re going to have to decide on what’s important, and what gets focused on next. This isn’t necessarily going to apply to all teams. Some will have a specialty and will stick to it, and that’s fine. It doesn’t mean that all work stops for other areas of the project, but we’ll want to make a list of what we should tackle as a larger group, with anyone who can contribute.

I’d like to solicit some ideas for what should be on this list, and once we’ve collected a bunch of items, we can then begin work on sorting/ordering.


#2

Let me start with the “obvious”:

  • A player/app on every platform previously targeted.
    • App for iOS, possibly based on the start I made with React-Native, can target almost every platform except Roku and Apple Watch
  • FFmpeg to 4.1 and full HDR->SDR support.
  • Database replacement
  • Media scanning and general performance improvements (profiling driven)
  • Working plugin distribution and dependency resolving

#3

This sounds really good to start. I think while general bug fixing is going on, it would be very wise to expand clients far and wide to land on a bunch of platforms. Having a common core for that really helps.

Also - what a power move to have a Jellyfin be available nearly everywhere possible :cowboy_hat_face:

Plugins can, for the meanwhile, be installed manually with little effort, as long we document a few steps. So I think that’s good to go lower on the list for sure.


#4

I think a big one needs to be code tests, and UI tests. We need to know if features regress, especially from a user perspective.


#5

This is a good idea. We should look into code tests, and any kind of automation we can apply for UI testing as well.

For the things that need “human” verification, like an ffmpeg output test, we should have a standard procedure (or something we can compare to for a baseline).


#6

Extracting here my thoughts expressed on Riot couple of days ago:

Potential targets I see are:

  • Code cleanup, which except from code itself includes:
    • extracting embedded 3rd parties
    • licensing clearance,
  • Database rework
  • HTTP server replacement - move to some industry-standard thing, so far most people say “Kestrel”
  • Releasing clients
  • Making plugins work
    • I think this also includes fixing up plugins “repo” so they’re installable from Jellyfin administrative panel

#7

In some chat, it was discussed to have a proper release checklist, which includes significant testing, and packaging testing as well.

We may not get to planning for fixing specific areas any time soon, as it would be hard to get contributors to “only look at one or two areas”, when this would discourage them from working on other things.