Vscode-remote-release: Extension packs are not installed on correct location

Created on 2 May 2019  路  6Comments  路  Source: microsoft/vscode-remote-release

  • Open a remote window
  • Look for an extension pack that has workspace extensions. Eg: PHP Extension Pack
    馃悰 It shows a button install locally
    Expected to show Install on remote

image

馃悰 Clicking on Install, installs PHP extensions locally.
Expected to install remotely

feature-request important remote stable

All 6 comments

The fix in the code to analyze the dependencies has to be deferred to May.

The impacted extension packs are extension packs without a main/code. For example, the Java Extension Pack works fine since it has code.

The work around is to install the extensions from the packs individually or when using remote-containers in the devcontainer.json.

Popular affected extension packs are listed below.

  1. Anaconda Extension Pack
  2. PHP Extension Pack
  3. Salesforce Extension Pack
  4. Python Extension Pack
  5. Angular Essentials
  6. Live Share Extension Pack
  7. Vue.js Extension Pack
  8. Angular Extension Pack
  9. Node.js Extension Pack
  10. Angular Extension Pack
  11. Vue VS Code Extension Pack
  12. VS Code for Node.js - Development Pack
  13. Spring Boot Extension Pack
  14. Laravel Extension Pack
  15. Git Extension Pack
  16. Azure Tools

We should consider fixing this for stable as IMO installing extension packs is broken. In terms of risk, it is low because it is already implemented correctly for dependencies and fixing is to use the same strategy.

An extension pack is an extension that comprises of multiple other extensions. Included extension can be any extension (pack or ui or workspace). So it means an extension pack can be

  • Workspace pack that comprises of all Workspace extensions
  • UI pack that comprises of all UI extensions
  • Hybrid pack that comprises of Workspace and UI extensions

When an extension pack is installed, included extensions should be installed at the appropriate location. Following is my proposal:

An extension pack is considered as workspace extension kind unless specified by the extension.

A workspace extension pack is installed on the remote and if it includes any UI extensions, then they will be installed locally. When a workspace extension pack comprises UI extensions, then user will be notified that installing such a pack also installs some extensions locally.

A UI extension pack is always installed locally and there will be no special treatment.

@alexandrudima FYI

@sandy081 I think this makes sense, but I am concerned about our isUIExtension implementation. The definition you propose would make isUIExtension no longer work on a single package.json. i.e. by looking at the package.json of an extension pack it would no longer be possible to determine where it should execute...

An extension pack is considered as workspace extension kind unless specified by the extension.

@alexandrudima Its isUIExtension that determines above. So it still holds the logic to determine whether an extension is ui extension or not.

Was this page helpful?
0 / 5 - 0 ratings