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

Linux update flow is not very user friendly #7103

Closed
bpasero opened this issue Jun 1, 2016 · 17 comments
Closed

Linux update flow is not very user friendly #7103

bpasero opened this issue Jun 1, 2016 · 17 comments
Assignees
Labels
install-update VS Code installation and upgrade system issues linux Issues with VS Code on Linux

Comments

@bpasero
Copy link
Member

bpasero commented Jun 1, 2016

When I start my Code on Linux I always get the notification that an update is available but that notification just points me to the general download location, not the right build for my update channel.

Can we not just download the right RPM/DEB package in the background and open it using the package manager, similar to how we do it on windows with the installer?

/cc @joaomoreno

@bpasero bpasero added bug Issue identified by VS Code Team member as probable bug linux Issues with VS Code on Linux labels Jun 1, 2016
@Tyriar Tyriar added the install-update VS Code installation and upgrade system issues label Jun 1, 2016
@Tyriar
Copy link
Member

Tyriar commented Jun 1, 2016

The smoothness is still blocked by signing, I feel like just doing it ourselves and owning the keys.

@bpasero
Copy link
Member Author

bpasero commented Jun 2, 2016

@Tyriar even with signed bits, I would like to just click a button in VS Code that downloads the package and opens the package manager to run the update.

@Tyriar
Copy link
Member

Tyriar commented Jun 2, 2016

@bpasero when the repo is signed it will be the OS notifying the user, not VS Code. Then just launch the updater and press the button just like with the majority of the software on the system.

There is potential to streamline this further but it would come after the repo is signed. For example show a message box which runs sudo apt-get update && sudo apt-get install -y code (on Ubuntu anyhow) after an admin prompt then restarts code.

@bpasero
Copy link
Member Author

bpasero commented Jun 2, 2016

@Tyriar note that i have any update info disabled on my Ubuntu because I had it so many times that an update would totally break my Linux in Parallels. I would still prefer a way to do this from within the application.

How does Chrome do it?

@Tyriar
Copy link
Member

Tyriar commented Jun 2, 2016

@bpasero our system is modeled basically exactly after how Chrome's works. It's what Atom has been wanting to do as well.

@bpasero
Copy link
Member Author

bpasero commented Jun 2, 2016

So you can not update from within the application?

@Tyriar
Copy link
Member

Tyriar commented Jun 2, 2016

@bpasero I'd think it's unwise to go against convention for starters and roll our own update system. Calling into apt-get, or whatever the OS' package management system is (if it can be detected) from within VS Code seems achievable.

Users do have a choice in package managers though, so we may try to update via apt-get when it was installed using aptitude or something. Apparently this was a problem in the past but not anymore, but that's just one example.

@joaomoreno
Copy link
Member

@bpasero The current solution is also temporary. Would a Do not ask again for this version button work?

@Tyriar
Copy link
Member

Tyriar commented Jun 2, 2016

There's a "never show again" button which seems to work fine?

@joaomoreno
Copy link
Member

Oh... @bpasero ?

@bpasero
Copy link
Member Author

bpasero commented Jun 2, 2016

@Tyriar @joaomoreno I am used to an experience for update where I acknowledge the update from within VS Code and it runs. Currently on Linux I never update because this experience does not exist. I am asking to make the same experience possible on Linux for stable and insiders.

@bgse
Copy link
Contributor

bgse commented Jun 2, 2016

Just to add my 2¢, the preferred experience on Linux is that the package manager takes care of updating installed packages, and applications do not interfere with it.

In my opinion, an application should not even try to call the package manager to try triggering an update, since it is not the concern of the application if or when the package management does the updating.

No offense, but handling updating in the application itself is bad practice on Linux, imho.

Edit: That is not saying that a notification to the user is a bad idea, say "we found you haven't got the newest version yet, please check your package management for updates".

@bpasero
Copy link
Member Author

bpasero commented Jun 2, 2016

Yeah don't take my point of view as general Linux behaviour, I just disabled any automatic updates in the package manager because applying them always nukes my Linux VM.

I think if I had an action from the update message that just opens the package manager for me to do the right clicks to perform the update is also totally fine.

@bgse
Copy link
Contributor

bgse commented Jun 2, 2016

@bpasero You can also upgrade specific single packages using package manager, for apt it is 'apt-get install --only-upgrade mypackage' iirc. If you leave out the '--only-upgrade' parameter, it will install the package if it isnt already installed.

So basically you'd have 'sudo apt-get install vscode' (or whatever the package is called), and it is done.

With dnf it is a more intuitive command with 'dnf upgrade vscode'.

Btw, for solving the issue of updates breaking your VM, you could just use 'apt-mark hold mypackage' to exclude the package from updates, but still be able to update everything else normally. That requires you to know what exactly the problematic package is though. You can remove the hold with 'apt-mark unhold mypackage' again.

@Tyriar
Copy link
Member

Tyriar commented Jun 2, 2016

I think we should still leave the in-app notification in but delay it a week or so, so it only annoys people who aren't updating their OS. I'm going to close this since #229 and #2973 already exist.

@Tyriar Tyriar closed this as completed Jun 2, 2016
@bpasero
Copy link
Member Author

bpasero commented Jun 10, 2016

@Tyriar can we at least directly link to the right deb package from the update notification? I think that would speed up my update flow quite a bit because it could just download after click via browser and then when I open it the update happens from the package manager.

@Tyriar
Copy link
Member

Tyriar commented Jun 10, 2016

@bpasero right now it's powered by updateUrl in product.json, there would need to be a different value for each 3 builds (deb, rpm, tar.xz) but they all share the build assets. Seems like a mess to get into fiddling with that as then the gulp task vscode-linux-x64 would need to be split into 3 tasks different tasks just for the product.json. Messing with product.json after it's built could cause weird race condition issues otherwise.

@bpasero bpasero removed the bug Issue identified by VS Code Team member as probable bug label Jul 1, 2016
@vscodebot vscodebot bot locked and limited conversation to collaborators Nov 18, 2017
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
install-update VS Code installation and upgrade system issues linux Issues with VS Code on Linux
Projects
None yet
Development

No branches or pull requests

4 participants