-
Notifications
You must be signed in to change notification settings - Fork 130
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
On Windows, Brim, Zui Insider, and Zui installers unpack to the same location #2459
Comments
As mentioned in #2409 (comment), on my first time using a "real" Zui install artifact (i.e., not Zui Insiders) I saw the same symptom of my Brim immediately being uninstalled. |
Verified using artifacts at https://github.com/brimdata/brim/actions/runs/3101781827. As a baseline, I did a re-test on a fresh Windows system by first installing After removing all that and starting fresh again, I once again first installed |
For the next test, I started fresh with an install of GA Brim This leaves the exposure that a user might accidentally/innocently re-open the Brim app and start working with their old data again and not realize there's two separate apps with independent data stores. (In the screenshot above I actually tried to open both at once and so the Brim one saw the "spinner" because of the conflicting Zed services, but each is perfectly capable of launching ok solo.) I can think of a few possible directions we could go with this information.
|
This issue was reopened because the last tests we ran with Zui Insiders revealed some challenges we couldn't resolve on the spot, so we backed out the #2547 change while we considered our next move. The setup is on Windows with test artifacts:
The first two (74, 75) are artifacts that were from the current build system where Zui Insiders shares an App ID with regular Brim/Zui. The third artifact (76) was a one-off build that had the change from #2547 such that its App ID differed from the one in the earlier artifacts. That artifact was pulled from the GitHub Releases page for Zui Insiders and has since been replaced with a "regular" artifact numbered 76 that once again was produced via the current build system, which should not be confused with the one used in the tests described here. Starting with a fresh Windows system that has no prior remnants of Brim/Zui/Zui Insiders installs, after installing Zui---Insiders-Setup-0.30.1-74.exe, the Programs list shows the expected single entry. After quitting this Zui Insiders and manually installing Zui---Insiders-Setup-0.30.1-75.exe, the Programs list shows just that single new entry. So far so good. After quitting this Zui Insiders and manually installing the Zui---Insiders-Setup-0.30.1-76.exe that has the different App ID, now two entries are shown in the Programs list. At this point I expect a user's natural instinct would be to try to uninstall the Zui---Insiders-Setup-0.30.1-75.exe entry. However, when we do this, the Zui---Insiders-Setup-0.30.1-76.exe entry is actually the one that disappears. And at this point, the entry for Zui---Insiders-Setup-0.30.1-75.exe cannot be removed. If we attempt, we get: The only way I've found to get rid of the orphaned entry at this point is to manually reinstall the Zui---Insiders-Setup-0.30.1-75.exe artifact, after which the uninstall does succeed. In conclusion, it seems we still definitely want the App ID for Zui Insiders to change so we can deliver the benefits of side-by-side installations of Brim/Zui and Zui Insiders. However, I don't see a way around this problem without the user doing a manual uninstall of the Zui Insiders that has the old App ID. There may be ways to minimize the impact (I'll run some tests of current ideas) but given that we've intentionally presented Zui Insiders as beta-like, we may simply need to educate these power users via Slack/Twitter and walk them through the one-time repair to their Programs list like I showed above. |
I've completed an exhaustive set of tests and have settled on what I think is a reasonable path forward. As predicted above, the tl;dr is that it'll likely consist of:
To establish this, I tested all permutations of:
For completeness, in all tests, I populated a pool with data and a saved query before performing or triggering any upgrades, then ensured that these were migrated successfully into the newer version. This was successful in all permutations, so it is not mentioned in each detailed test result. Repo & BuildsTo have full control in all test permutations, I created a soft fork of the Brim repo into a separate repo https://github.com/brimdata/upgrade-test, making sure to bring over the branch Beyond that, here's what's unique about each test release at https://github.com/brimdata/upgrade-test/releases that was used.
Test ResultsManual Install/Update For Brim->Zui TransitionWindowsStarting from a fresh system with no prior Brim/Zui software, installing the After manually installing the This seems like a good result. The user lands in an automatically-launched new Zui with all their data intact. An orphaned User Data directory for Brim is left behind under If we wanted to be fancy, we could wire up functionality in Zui to look for the older Brim User Data directory in its expected location and, if present, pop up a notification to the user that they might want to archive/delete it. However, I expect this is probably overkill and docs would provide adequate coverage. macOSStarting from a fresh system with no prior Brim/Zui software, installing the After manually installing the This seems like an unexpected/undesirable result, but probably tolerable. The leftover Brim application does leave the possibility that a forgetful user might accidentally open Brim and make changes (load new pools, save new queries, etc.) and then later open Zui and wonder why they're not seeing their changes. As we'll see in later test results, thankfully we don't see this same result during auto-update between these two releases, therefore what we've observed here could probably just be mentioned in a Release Note and/or article indicating that a manual upgrade to Zui would then require a manual uninstall of Brim. Much as described above for the User Data directory, we could be fancy by having Zui check for the presence of older Brim app binaries in the well-known location and pop up a notice advising the user to uninstall, but this is probably overkill. LinuxStarting from a fresh system with no prior Brim/Zui software, installing the After manually installing the This result (and hence the conclusion) is equivalent to what's written above for Manual Upgrade on macOS. Auto-Updated Brim->Zui TransitionAll these tests start from the same state as the prior tests with WindowsWith the After clicking Restart, we see the same result as for the Manual Upgrade test on WIndows: Brim is gone from the Programs list and only Zui The conclusion is equivalent to what's written above for Manual Upgrade on Windows. macOSWith the After clicking Restart, I could see the entry for old Brim was gone from the Applications list and only Zui is now present. Contrast this with the Manual Upgrade test for macOS shown above where the entry for old Brim was left behind. Since auto-update is available on macOS, we expect most (all?) users will make the Brim->Zui transition via auto-update when we post the first Zui release, which helps rationalize not putting in a bunch of special code to deal with the unfortunate result we saw for the Manual Upgrade on macOS. The orphaned Brim data directory is still a consideration, though. LinuxN/A, since auto-update is not available on Linux. However, the notification of the new release does appear as expected, which would prompt the user to begin the Manual Upgrade workflow we described above. Auto-Update To Follow-On Zui ReleaseOn each platform a test was performed starting from the state of the prior tests such that only Zui
For Linux, the notification popped up as it always does, but Manual Upgrade was necessary as it always is. In all cases saved data was preserved between releases, and nothing in the logs indicated any attempt to re-migrate old data. Auto-Update To Side-by-Side Zui InsidersOn each platform a test was performed starting from the state of the prior tests such that WindowsAfter seeing the auto-update notification and clicking Restart, the If a user saw this state and had not received any additional guidance, I expect what they'd now try to do is uninstall At this point, the App Binaries directory for Zui is empty, so the error message we're seeing seems related to orphaned remnants (in the Registry? I don't claim perfect Windows expertise here...) However, the contents of the separate User Data directory are fully intact. My testing then revealed a simple set of steps for getting out of this state:
At this point I ran another permutation where I started once again back at a clean At this point it's effectively the same as we saw the prior test, i.e., the user would uninstall the newer entry in Programs (either intentionally by clicking Uninstall on the newer one, or unintentionally by clicking Uninstall on the older one), then have to manually install the older one ( macOSAfter seeing the auto-update notification and clicking Restart, the app does not actually restart. An entry appears in the
There's still only one Zui entry in the Applications list. Clicking it to relaunch, it comes up yet again in At this point the user is effectively stuck at the old version until they get the hint that they need to manually uninstall to get rid of the old version, then manually install the newer version. Once I did this uninstall and manually installed Once in LinuxAs with the Brim->Zui tests, Linux is unique in that auto-update is not available. Performing manual upgrades, testing showed no user-facing impact of the change in Action PlanSummarizing all the results above, assuming no reviewers find holes in the results or propose alternatives, here's my intended action plan. For Brim->Zui TransitionI'd plan to write an article in the Support Resources section of the new Zui docs to set user expectations. It would touch on:
When we draft Release Notes for Zui v1.0.0 we could link to this article. However, as the testing reveals that nearly all users should expect a seamless transition, I don't think we should go out of our way to draw excess attention to it. For Zui Insiders Side-By-Side TransitionI'd plan to draft Release Notes that I'd post first in the
And the per-platform guidance would be:
After giving users a few days to absorb this info and ask any questions, the |
I'm revisiting this topic one more time because I've just been confronted with a subtle Windows-specific problem with the way things are headed right now for the Zui v1.0 release. Just to recap, the Repro.mp4I also confirmed in a similar test in a personal fork that the same happens with auto-update. Meanwhile, as shown in the attached video, if a user is installing Zui for the first time on a fresh system, their Application Binaries directory is named "zui" as we might expect. Repro-just-Zui.mp4If a user never had a reason to care about the location of the Application Binaries directory, this might be a non-issue. However, as proven by the existence of that Filesystem Paths article, there's already precedent here, e.g., when users want to find the Zed CLI tools that are compatible with their installed app so they can do some scripted operations from the shell against their Zed lake. More recently, this all became apparent because I've been writing some Zed lake migration tools to help users get through a storage format change, and the tools needed a way to find those same binaries to help with the migration. After consulting with the team, it seems the best way forward is to move to a new/unique |
The symptom of this problem was first identified by a community user. I've most recently reproduced it with the GA Windows installer
Brim-Setup-0.30.0.exe
and the Zui Insiders installerZui---Insiders-Setup-0.30.1-29.exe
.On all platforms, Brim and Zui Insiders maintain separate locations on the filesystem for data+config, which allow them to have separate lakes, separate settings, etc. They're supposed to also maintain separate locations for application binaries, and this is indeed true on macOS and Linux. The problem here is that on Windows they seem to share the same location under
%USERPROFILE%\AppData\Local\Programs
for application binaries. Here's repro steps to see what can happen.Zui---Insiders-Setup-0.30.1-29.exe
. At this point we see:Brim-Setup-0.30.0.exe
. At this point the Zui Insiders launch icon disappears from the desktop and its entry is also gone from the installed Programs in Settings. A look at the filesystem shows that the binaries actually landed in the existingzui-insiders
directory, proven by the fact that thezed.exe
version went backwards to the one associated with the older GA Brim release.I've confirmed that neither macOS nor Linux seem to have this problem. When both apps are installed, they show separate "Brim" and "Zui - Insiders" filesystem paths for binaries.
The text was updated successfully, but these errors were encountered: