Hosting VS Code Packaged Extensions

In https://github.com/theia-ide/theia/issues/3815, we’re talking about using the vscode packaged extensions (for example, support for typescript). However, as these extensions are not hosted as a packaged artifact anywhere, ist there a plan to host them somewhere?

In particular, I’m worried about the licensing situation here: if we are to ship these extensions with an Eclipse product, we’d have to find a way to host them in a way conforming to Eclipse policies? We’d have to file a CQ, no? And each time we grab a new version.

Did someone devise a way to handle this yet?

[original thread by Thomas Mäder]

+1 about being careful of the licensing aspect of bundling or more generally depending on vscode extensions. I was wondering the same recently. We already have a few vscode extensions, downloaded as part of the Theia build: Debug Adapters for node and java (packages/debug-nodejs/download and ./packages/java-debug/download).

For these specific vscode extensions, it seems that we found a place to download them from: https://ms-vscode.gallery.vsassets.io

So far, I have just made sure to include the unzipped version of the vscode extensions we use, as part of our cumulative “npm production dependencies” CQ. Which means we should submit a new or updated CQ if any of these extension is updated to a new version or a new extension is added as a production dependency.

I think we could decide not to include them in this cumulative CQ and instead have a separate CQ for each vscode extension. If nothing else, such CQ could then be handled separately from the cummulative npm deps CQ, that has a tendency to take a long time to be approved.

Do we know that there are vscode extensions we need that are not hosted on https://ms-vscode.gallery.vsassets.io ?

Why are we not using the official vs code marketplace?

@anton-kosyakov could you link to the work you’ve done packaging the built-in vscode extensions?

For now an idea was to have a Theia extension which packages and delivers all built-in VS Code extensions: https://github.com/theia-ide/vscode-builtin-extensions

End user will be able to create package.json only with this Theia extension and get an analoug of VS Code, like that: https://github.com/theia-ide/vscode-builtin-extensions/blob/master/browser-app/package.json#L6

This work is not complete yet. I was able to properly package them, but after testing found out that the plugin system cannot run them and not complete. The main focus is to fix it so far.

FWIW: @abazko has packaged the typescript extension in a way that seems to work.

I like the idea of publishing them to npm better, because we could reuse those separately

if it includes stuff like cpp, emmet, f#, as #3815 suggests.