app_store: auto_update #493
Merged
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.
Problem
Our previous app_store implementations didn't have full auto_update functionality.
Solution
When chain:app_store:sys hears of a new valid package, it checks whether the user has enabled auto_update for it (stored in its state), and forwards an AutoUpdateRequest to the downloads process with metadata and package_id.
Downloads (currently) defaults to downloading from the publisher_id, fetches current_version code_hash from metadata. Spawns a download.
Once finished, is forwarded to main process with the new manifest_hash in the context of a DownloadCompleteRequest. main checks if the hash is the same as the currently installed package, then installs.
Notes
chain:app_store:sys doesn't currently Persist anything (with current log sizes, we can afford to fetch anew every boot), but we can change this.
This also means that auto_update info is not persisted either, which can be a slight curveball right now.