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

Consume VS Code built-in extensions in Che-Theia #14759

Closed
2 of 14 tasks
benoitf opened this issue Oct 3, 2019 · 13 comments
Closed
2 of 14 tasks

Consume VS Code built-in extensions in Che-Theia #14759

benoitf opened this issue Oct 3, 2019 · 13 comments
Assignees
Labels
area/editor/theia Issues related to the che-theia IDE of Che kind/enhancement A feature request - must adhere to the feature request template. severity/P1 Has a major impact to usage or development of the system.

Comments

@benoitf
Copy link
Contributor

benoitf commented Oct 3, 2019

Is your enhancement related to a problem? Please describe.

VS Code has builtin extensions https://github.com/microsoft/vscode/tree/master/extensions

Lot of them are grammars.
We should rely on these extensions instead of https://github.com/eclipse-theia/theia/tree/master/packages/textmate-grammars

For example there is no syntax highlight when editing Dockerfile
image

while there is one in VS Code: https://github.com/microsoft/vscode/tree/master/extensions/docker

Describe the solution you'd like

Eclipse Che Theia should embed these built-in VS Code extensions to match behaviour of VS Code.

Describe alternatives you've considered

N/A

Additional context

https://www.npmjs.com/search?q=vscode-builtin

Accepted

@theia/vscode-builtin-bat
@theia/vscode-builtin-clojure
@theia/vscode-builtin-coffeescript
@theia/vscode-builtin-configuration-editing
@theia/vscode-builtin-cpp
@theia/vscode-builtin-csharp
@theia/vscode-builtin-css
@theia/vscode-builtin-debug-auto-launch
@theia/vscode-builtin-docker
@theia/vscode-builtin-fsharp
@theia/vscode-builtin-go
@theia/vscode-builtin-groovy
@theia/vscode-builtin-grunt
@theia/vscode-builtin-gulp
@theia/vscode-builtin-handlebars
@theia/vscode-builtin-hlsl
@theia/vscode-builtin-html
@theia/vscode-builtin-ini
@theia/vscode-builtin-jake
@theia/vscode-builtin-java
@theia/vscode-builtin-javascript
@theia/vscode-builtin-json
@theia/vscode-builtin-less
@theia/vscode-builtin-log
@theia/vscode-builtin-lua
@theia/vscode-builtin-make
@theia/vscode-builtin-markdown
@theia/vscode-builtin-merge-conflict
@theia/vscode-builtin-npm
@theia/vscode-builtin-objective-c
@theia/vscode-builtin-perl
@theia/vscode-builtin-powershell
@theia/vscode-builtin-pug
@theia/vscode-builtin-python
@theia/vscode-builtin-r
@theia/vscode-builtin-razor
@theia/vscode-builtin-ruby
@theia/vscode-builtin-rust
@theia/vscode-builtin-scss
@theia/vscode-builtin-shaderlab
@theia/vscode-builtin-shellscript
@theia/vscode-builtin-sql
@theia/vscode-builtin-swift
@theia/vscode-builtin-typescript
@theia/vscode-builtin-vb
@theia/vscode-builtin-xml
@theia/vscode-builtin-yaml

Known issues

Check license

  • @theia/vscode-builtin-git
  • @theia/vscode-builtin-git-ui@latest
  • @theia/vscode-builtin-emmet
  • @theia/vscode-builtin-markdown-language-features

There is no public release

  • @theia/vscode-builtin-search-result
  • @theia/vscode-builtin-emmet

Rejected

@theia/vscode-builtin-typescript-language-features:
We have a typescript che-plugin:

@theia/vscode-builtin-php-language-features:
We have a php che-plugin:

@benoitf benoitf added kind/enhancement A feature request - must adhere to the feature request template. area/languages Issues related to Language extensions or plugins integration. labels Oct 3, 2019
@che-bot che-bot added the status/need-triage An issue that needs to be prioritized by the curator responsible for the triage. See https://github. label Oct 3, 2019
@tsmaeder tsmaeder added team/languages severity/P2 Has a minor but important impact to the usage or development of the system. and removed status/need-triage An issue that needs to be prioritized by the curator responsible for the triage. See https://github. labels Oct 3, 2019
@tsmaeder
Copy link
Contributor

tsmaeder commented Oct 3, 2019

Not sure what the current story is with theia and vscode built-ins. We would have to find out how to consume those.

@benoitf
Copy link
Contributor Author

benoitf commented Oct 3, 2019

Theia example assemblies should also move to vscode built-ins eclipse-theia/theia#6260 (discussed on dev meetings) to be aligned with VS Code.
I don't know if it is answering the current story ?

@benoitf benoitf added this to the Backlog - Languages milestone Oct 11, 2019
@tsmaeder tsmaeder changed the title Improve VS Code compliance / grammars. Consume VS Code built-in extensions in Che-Theia Nov 4, 2019
@tsmaeder tsmaeder mentioned this issue Nov 5, 2019
25 tasks
@tsmaeder
Copy link
Contributor

tsmaeder commented Nov 5, 2019

I guess the "todo" here is this:

  1. Figure out how built-ins are published from https://github.com/theia-ide/vscode-builtin-extensions
    We have some special requirements, for example, the typescript language features should not be included, since we have a separate Che plugin for that.
  2. Update che:theia init to install the built-in plugins in a usable way: without the built-ins, theia will not be fully functional. Don't forget to exclude extensions we no longer need. Maybe we need to exclude some built-ins for now, because they conflict with content from Che 7 plugins.
  3. Update the process in Contributing.md in che-theia if necessary. We absolutely need a working self-hosting process.
  4. Update the che-theia image build scripts

@tsmaeder
Copy link
Contributor

tsmaeder commented Nov 5, 2019

The extensions are published to NPM. There is a conversation related to this here: https://spectrum.chat/theia/dev/consuming-vs-code-built-ins~48a3feb9-fddb-42c3-9e0f-a317d81488c0

@tsmaeder
Copy link
Contributor

tsmaeder commented Nov 6, 2019

While most extensions (exception git, I believe) are MIT licensed, we neeed to make sure we're ok consuming the extension: a CQ might be needed,

@tolusha
Copy link
Contributor

tolusha commented Nov 18, 2019

While most extensions (exception git, I believe)

Where does this caution come from? I don't see anything suspicions https://www.npmjs.com/package/@theia/vscode-builtin-git

@tsmaeder
Copy link
Contributor

I seem to remember that one of the dependencies of the git extensions is LGPL, but i don't remember the details. I think @vparfonov would know the details.

@tolusha tolusha self-assigned this Nov 18, 2019
@tsmaeder tsmaeder mentioned this issue Nov 21, 2019
26 tasks
@tsmaeder
Copy link
Contributor

@tolusha thanks for the filed issues: it would be interesting to know for each issue whether it causes a loss of functionality relative to current che-theia.

@marcdumais-work
Copy link

I seem to remember that one of the dependencies of the git extensions is LGPL, but i don't remember the details. I think @vparfonov would know the details.

Hi @tsmaeder - the offending LGPL dependency is jschardet@1.6.0, for which we already have an approved CQ

@tsmaeder
Copy link
Contributor

@marcdumais-work thanks for the info, makes our job easier.

@tolusha
Copy link
Contributor

tolusha commented Dec 18, 2019

How to validate license

  1. Download extension from https://github.com/theia-ide/vscode-builtin-extensions/releases/tag/v1.39.1-prel
  2. Generate package-lock.json
  3. Use https://clearlydefined.io/workspace to validate open source licenses from the list https://opensource.org/licenses/alphabetical

@marcdumais-work
Copy link

Hi @tolusha ,

I was thinking about the license-check for these extensions, e.g. for their eventual use as part of Theia's example application, but was unsure how to proceed. The GH release above has each built-in extension packaged as a .vsix, which is basically a zip file with some expectations about the content.

Do you have a plan how you'll achieve step 2? One not so straight-forward way I can see is to extract each extension's package.json and figure-out what the runtime dependencies are, then obtain the recursive list of their dependencies as well, and check all these for license compatibility.

But I am hoping there is a better way...

@tolusha
Copy link
Contributor

tolusha commented Dec 18, 2019

I use the following command to generate package-lock.json

> npm install --package-lock

I performed manual check for some extensions.
i.e. : downloading vsix, unpacking, generating package-lock.json, validating licenses

@tsmaeder tsmaeder mentioned this issue Jan 8, 2020
35 tasks
@benoitf benoitf removed the area/languages Issues related to Language extensions or plugins integration. label Jan 22, 2020
@benoitf benoitf added area/editor/theia Issues related to the che-theia IDE of Che and removed team/languages labels Jan 22, 2020
@benoitf benoitf removed this from the Backlog - Languages milestone Jan 22, 2020
@benoitf benoitf added severity/P1 Has a major impact to usage or development of the system. and removed severity/P2 Has a minor but important impact to the usage or development of the system. labels Jan 22, 2020
@tsmaeder tsmaeder mentioned this issue Jan 23, 2020
36 tasks
@azatsarynnyy azatsarynnyy mentioned this issue Jan 24, 2020
13 tasks
@azatsarynnyy azatsarynnyy mentioned this issue Feb 3, 2020
20 tasks
@azatsarynnyy azatsarynnyy assigned vzhukovs and unassigned tolusha Feb 6, 2020
@azatsarynnyy azatsarynnyy added the status/in-progress This issue has been taken by an engineer and is under active development. label Feb 12, 2020
@vzhukovs vzhukovs removed the status/in-progress This issue has been taken by an engineer and is under active development. label Feb 14, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/editor/theia Issues related to the che-theia IDE of Che kind/enhancement A feature request - must adhere to the feature request template. severity/P1 Has a major impact to usage or development of the system.
Projects
None yet
Development

No branches or pull requests

7 participants