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

Provide way for extensions to download and install native dependencies #6929

Closed
DustinCampbell opened this issue May 26, 2016 · 12 comments
Closed
Labels
*duplicate Issue identified as a duplicate of another issue(s) extensions Issues concerning extensions feature-request Request for new features or functionality
Milestone

Comments

@DustinCampbell
Copy link
Member

  • VSCode Version: 1.1.1
  • OS Version: Any

This is a request for the C# Extension. Essentially, the extension needs platform-specific native binaries in order to function (both for debugging support and OmniSharp for language server support). It does this by acquiring the binaries during the extension's first activation, rather than during installation. So, the user experience for installation is a bit awkward:

  1. Install C# Extension
  2. VS Code prompts to restart after successful installation
  3. User restarts VS Code and opens a C# project
  4. User waits after the "installed" extension finishes installing itself by acquiring native dependencies

To make matters worse, in order to acquire the native dependencies, the extension essentially has to copy code from VS Code in order to handle HTTP proxies correctly (see dotnet/vscode-csharp@b8f01e4).

@aeschli
Copy link
Contributor

aeschli commented May 27, 2016

To handle HTTP proxies correctly, use the https://www.npmjs.com/package/request-light node module.
It is also used in dotnet/vscode-csharp#224.

Maybe we need a hook on installation? Or platform dependent extensions? @joaomoreno @egamma

@joaomoreno
Copy link
Member

joaomoreno commented May 27, 2016

Have you tried bundling the native dependencies with your extension? I know there are three platforms to consider, but still... The ideal scenario here is that everything your extension needs should be contained in the published package. Everything else should be done by the extension itself.

@DustinCampbell
Copy link
Member Author

@aeschli -- handling HTTP proxies correctly also means checking the VS Code setting for proxies. Shouldn't that be transparent for extensions so they don't get it wrong?

@DustinCampbell
Copy link
Member Author

@joaomoreno -- that's not acceptable for a number of reasons:

  1. It's more than three platforms. For Linux, we support RHEL, CentOs, Debian and Ubuntu. Each are different payloads.
  2. I've packaged the native binaries for a single platform and it's 40 MB. While there's a bit of sharing that will get that down somewhat, bundling all in one is far from ideal. We're talking about 6 different debugger and language service payloads in a single extension.

@DustinCampbell
Copy link
Member Author

@joaomoreno -- one other thing to consider is that there isn't any progress shown in VS Code while an extension is downloaded. So, if extensions don't stay reasonable small, the user can have a confusing experience where VS Code looks it isn't doing any work for a long while.

@joaomoreno joaomoreno added the bug Issue identified by VS Code Team member as probable bug label May 30, 2016
@joaomoreno joaomoreno added this to the Backlog milestone May 30, 2016
@andrewcrawley
Copy link

This would be very valuable for the CppTools extension as well - we're currently bundling native binaries for the language service and debugger integration for every platform we support, and it's getting unwieldy. Being able to acquire only the binaries relevant to the platform would be a big gain for us.

@joaomoreno joaomoreno added extensions Issues concerning extensions feature-request Request for new features or functionality and removed bug Issue identified by VS Code Team member as probable bug labels Jul 6, 2016
@MarkSky
Copy link

MarkSky commented Mar 3, 2017

I would like to know if it has been solved now?
Now, I use the version of Visual Studio Code is 1.10.1
I followed the CSS, Sass and Less to transpiling SCSS into CSS.
But on Step 4, it still has an error: 'node-sass' ���O�����Υ~���R�O�B�i���檺�{���Χ妸�ɡC

@razzeee
Copy link

razzeee commented Nov 4, 2018

This would still be very appreciated.

For reference dotnet/vscode-csharp#2648 (comment)

@BrettMoan
Copy link

as a user of extensions that need this fixed in the core to allow those extensions to have additional functionality, i would find this feature very helpful if it we to get picked up in teams next backlog grooming. @

@gilescope
Copy link

I'd close this and mark as dupe of #23251 where the story continues...

@gjsjohnmurray
Copy link
Contributor

I'd close this and mark as dupe of #23251 where the story continues...

/duplicate as suggested by @gilescope

@github-actions github-actions bot locked and limited conversation to collaborators Nov 2, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
*duplicate Issue identified as a duplicate of another issue(s) extensions Issues concerning extensions feature-request Request for new features or functionality
Projects
None yet
Development

No branches or pull requests

10 participants