robvdpol / RaceControl

Race Control is a standalone, open source F1TV client for Windows, written in C# on the .NET platform.
GNU General Public License v3.0
1.19k stars 95 forks source link

[FEATURE] Introduce an auto-update mechanism #385

Open sidewinder94 opened 2 years ago

sidewinder94 commented 2 years ago

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

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 commented 2 years ago

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.

robvdpol commented 2 years ago

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 commented 2 years ago

Also, #326

sidewinder94 commented 2 years ago

@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)

robvdpol commented 2 years ago

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

sidewinder94 commented 2 years ago

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

Cheesebaron commented 2 years ago

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.