Check for update, ask user to update, auto update#684
Draft
Conversation
Collaborator
Author
📚
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
PR Type
Feature
PR Checklist
Overview
This PR introduces a self-updating mechanism for the ZeuZ Node, allowing users to stay current with releases without manual intervention.
Changes:
update.goImplementation: Introduced a dedicated module to handle version comparison, update fetching from the GitHub API, and file replacement logic.update.gointo the build process across all supported platforms (Windows, macOS, Linux) to ensure the update binary is bundled with every release.main.gofile download logic to support cross-device renaming on Windows by falling back to a file-copy mechanism ifos.Renamefails.update_prefs.jsonandupdate_cache.jsonin the.zeuzdirectory to track user preferences and cached release metadata.Why:
To improve the user experience and ensure nodes are running the latest version, reducing the friction associated with manual binary replacement and minimizing potential compatibility issues with outdated software.
Test Cases