Support to install and uninstall extensions from cli #691

Closed
joaomoreno opened this Issue Nov 26, 2015 · 13 comments

Projects

None yet

10 participants

@joaomoreno
Member

From @Tyriar on November 26, 2015 2:1

Similar to apm's install and uninstall commands, it would be great to have an official way of installing and uninstalling extensions via the command line in a platform independent way.

This would enable a nicer way of maintaining a consistent development environment across multiple PCs/platforms without resorting to symlinking the extensions to cloud storage (see #679).

Copied from original issue: Microsoft/vscode-vsce#48

@joaomoreno joaomoreno referenced this issue in Microsoft/vscode-vsce Nov 26, 2015
Closed

Add command to install and uninstall extensions #48

@joaomoreno joaomoreno changed the title from Add command to install and uninstall extensions to Support to install and uninstall extensions from cli Nov 26, 2015
@pascalberger

👍

@brunolm
brunolm commented Dec 8, 2015

👍

@egamma egamma modified the milestone: Backlog Dec 10, 2015
@mrmlnc
Contributor
mrmlnc commented Mar 8, 2016

It would be very convenient 👍

@chadbr
chadbr commented Mar 14, 2016

yes please!

@eyalsk
eyalsk commented Apr 5, 2016

I posted this in another suggestion but maybe this is a better place to post it so here it goes:

I'd really want to have is a Console that I can use to install extensions, install nuget packages, install npm packages or another kind of packages and the only thing it needs is Intellisense for packages but yeah definitely unified experience for installing packages.

Instead of tackling specific problems, I'd argue that a much better design is to let programmers handle it and what I mean by that is creating a Console that is extensible and is designed for installing packages, whatever the package might be, VSCode extensions, nuget, bower, npm, you name it.

Just to be clear, I mostly suggest the experience of the Package Manager Console available in Visual Stuidio to Visual Studio Code but taking it few steps farther.

@Tyriar
Member
Tyriar commented Apr 5, 2016

I propose the following args:

# Install
code --install-ext=ms-vscode.csharp
code -i ms-vscode.csharp

# Uninstall
code --uninstall-ext=ms-vscode.csharp
code -u ms-vscode.csharp

# List installed extensions
code --list-ext

With the --list-ext arg returning a flat list of extension aliases:

$ code --list-ext
donjayamanne.python
lukehoban.Go
ms-vscode.csharp
@eyalsk
eyalsk commented Apr 5, 2016

@Tyriar I'd go with either one of these but the POSIX/GNU**+** style is more appealing to me.

PowerShell style.

# Install
code install-extension ms-vscode.csharp

# Uninstall
code uninstall-extension ms-vscode.csharp

# List installed extensions
code get-extension

POSIX/GNU**+** style.

# Install
code extension --install ms-vscode.csharp
code ext -i ms-vscode.csharp

# Uninstall
code extension --uninstall ms-vscode.csharp
code ext -u ms-vscode.csharp

# List installed extensions
code extension --list
code ext -ls 

+ This is more the git style than real POSIX/GNU conventions but it looks good.

@egamma egamma modified the milestone: April 2016, Backlog Apr 14, 2016
@egamma egamma referenced this issue Apr 14, 2016
Closed

April Iteration Plan #4888

63 of 68 tasks complete
@joaomoreno joaomoreno was assigned by aeschli Apr 25, 2016
@joaomoreno joaomoreno modified the milestone: May 2016, April 2016 Apr 25, 2016
@joaomoreno
Member
joaomoreno commented Apr 25, 2016 edited

Unfortunately, this will bleed into May. We need further architecture work in the cli and main processes for this to happen. Anything without it would be half baked.

Namely, we need to

  1. Instantiate the gallery and extension services on the CLI process. Both of these have dependencies that are nowadays very hard to instantiate on their own.
  2. Not only that but make that instantiation dynamic, such that the CLI runs as fast as possible to answer the simple questions such as --version and --help.
  3. Further refactor the main processes' services to become more lightweight and possibly used by any process possible.

cc @egamma

@eyalsk
eyalsk commented Apr 25, 2016

@joaomoreno great! that way you will have more time to think about it! ;)

@egamma
Member
egamma commented Apr 26, 2016

@joaomoreno makes good sense. I've also updated the April plan.

@joaomoreno joaomoreno referenced this issue May 4, 2016
Closed

Test: Command line extension management #6099

3 of 3 tasks complete
@joaomoreno joaomoreno added a commit that referenced this issue May 4, 2016
@joaomoreno joaomoreno --list-extensions #691 eab9ef4
@joaomoreno joaomoreno added a commit that referenced this issue May 4, 2016
@joaomoreno joaomoreno --install-extension #691 6043ff8
@joaomoreno joaomoreno added a commit that referenced this issue May 4, 2016
@joaomoreno joaomoreno --uninstall-extension #691 ac7a5c5
@joaomoreno joaomoreno closed this in 93eb848 May 4, 2016
This was referenced May 13, 2016
@piggyslasher

Since we're in June is this already in the main branch?

@Tyriar
Member
Tyriar commented Jun 8, 2016

Yes this has shipped to both stable and insiders

@jokeyrhyme

It is wonderful. Great work! <3

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