Skip to content

Add an Update Menu and In-App Automatic Update Support #367

Open

Description

@petertzy

Description

Please add an Update menu to the application.

The Update menu should be located at the far right of the top menu bar, making it easy for users to check for and install new versions of the application.

The goal is to provide a simple and reliable in-app update experience so that users do not need to manually visit the project repository, download a new package, and reinstall the application whenever a new version is released.

Expected User Experience

When the user clicks Update, the application should check whether a newer version is available.

If the application is already up to date, it should clearly inform the user that they are using the latest version.

If a newer version is available, the application should provide a straightforward update process. Ideally, the user should be able to:

  1. Check for the latest version.
  2. See the currently installed version and the available version.
  3. Start the update with minimal interaction.
  4. See download/update progress where appropriate.
  5. Install the update safely.
  6. Restart the application when required to complete the update.

The exact interaction may vary between Windows, macOS, and Linux depending on the packaging and installation mechanisms used on each platform.

Implementation Reference

If you are unfamiliar with implementing an application updater, you may refer to my other project, DeepLocal:

DeepLocal repository on GitHub

DeepLocal contains an existing implementation that may be useful as a reference.

However, please do not simply copy that implementation. The update mechanism in DeepLocal is still relatively basic. This project should try to use a more robust, and more maintainable approach while providing a better user experience.

Implementation Considerations

Please consider:

  • Windows, macOS, and Linux update behavior.
  • Reliable version comparison.
  • Integration with the project's existing packaging and GitHub release workflow.
  • Selecting the correct update package for the current operating system and architecture.
  • Showing useful progress and status information.
  • Handling network failures and interrupted downloads gracefully.
  • Verifying downloaded update packages where practical.
  • Avoiding corruption of the existing installation if an update fails.
  • Preserving user settings and application data during updates.
  • Handling application restart when required.
  • Providing clear error messages instead of failing silently.

The implementation should also consider differences between application-managed installations and installations managed by an operating-system package manager. The application should not unexpectedly interfere with package-manager-controlled installations.

Suggested Acceptance Criteria

  • An Update menu is available at the far right of the top menu bar.
  • Clicking it checks whether a newer application version is available.
  • If no update is available, the user receives a clear "up to date" message.
  • If an update is available, the application clearly displays the new version and allows the user to update.
  • The appropriate package is selected for the current platform and architecture.
  • Download/update progress is shown where appropriate.
  • Update failures are handled gracefully without damaging the existing installation.
  • User settings and data are preserved.
  • The application can restart into the updated version when necessary.
  • The implementation works appropriately across Windows, macOS, and Linux, taking platform-specific installation differences into account.
  • The implementation integrates cleanly with the project's packaging and release process.

Goal

The goal is to make keeping the application up to date as simple as possible:

Update → Check → Download/Install → Restart

DeepLocal can be used as a starting reference, but contributors are encouraged to design a better implementation with stronger reliability, maintainability, security, and overall user experience.

Thanks!

Activity

  1. yulian-symkanynets commented on Oct 7, 2026

    @yulian-symkanynets

    @petertzy
    Hi, I'd like to claim this issue. It seems interesting to me, and I'd be happy to work on implementing the in-app update functionality.

    I'm relatively new to open-source contributions, so I'd appreciate it if you could assign the issue to me. I'll follow the contribution guidelines and make sure to include appropriate tests where possible.

    Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions