I am currently working on the auto-update feature of pgAdmin 4 desktop application, #5766.
As we are using Electron for shipping our desktop application, I have gone through some possible ways we can implement the auto update of the app.
I found 2 most popular ways, that are
Use builtin electron’s autoUpdater (Uses the Squirrel framework & Available for Mac, Windows)
Use electron-builder and electron-updater packages (Available for Mac, Windows and Linux systems)
Linux systems:
Builtin Electron’s autoUpdater support is not available.
electron-builder and electron-updater can be used, but need to change the whole build process. Also most apps like VS code, Chrome, etc does not support auto-update of apps on linux systems.
Mac systems:
We can use the builtin Electron’s autoUpdater to add auto-update feature to macOs systems, It is simple and easy to configure. We need a minor modification in our build process i.e. as we are supporting Intel and Apple silicon chips, deployment url will have 2 zip files and each zip file will hold the build for arm64 and x86_64.
electron-builder and electron-updater can be used. With this, we have to change the whole build process.
Windows systems:
We can use the builtin Electron’s autoUpdater to add auto-update feature to windows systems, Here also we need to change our build process. Electron’s docs recommend using electron-winstaller or electron forge to create the installer and some extra changes are needed in the deployment server.
electron-builder and electron-updater can be used. With this, we have to change the whole build process.
As Electron's builtin autoUpdater is easy to use so for now we can move with the auto-update of the pgAdmin app on macOs systems as it requires minimal changes.