dennisvang / tufup

Automated updates for stand-alone Python applications.
MIT License
90 stars 1 forks source link

Support for "milestone" releases #111

Closed dennisvang closed 6 months ago

dennisvang commented 7 months ago

Description

In some cases it could be convenient to ensure that an old app version is updated to a specific intermediate version, before updating to the latest version.

For example:

Suppose we have app v1 in the field, and our app release v2 involves some change in configuration that only needs to be performed once, but that all subsequent versions rely on. For example, v2 could have a modified install script that changes the installation directory.

Now, if we would release v3 before every user in the field has updated to v2, the tufup client will skip v2 and go straight to v3.

Using the current approach, every subsequent version would need to check if the configuration change from v2 has been applied, and would need to apply that change, if necessary.

A more convenient alternative could be to define a kind of milestone release, which cannot be skipped.

Applied to the example above: We would include the modified install script only in v2, and mark v2 as a milestone release. Tufup would then recognize that milestone release and would update to v2 even if v3 is already available.

Implementation ideas

Naming alternatives: