-
Notifications
You must be signed in to change notification settings - Fork 2.9k
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
[HOLD for payment 2024-08-13] [$500] Desktop - "Check for update" never actually shows option to update the Desktop app #44097
Comments
Triggered auto assignment to @neil-marcellini ( |
👋 Friendly reminder that deploy blockers are time-sensitive ⏱ issues! Check out the open `StagingDeployCash` deploy checklist to see the list of PRs included in this release, then work quickly to do one of the following:
|
@neil-marcellini FYI I haven't added the External label as I wasn't 100% sure about this issue. Please take a look and add the label if you agree it's a bug and can be handled by external contributors |
@lanitochka17 the description says that this is reproducible on staging and production, therefore it should not be a deploy blocker. Is that true? I'll try testing myself on prod but IDK if I'll be able to reproduce it in a timely manner. |
Job added to Upwork: https://www.upwork.com/jobs/~012dcff6435623d64e |
Triggered auto assignment to Contributor-plus team member for initial proposal review - @dukenv0307 ( |
@neil-marcellini sorry for the confusion |
We decided not to let this be a blocker given that it's unclear if the problem exists on production or not. We're hoping that an external contributor will be able to investigate and figure out the problem. I'm going to bump the price up now given that it's not super easy to reproduce/test this one. |
Upwork job price has been updated to $500 |
ProposalPlease re-state the problem that we are trying to solve in this issue.On the Mac OS desktop app updates from the top menu check for update not working. What is the root cause of that problem?In the file desktop/main.ts#L142-L153, we only check if there is a update available but not process anything with the download.
What changes do you think we should make in order to solve the problem?In the promise chain add function call What alternative solutions did you explore? (Optional)Write a separate function to download the update and call autoUpdater.quitAndInstall(); |
ProposalPlease re-state the problem that we are trying to solve in this issue.App not updating after clicking sounds good popup for update What is the root cause of that problem?After the user checks the update manual and confirms "sounds good" we don't handle anything Lines 155 to 161 in 4541ce2
What changes do you think we should make in order to solve the problem?We need a UI to show download processing based on this comment or logging, we can implement by listen dialog.showMessageBox(browserWindow, {
type: 'info',
message: Localize.translate(preferredLocale, 'checkForUpdatesModal.available.title'),
detail: Localize.translate(preferredLocale, 'checkForUpdatesModal.available.message', {isSilentUpdating}),
buttons: [Localize.translate(preferredLocale, 'checkForUpdatesModal.available.soundsGood')],
}).then(() => {
+ autoUpdater.on(ELECTRON_EVENTS.DOWNLOAD_PROGRESS, (info) => {
+ const { percent, total, transferred, bytesPerSecond } = info;
+ browserWindow.webContents.send(ELECTRON_EVENTS.DOWNLOAD_PROGRESS, { percent, total, transferred, bytesPerSecond });
+ });
+ autoUpdater.on(ELECTRON_EVENTS.Error, (error) => {
+ dialog.showMessageBox(browserWindow, {
+ type: 'error',
+ message: 'Update Error',
+ detail: error.message,
+ buttons: [Localize.translate(preferredLocale, 'checkForUpdatesModal.notAvailable.okay')],
+ })
+ });
+ }) or listen when init const electronUpdater = (browserWindow: BrowserWindow): PlatformSpecificUpdater => ({
init: () => {
+ autoUpdater.on(ELECTRON_EVENTS.DOWNLOAD_PROGRESS, (info) => {
+ ....
+ });
+ autoUpdater.on(ELECTRON_EVENTS.Error, (error) => {
+ ....
+ });
+ }) What alternative solutions did you explore? (Optional) |
ProposalPlease re-state the problem that we are trying to solve in this issue.The user never receives an Update ready message. What is the root cause of that problem?When the update is downloaded, we're already attempting to send the push notification to the user here But this is fragile because the user might not have notifications enabled, or they might have notifications enabled but only allows notification in Notification Center, not allowing to show as Alert. So the user will never see it and assuming it's not working. What changes do you think we should make in order to solve the problem?We should show a system dialog letting user know the update is downloaded. The user can choose to update or just dismiss the modal. This will not cause inconvenience to the user because they just saw the To enable the behavior, we can update this to
So it will look like this (ignore the icon, running locally so it's Electron icon but on prod should be Expensify icon): We can also only do this if the update is manually triggered, so it will not show such dialog if the user did not actively request for it. Or we can do the dialog only if Notification permission is not granted/not available by using this check What alternative solutions did you explore? (Optional)Update here to directly call
(the action that will be done if the notification is clicked, so we skip the notification part and directly show that modal) We can also only do this if the update is manually triggered. |
Awesome thanks so much @s77rt. I think this is the PR for the next release |
What's the thinking here with this going in #newdot-quality? |
It creates an unreliable experience |
|
The solution for this issue has been 🚀 deployed to production 🚀 in version 9.0.16-8 and is now subject to a 7-day regression period 📆. Here is the list of pull requests that resolve this issue: If no regressions arise, payment will be issued on 2024-08-13. 🎊 For reference, here are some details about the assignees on this issue:
|
BugZero Checklist: The PR fixing this issue has been merged! The following checklist (instructions) will need to be completed before the issue can be closed:
|
Checklist provided above ^ For the second bug there is no offending PR as the bug was upstream |
@s77rt we'd still want a regression test for this though, right? I feel like this bug has occurred multiple times already, if it were to happen again, it'd be best to catch it during testing vs waiting for someone tor report. |
@mallenexpensify I would say this requires a regression test but it's not clear if the QA can perform the test. The QA team tests on staging and if they are on staging they can't update the app (they are already on the latest). |
Thanks @s77rt , can you propose the steps and I'll create the TestRail case update? If QA can't test, they can comment on the issue and close if needed. |
Regression Test Proposal
|
Thanks @s77rt , TestRail GH created. |
If you haven’t already, check out our contributing guidelines for onboarding and email contributors@expensify.com to request to join our Slack channel!
Version Number: 1.4.86-0
Reproducible in staging?: Y
Reproducible in production?: N
If this was caught during regression testing, add the test name, ID and link from TestRail: N/A
Email or phone of affected tester (no customers): emilio.utest@gmail.com
Issue reported by: Applause - Internal Team
Action Performed:
Expected Result:
User expects the Desktop app to update and receive a message stating that the update is ready
Actual Result:
The user never receives an Update ready message and to update the user needs to access the build link from web
Workaround:
Unknown
Platforms:
Which of our officially supported platforms is this issue occurring on?
Screenshots/Videos
Add any screenshot/video evidence
Bug6519521_1718896885781.Can_not_update_Desktop_app_.mp4
View all open jobs on GitHub
Upwork Automation - Do Not Edit
Issue Owner
Current Issue Owner: @mallenexpensifyThe text was updated successfully, but these errors were encountered: