Skip to content

Add Built-in Update Workflows#2577

Merged
AmmarAbouZor merged 7 commits into
esrlabs:masterfrom
AmmarAbouZor:update-in-app
Jun 5, 2026
Merged

Add Built-in Update Workflows#2577
AmmarAbouZor merged 7 commits into
esrlabs:masterfrom
AmmarAbouZor:update-in-app

Conversation

@AmmarAbouZor

Copy link
Copy Markdown
Member

This PR adds a built-in updater workflow for chipmunk with support for manual unpacking and replacing app files and also support for installers. It includes:

  • Support for portable archive updates by unpacking and replacing the current app on Linux, macOS, and Windows.
  • Support for installer/package updates: Windows MSI, macOS PKG, Linux DEB, and Linux RPM.
  • Update notifications/banner with release link and download action when automatic update is supported.
  • Built-in update checks on startup and via Check for Updates... in the app menu.
  • Install-on-exit update flow so downloaded updates are applied when Chipmunk closes.
  • Cleanup for downloaded/staged update artifacts after successful updates or when they become stale.

Change current behavior to show the release changelog when there is no
infos for the latest shown release.
This is useful for users when they update to Chipmunk 4 for the first
time.
* Restructure release & update code into update module and sub-modules
* Resolve application installation process for running app instance.
* Resolve artifact names for each platform.
* Include pre-release in check for updates.
* Keep fetching releases if first 10 releases doesn't include a release
  candidate (Edge case can happen on adding many pre-releases)
* Add download button to update banner sending command to download the
  matching artifact
* Add dependencies for unpacking archives
* Unpack archives is implemented but not used.
* Run installers on app close
* Unpack and replace application on Linux and MacOS
* Unpack and replace on Windows using PowerShell script
Replace manual implementation for temporary files and directories with
`TempDir` crate to ensure those files will get cleaned up
* Avoid having temporary copies of the software for Windows and MacOS
  for cases if rewrite failed.
* Cleanup extract bundle on MacOS as it's not part of the release
  download directory
* Place downloaded artifacts directly in download dir to avoid nesting
* Cleanup update artifacts for the current release when exist
* Improve wording for download succeed message
+ Small fix to avoid fetching changelogs when check for updates is
  disabled
@AmmarAbouZor AmmarAbouZor merged commit a357155 into esrlabs:master Jun 5, 2026
1 check passed
@AmmarAbouZor AmmarAbouZor deleted the update-in-app branch June 5, 2026 12:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant