imagej / imagej-updater

The automatic updater for ImageJ
Other
12 stars 15 forks source link

Make the updater understand multiple update site tracks #103

Open ctrueden opened 2 years ago

ctrueden commented 2 years ago

Different artifacts need to be served depending on:

  1. Major version of Java
  2. Stable versus unstable component versions

Major version of Java

For example, instead of https://update.imagej.net/ being the sole core ImageJ2 update site, there needs to be:

For each supported major version of OpenJDK. And the updater automatically uses the best one based on the installed version of Java.

This is complicated by JavaFX, because:

And unfortunately, the JavaFX API broke between JavaFX8 and JavaFX11.

Therefore, for plugins like mars-fx and flimj-fx currently built on JavaFX 8, we need to take care not to break them when designing this multi-track update site mechanism.

How the Updater needs to change

The Updater needs to:

Important question: How to handle major-version-sensitive content like JavaFX plugins?

Stable versus unstable

To support stable versus unstable tracks, we can lean on Maven (#104). With such a design, every update site built on a Maven artifact would automatically have stable vs unstable tracks. But how to teach the Updater to understand this? And how to name them on the remote?

ctrueden commented 2 years ago

This forum discussion touches on issues relevant to this work.