Nexus-Mods / NexusMods.App

Home of the development of the Nexus Mods App
https://nexus-mods.github.io/NexusMods.App/
GNU General Public License v3.0
915 stars 45 forks source link

Auto-updater for Linux AppImage #1770

Open ItsRogueRen opened 2 months ago

ItsRogueRen commented 2 months ago

User story

As a Linux user

I want to be able to update the app from within the application itself. Appimages do not integrate like every other packaging format on Linux, so 3rd party tools are used to get the same result. However this gets really messy when an app needs to be updated as you have to go though, delete the old version, delete the desktop file for the app, download the new version, and then run it through the integration tool again. Having an in-app updater that replaces the old version with the newest one in the same location with the same name would save all this hassle for the end user. An example of this can be seen in the Smash Bros Melee fork of the Dolphin emulator called Slippi

So that the appimage does not need to be deleted and re-integrated every update

Requirements

(Any other information related to but not covered by the story)

Design

A button somewhere on the main menu that checks for a new release of the appimage and downloads it, replacing the old version.

DOD

(Describe the expected behaviour from the users point of view. Create multiple DoD's if required to fully describe what should happen. Number each DoD)

Scenario 1

Given a new update for the appimage

When the appimage prompts, an update button can be clicked.

Then the appimage is replaced with a new one without having to move any files or rename anything.

Pickysaurus commented 2 months ago

The whole process of automatically (or more seamlessly) updating the app will we revisited a bit later in development. Right now each update is a breaking change that requires reinstalling all mods so we don't want auto-updates to do that for the moment.

LukeNexusMods commented 2 months ago

It is absolutely something we will get round to doing but whilst we are still early in development and are constantly updating code that introduces breaking changes it wouldn't work that well. When we get to a more stable place we will implement a more robust updating process.

erri120 commented 2 months ago

The App is already available on a couple of package repositories. Ideally, you'd want to use your package manager of choice to install the App. We're also looking into creating a Flatpak version.

Packaging status

robojerk commented 2 months ago

I use GearLever to manage my AppImage stuff. It has an update feature.

https://mijorus.it/posts/gearlever/update-url-info/