Update flow on mac poor ux · Issue #16385 · atom/atom · GitHub
Skip to content
This repository was archived by the owner on Mar 3, 2023. It is now read-only.
This repository was archived by the owner on Mar 3, 2023. It is now read-only.

Update flow on mac poor ux #16385

Open
Open

Description

Prerequisites

Description

Updating atom (installed with brew) has been broken on mac for a while now (currently on high sierra, but same for sierra).

Steps to Reproduce

  1. Click the blue squirrel
  2. Click restart and install
  3. Atom closes but doesn't quit
  4. Wait for a while
  5. What's going on? Is it stuck?
  6. Force quit
  7. Start atom
  8. Update failed
  9. Repeat

Expected behavior:
As a user I expect the update process to work as follows:

  1. Click the blue squirrel
  2. Click restart and install
  3. Atom immediately restarts and shows me a progress bar of the new version downloading and then installing
  4. Done

Actual behavior:

See step to reproduce.

Reproduces how often:

All the time so far.

Versions

Atom    : 1.23.1
Electron: 1.6.15
Chrome  : 56.0.2924.87
Node    : 7.4.0
apm  1.18.11
npm  3.10.10
node 6.9.5 x64
atom 1.23.1
python 2.7.10
git 2.15.1
macos high sierra 10.13.1

Additional Information

I understand that I shouldn't force quit atom while updating, but as a user it's frustrating to not know if it's hanging or actually doing something. Plus, besides that, I've also gotten this error and encountered other snags while updating.

It seems like the update flow needs some attention. The current flow feels broken, even though it might be working well, as a user you just don't know because there's no indication of what's happening.

