RaceControl icon indicating copy to clipboard operation
RaceControl copied to clipboard

[FEATURE] Introduce an auto-update mechanism

Open sidewinder94 opened this issue 2 years ago • 7 comments

Is your feature request related to a problem? Please describe. Needing to manually download and apply updates is a chore.

Describe the solution you'd like Implementing some sort of auto-update mechanism. For example : Squirrel (Which would also allow not to have to build a .msi anymore)

Describe alternatives you've considered

  • Scoop / chocolatey => no auto-update from the app, would still be a nice to have.
  • ClickOnce => would need some form of hosting (might be doable at a really low cost using azure/aws + cloudflare (<5$/month) depending on traffic)

Additional context I would be available to implement whatever solution you'd think is best. I won't start on my own, since it WILL impact your build/packaging/deployment process.

sidewinder94 avatar Mar 25 '22 11:03 sidewinder94

I saw #287 however, this proposal would allow not to bother the user since the upgrade would be done either on the background or after the user is finished using the application.

sidewinder94 avatar Mar 25 '22 11:03 sidewinder94

I've been pondering about which installer technology to use in the future. Squirrel is indeed an option, it's cool that it has built-in support for GitHub. However the project seems a bit 'stale', not sure whether it has a future?

Scoop and Chocolatey are too complicated for regular users IMO. I don't want that users need to mess with Powershell and command prompts too much.

ClickOnce seems very outdated.

Winget could be an option since it comes with Windows nowadays I think. But that would basically be hosting the existing MSI in the winget repository. AFAIK it doesn't have auto-update functionality right?

robvdpol avatar Mar 25 '22 13:03 robvdpol

Also, #326

robvdpol avatar Mar 25 '22 13:03 robvdpol

@robvdpol Maybe the lack of release if because of the project attaining a certain maturity ? it still seems active though, latest commit was from two days ago. I don't know how they plan their releases, but maybe the changes are not significant enough yet for a new release ?

I could find a more active fork here : https://github.com/clowd/Clowd.Squirrel

IMHO, Winget would be the same category as scoop/chocolatey, needing users to interact with a command prompt to install and update (and as far as I know, Winget supports updating installed apps, but not auto-updating).

And if you selected the Winget route anyways, the only thing that'll live in their repo (or one of yours) would be a manifest pointing to the GitHub releases (unless I'm massively mistaken on how it works)

sidewinder94 avatar Mar 25 '22 18:03 sidewinder94

Clowd.Squirrel seems to be the way to go since it has .NET 6 support. I'll give it a shot.

robvdpol avatar Mar 25 '22 18:03 robvdpol

Great! If you need help, you know how to contact me :)

sidewinder94 avatar Mar 25 '22 18:03 sidewinder94

I've used Squirrel before, it was fairly easy to set up for a WPF App. I guess it is just a matter of setting up hosting for the App Updates and setting up the CI/CD pipeline to produce diffed packages.

Cheesebaron avatar Mar 26 '22 13:03 Cheesebaron