buzz icon indicating copy to clipboard operation
buzz copied to clipboard

Add auto-updater

Open chidiwilliams opened this issue 1 year ago • 8 comments

InnoSetup via: .\Buzz.exe /SILENT Homebrew: homebrew update Snapcraft: not needed (auto-updates)

chidiwilliams avatar Mar 24 '24 00:03 chidiwilliams

@greatdaveo I can provide the following notes on implementing this:

  • Assume some json on the repo, say https://raw.githubusercontent.com/chidiwilliams/buzz/refs/heads/main/version.json
  • The json should have
    • Version number
    • Download urls for Windows x64, macOS Arm, macOS x86
    • Release notes of the latest version
  • App on startup should download this json and check if there is a new version. If we find a new version, a new icon to the main icon bar on the main window. We can also store time of the last time the update was checked and check not more than once per week
  • If clicked this new icon should open some "Version update" window that would download the installer for the new version and would run it. User will need to click thru the installation steps on Windows or drag the dmg on macs to the application folder. We can also re-use the "About" dialog and add the new elements informing user about the new version on this dialog.
  • We should do the version checks only on Windows and macOS, Linux will get updated via package managers.
  • Download progress bar for the installer download would be nice.

If you have some questions or comments on alternate ways to implement this, let me know.

raivisdejus avatar Dec 23 '25 19:12 raivisdejus

Thank you @raivisdejus Please give me few days to look into it. Thank you

greatdaveo avatar Dec 23 '25 19:12 greatdaveo

Hi @raivisdejus please check the JSON link you attached above is a 404 page. Thanks.

greatdaveo avatar Dec 24 '25 21:12 greatdaveo

@greatdaveo Yes it does not exists yet, we have to create it. After the feature is merged it will exist, but for testing you can create this json with the necessary data and put it on some repo or some server somewhere. We can adjust the link right before we merge it.

raivisdejus avatar Dec 24 '25 21:12 raivisdejus

@raivisdejus Oh noted! I will update in few days.. Thanks

greatdaveo avatar Dec 24 '25 21:12 greatdaveo

Hi @raivisdejus , happy new year! I am sorry for the late response regarding this issue, I am on it, and you will get an update in few days.

For now, these are my understandings and implementation plans:

  • I have to create 'version.json' file that contains version nummber, download URLs for Windows x64, macOS Arm, macOS x86, and release notes
  • When the app starts it will check if it is Windows or macOs, and skip for Linux
  • It will also check if a week has passed since its last check. If so it will download the version.json and compare it with the current version.json version, if it there is a new version an icon will show in the toolbar, and when it is clicked, it will open a dialogue to download and install with the visibility of the download progress.

greatdaveo avatar Jan 03 '26 21:01 greatdaveo

Good plan. Take your time, with open source we do in our spare time there is no rush :)

You can create a new "update" or "new version" window or maybe even re-use the "About" window for this. Also it would be good to show the release notes on the window so users know if they really need the new version.

raivisdejus avatar Jan 04 '26 05:01 raivisdejus

Perfect! Thankk you

greatdaveo avatar Jan 04 '26 05:01 greatdaveo