Activity

  1. winstliu commented on Dec 14, 2017

    @winstliu
    Contributor

    Is the account that you use Atom under an administrator?

  2. added
    macIssues that occur on macOS but not on other platforms.
    on Dec 15, 2017
  3. itsmeduncan commented on Jan 10, 2018

    @itsmeduncan

    This is currently happening for me while upgrading from 1.23.2 to 1.23.3. I hit restart and install, and it closed all of the windows but Atom is still running. Here is a sampling from Activity Monitor.txt

    screen shot 2018-01-10 at 5 13 39 pm

  4. jsejcksn commented on Jan 11, 2018

    @jsejcksn

    This has also been my experience for the last 3+ updates and has become expected behavior. 😕

    When updating from 1.23.2 to 1.23.3:
    After finishing a session of work and ready for a context switch, I clicked Restart, and Atom closed all windows (and stayed open). After 2–3 hours and forgetting about updating earlier, I opened a directory in Atom via Terminal (open -a Atom <directory>), which opened a new window in Atom having the blue squirrel icon. I clicked it and, noting that the update had not taken place, clicked Restart again, which closed that window and, after a moment, actually quit Atom. When Atom restarted, my original windows reopened, but not the one I had opened from Terminal. This was preferable to losing all of my other windows, but I'm not sure what that says about the state management during updates.

  5. romainmenke commented on Jan 11, 2018

    @romainmenke

    Same here. Came here looking for a fix and got all the time in the world to type this as the update won't come through. To make matters worse $ atom . spawns extra atom processes when an update has been auto-downloaded. That is actually how I know to update Atom. Not the blue squirrel, but the multitude of atom processes suddenly showing up.

    Please fix this.

  6. agraubert commented on Feb 15, 2018

    @agraubert

    I have been having the same issue, and followed some tips from #2860 which lead me to the ShipIt framework. Looking at the logs, I found that ShipIt was failing to copy a file nested deep in apm's dependency tree:

    2018-02-15 12:00:07.445 ShipIt[7179:74364] Resuming installation attempt 3
    2018-02-15 12:00:10.497 ShipIt[7179:74367] Installation error: Error Domain=SQRLInstallerErrorDomain Code=-1 "Failed to copy bundle file:///Users/aarong/Library/Caches/com.github.atom.ShipIt/update.9yVgqZT/Atom.app/ to directory file:///var/folders/7y/hvrzyxts3xg74r3m2jbq0kc0zt3g3z/T/com.github.atom.ShipIt.9mot6n8f/Atom.app" UserInfo={NSSourceFilePathErrorKey=/Users/aarong/Library/Caches/com.github.atom.ShipIt/update.9yVgqZT/Atom.app/Contents/Resources/app/apm/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/hypot, NSUserStringVariant=(
        Copy
    ), NSDestinationFilePath=/var/folders/7y/hvrzyxts3xg74r3m2jbq0kc0zt3g3z/T/com.github.atom.ShipIt.9mot6n8f/Atom.app/Contents/Resources/app/apm/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/hypot, NSFilePath=/Users/aarong/Library/Caches/com.github.atom.ShipIt/update.9yVgqZT/Atom.app/Contents/Resources/app/apm/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/hypot, NSUnderlyingError=0x7ff61be1bf40 {Error Domain=NSCocoaErrorDomain Code=4 "The file “hypot” doesn’t exist." UserInfo={NSSourceFilePathErrorKey=/Users/aarong/Library/Caches/com.github.atom.ShipIt/update.9yVgqZT/Atom.app/Contents/Resources/app/apm/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/hypot, NSUserStringVariant=(
        Copy
    ), NSDestinationFilePath=/var/folders/7y/hvrzyxts3xg74r3m2jbq0kc0zt3g3z/T/com.github.atom.ShipIt.9mot6n8f/Atom.app/Contents/Resources/app/apm/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/hypot, NSFilePath=/Users/aarong/Library/Caches/com.github.atom.ShipIt/update.9yVgqZT/Atom.app/Contents/Resources/app/apm/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/test/math/hypot, NSUnderlyingError=0x7ff61be23780 {Error Domain=NSPOSIXErrorDomain Code=2 "No such file or directory"}}}, NSLocalizedDescription=Failed to copy bundle file:///Users/aarong/Library/Caches/com.github.atom.ShipIt/update.9yVgqZT/Atom.app/ to directory file:///var/folders/7y/hvrzyxts3xg74r3m2jbq0kc0zt3g3z/T/com.github.atom.ShipIt.9mot6n8f/Atom.app}
    2018-02-15 12:00:10.497 ShipIt[7179:74367] ShipIt quitting
    2018-02-15 12:04:36.857 ShipIt[7658:77806] Too many attempts to install, aborting update
    

    In the end, I manually updated Atom by downloading the new binary and copying it on top of the original install

  7. jsejcksn commented on Mar 9, 2018

    @jsejcksn

    Update: The experience updating to 1.24.0 and 1.24.1 have both been this:

    1. Menubar > Atom > Restart and Install
      Atom closes all windows; app stays open indefinitely
    2. Focus app and Quit using cmd+q
    3. Launch Atom via Dock shortcut or Launchpad
      Two Atom apps open (not updated version and updated version)
    4. Repeat step 2 for both apps
    5. Repeat step 3
      Everything seems ok now

    Very frustrating; definitely not a working "auto-updater"


    I realize there may not be resources to assign to this presently, but can we get an acknowledgement of this issue?

  8. revelt commented on Mar 9, 2018

    @revelt

    Personally, since the last year I haven't been able to update Atom properly. Either the issue described above happens or nothing happens at all (like now, when I tried to check for updates a second ago).

    For example, at this moment, Atom beta 1.25.0-beta3 has been released. I click blue squirrel, "check now" button, it says it's up to date:

    screen shot 2018-03-09 at 07 40 47

    But it's not up to date!

    These days I resort to obsessively check atom.io/releases page n-times a day and manually download/install latest Atom beta.

  9. jsejcksn commented on Mar 16, 2018

    @jsejcksn

    Now getting error messages after update:

    Atom: 1.24.1 x64
    Electron: 1.6.16
    OS: Mac OS X 10.13.3
    Thrown From: Atom Core

    Stack Trace

    Uncaught Error: The module '/Applications/Atom.app/Contents/Resources/app.asar.unpacked/node_modules/keyboard-layout/build/Release/keyboard-layout-manager.node'
    was compiled against a different Node.js version using
    NODE_MODULE_VERSION 54. This version of Node.js requires
    NODE_MODULE_VERSION 53. Please try re-compiling or re-installing
    the module (for instance, using npm rebuild ornpm install).

    At ELECTRON_ASAR.js:173
    
    Error: The module '/Applications/Atom.app/Contents/Resources/app.asar.unpacked/node_modules/keyboard-layout/build/Release/keyboard-layout-manager.node'
    was compiled against a different Node.js version using
    NODE_MODULE_VERSION 54. This version of Node.js requires
    NODE_MODULE_VERSION 53. Please try re-compiling or re-installing
    the module (for instance, using `npm rebuild` or`npm install`).
        at process.module.(anonymous function) [as dlopen] (ELECTRON_ASAR.js:173:20)
        at Object.Module._extensions..node (module.js:598:18)
        at Object.module.(anonymous function) [as .node] (ELECTRON_ASAR.js:187:18)
        at Module.load (module.js:488:32)
        at tryModuleLoad (module.js:447:12)
        at Function.Module._load (module.js:439:3)
        at Module.require (/app.asar/static/index.js:47:45)
        at require (internal/module.js:20:19)
        at customRequire (/Applications/Atom.app/Contents/Resources/app/static/<embedded>:96:26)
        at get_KeyboardLayoutManager (/Applications/Atom.app/Contents/Resources/app/node_modules/keyboard-layout/lib/keyboard-layout.js:7:65)
        at get_manager (/Applications/Atom.app/Contents/Resources/app/node_modules/keyboard-layout/lib/keyboard-layout.js:16:42)
        at Object.getCurrentKeyboardLayout (/Applications/Atom.app/Contents/Resources/app/node_modules/keyboard-layout/lib/keyboard-layout.js:32:17)
        at exports.keystrokeForKeyboardEvent (/Applications/Atom.app/Contents/Resources/app/node_modules/atom-keymap/lib/helpers.js:201:42)
        at KeymapManager.module.exports.KeymapManager.keystrokeForKeyboardEvent (/Applications/Atom.app/Contents/Resources/app/node_modules/atom-keymap/lib/keymap-manager.js:467:20)
        at KeymapManager.module.exports.KeymapManager.handleKeyboardEvent (/Applications/Atom.app/Contents/Resources/app/node_modules/atom-keymap/lib/keymap-manager.js:347:30)
        at WindowEventHandler.handleDocumentKeyEvent (/Applications/Atom.app/Contents/Resources/app/src/window-event-handler.js:108:40)
    
  10. revelt commented on Mar 17, 2018

    @revelt

    For example, Sublime Text uses dedicated modals, themed:
    sublime

    We need something like that, with "loading" indicator bar.

  11. jsejcksn commented on Mar 17, 2018

    @jsejcksn

    @Ismay The errors were only being thrown in the not updated version, during step 3 of my previous post:

    1. Launch Atom via Dock shortcut or Launchpad
      Two Atom apps open (not updated version and updated version)

    No errors before update or after completion of update. Definitely related.

  12. jsejcksn commented on Apr 6, 2018

    @jsejcksn

    Is this issue prevalent for all users of macOS? I am surprised that this issue is so persistent yet has such little acknowledgement.

  13. itsmeduncan commented on Apr 20, 2018

    @itsmeduncan

    When attempting to upgrade to 1.26.0 from 1.25.1 it hung and I ended up with a weird copy of Atom running:

    screen shot 2018-04-20 at 5 07 55 pm

  14. jsejcksn commented on Apr 25, 2018

    @jsejcksn

    More info on the post by @itsmeduncan: It not only happened to me during the update, but also happens every time I reboot my Mac (macOS reopens all previously open apps/windows after reboot). This is new behavior in Atom 1.26.

  15. Aerijo commented on May 16, 2018

    @Aerijo
    Contributor

    I get this issue too. I've found quitting immediately after clicking update (when the window closes but the application remains open) will let it update like normal. After waiting a few seconds, the icon started bouncing and the update was a success.

  16. joachim-n commented on May 16, 2018

    @joachim-n

    More info on the post by @itsmeduncan: It not only happened to me during the update, but also happens every time I reboot my Mac (macOS reopens all previously open apps/windows after reboot). This is new behavior in Atom 1.26.

    That's probably a separate problem though. I saw this too with 1.26, but the most recent version of Atom has fixed it for me.

  17. jsejcksn commented on May 16, 2018

    @jsejcksn

    It was resolved for me in 1.26.1, and now it's just back to the base issue. @joachim-n

  18. evjan commented on May 31, 2018

    @evjan

    I have the same issue and as far as I can remember it's been like this for many months

  19. matiaskorhonen commented on Sep 28, 2018

    @matiaskorhonen

    This is still happening with Atom 1.31.

    At this point I'd be super happy if Atom would just use, for example, Sparkle to update itself on macOS.

  20. joshpuetz commented on May 15, 2019

    @joshpuetz

    Greetings from May 2019 and Atom 1.36.x, where this is STILL happening. I hate that damned blue squirrel icon so much.

  21. w01fgang commented on Mar 12, 2020

    @w01fgang

    Experiencing this issue on 1.47.0-nightly2 and Mac OS 10.15.3
    This happens only if Atom was opened for a while. Never happens when just opened.
    My workaround is closing all Atom windows once I see that there is an update. Then open a new empty window and then select Restart and install.

  22. DeeDeeG commented on Jan 7, 2021

    @DeeDeeG
    Contributor

    The buggy "Atom never quits/need to Force Quit" situation described in steps to reproduce should be solved now with #21847.

    (But this issue is about a nicer update UX, beyond being bug-free. So I think this issue stays open for now.)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    auto-updatermacIssues that occur on macOS but not on other platforms.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions