Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add quicker & more reliable updating to features #1802

Merged
merged 4 commits into from
Mar 28, 2021
Merged

Add quicker & more reliable updating to features #1802

merged 4 commits into from
Mar 28, 2021

Conversation

zorgiepoo
Copy link
Member

@zorgiepoo zorgiepoo commented Mar 22, 2021

Add quicker & more reliable updating to features.

Sparkle 2 is perceivably faster at relaunching an application (it saves an extra process spawn / app launch cycle because the installer is already running at the point the user wants to relaunch). 1.x branch seems to not validate the update async as well, delaying the start of installation. 2.x also doesn't show status window if the install is instant.

Sample attached using VLC:
https://user-images.githubusercontent.com/857267/111960741-5bdb3500-8aad-11eb-84ef-36a1a74494e9.mov

Two points: look at how fast old app disappears and new app appears animated in Dock, and look at how fast app terminates when Install and Relaunch is clicked / activated.

The auth execution model in 1.x using fileop is just built off of sticks and stones to me regarding reliability, and was replaced by a more robust architecture of deciding to run the installer (Autoupdate) as root or not (and not shelling out with AuthorizationExecuteWithPrivileges)

@zorgiepoo
Copy link
Member Author

zorgiepoo commented Mar 24, 2021

To clarify and after thinking about it more on efficiency, 1.x architecture actually can't start validation of update sooner due to potential concern of the download/update being hampered by a lower-privileged process, whereas 2.x moves the archive to a safer place before it even starts extraction. 1.x also can't do any operations that might require authorization before starting Autoupdate whereas 2.x already has authorization and started Autoupdate by this point. Further optimizations in 2.x architecture in the future are possible for making update-relaunch time shorter like releasing quarantine ahead of time as one example.

@zorgiepoo
Copy link
Member Author

Updated / prettified changelog, updated status / helping on readme a bit.

@zorgiepoo zorgiepoo merged commit 923bb96 into 2.x Mar 28, 2021
@zorgiepoo zorgiepoo deleted the features branch March 28, 2021 19:47
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.

2 participants