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

migrate vscode-extensions.json to a che-theia-plugins file #18215

Closed
benoitf opened this issue Oct 27, 2020 · 10 comments · Fixed by eclipse-che/che-plugin-registry#710
Closed
Labels
area/plugin-registry kind/task Internal things, technical debt, and to-do tasks to be performed. severity/P2 Has a minor but important impact to the usage or development of the system.
Milestone

Comments

@benoitf
Copy link
Contributor

benoitf commented Oct 27, 2020

Is your task related to a problem? Please describe.

Today, vscode-extensions.json file defines a list of vsix to analyze to detect new updates.
But we've some che plugins referencing multiple vsix and some vsix are not available as a single che-plugin.

and then we still have the v3/plugins folder so contributors need to update different files with the same information

Describe the solution you'd like

Have a single file describing all plug-ins:

  • it should include the minimal information if a chePlugin match a single vsix
  • if a che plugin includes several vsix, then we can specify the information about vsix alongside.

example to list several vsix:

---
chePlugins:
- id: redhat/java
  ...
  sidecar:
   image: quay.io/eclipse/che-sidecar-java:11-7bd8c8c
   source:
     repository: https://github.com/che-dockerfiles/che-sidecar-java
  extensions:
  - repository: https://github.com/redhat-developer/vscode-java
    revision: v0.69.0
  - repository: https://github.com/redhat-developer/vscode-java-debug
    revision: v0.1.2.3

example if we want to have a vsix directly exposed as a chePlugin with all default options:

chePlugins:
- repository: https://github.com/microsoft/vscode-pull-request-github
  revision: 0.20.0

Describe alternatives you've considered

could be json or yaml but maybe as we may include fragments of devfile.yaml should be done in yaml.

Additional context

Idea is to be able to completely remove v3/plugins folder and have index.json and meta.yaml files automatically generated
This file should be used to generate devfile 2.0 yaml files as well

one source, multiple outputs

@benoitf benoitf added kind/task Internal things, technical debt, and to-do tasks to be performed. area/plugin-registry labels Oct 27, 2020
@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 27, 2020
@ericwill ericwill removed the status/need-triage An issue that needs to be prioritized by the curator responsible for the triage. See https://github. label Oct 27, 2020
@tolusha tolusha added the severity/P2 Has a minor but important impact to the usage or development of the system. label Oct 28, 2020
@ericwill ericwill mentioned this issue Oct 28, 2020
29 tasks
@benoitf benoitf changed the title migrate vscode-extensions.json to a che-plugins file migrate vscode-extensions.json to a che-theia-plugins file Nov 12, 2020
@ericwill ericwill mentioned this issue Nov 12, 2020
34 tasks
@l0rd
Copy link
Contributor

l0rd commented Nov 13, 2020

We had talked about having 2 files at some point: one for single vsx files and one for bundles. At least, as an external contributor, it would make things simpler and consistent with vscode. Is that still relevant?

And sidecar.source.repository is actually the URL to the Dockerfile right? Could we change the name to sidecar.Dockerfile then?

@benoitf
Copy link
Contributor Author

benoitf commented Nov 13, 2020

the 2 files will come in another iteration
That said it may not be easier as you'll need to write a extension pack and for that you'll need a repository as well

For the sidecar as Eric already moved side-cars to same repo it will be more sidecar/directory with the relative link to the sidecar folder and option to have sidecar/image where I can provide directly my image

@l0rd
Copy link
Contributor

l0rd commented Nov 13, 2020

@benoitf makes sense 👍

@ericwill
Copy link
Contributor

@benoitf how do we want to handle extensions that have invalid repos? For example, some repositories upload a vsix as a GH release asset, but the repository itself has no package.json or other source code for building the extension.

@benoitf
Copy link
Contributor Author

benoitf commented Nov 16, 2020

do you have examples ?
But is it related to this issue or it's for 'build vsix from sources' issue ?

@ericwill
Copy link
Contributor

do you have examples ?
But is it related to this issue or it's for 'build vsix from sources' issue ?

For example the broadcommfd/debugger-for-mainframe plugin has this repository, but there is no extension source code there.

It's an issue because generating the meta.yaml automatically requires scraping the extension's package.json. Not directly related to this issue but it seems we should handle it now instead of later.

@ericwill
Copy link
Contributor

Same question for built-in extensions, for example we are shipping the TypeScript extension as a separate plugin in Che but in VS Code it's a built-in. I suppose we could host such cases on che-incubator: https://github.com/che-incubator/ms-code.typescript

@benoitf
Copy link
Contributor Author

benoitf commented Nov 16, 2020

For broadcom maybe we can require source code to be available somewhere optionally ( like zip file to source code, release, etc) or we drop plug-in if source code is not provided.

License is Apache License 2 so code should be available somewhere

For typescript we can reference https://github.com/microsoft/vscode/tree/master/extensions/typescript-language-features

@ericwill
Copy link
Contributor

do you have examples ?
But is it related to this issue or it's for 'build vsix from sources' issue ?

For example the broadcommfd/debugger-for-mainframe plugin has this repository, but there is no extension source code there.

It's an issue because generating the meta.yaml automatically requires scraping the extension's package.json. Not directly related to this issue but it seems we should handle it now instead of later.

cc @filipkroupa can you shed some light on this? Maybe you could point us to the source code for the broadcommfd/debugger-for-mainframe plugin?

@filipkroupa
Copy link

@ericwill I cannot share source code of broadcommfd/debugger-for-mainframe, this project is not open-source.

@ericwill ericwill added this to the 7.23 milestone Nov 18, 2020
ericwill added a commit to eclipse-che/che-plugin-registry that referenced this issue Nov 25, 2020
* Migrate vscode-extensions.json to a che-theia-plugins

Fixes eclipse-che/che#18215

Signed-off-by: Eric Williams <ericwill@redhat.com>

* Adapt to the new format

Signed-off-by: Eric Williams <ericwill@redhat.com>

* Fix vsix ordering

Signed-off-by: Eric Williams <ericwill@redhat.com>
ericwill added a commit to eclipse-che/che-plugin-registry that referenced this issue Dec 1, 2020
Part of eclipse-che/che#18215

Signed-off-by: Eric Williams <ericwill@redhat.com>
ericwill added a commit to eclipse-che/che-plugin-registry that referenced this issue Dec 4, 2020
#732)

* Prepare the automated plugin report for the new che-theia-plugins file

* Remove sidecar entries (these are part of the registry now)
* Adapt to the new YAML file format
* Deal with duplicate repos for plugins with id's

Part of eclipse-che/che#18215

Signed-off-by: Eric Williams <ericwill@redhat.com>

* Fix prettier issues and linting

Signed-off-by: Eric Williams <ericwill@redhat.com>

* Fix bash-lsp directory

Signed-off-by: Eric Williams <ericwill@redhat.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/plugin-registry kind/task Internal things, technical debt, and to-do tasks to be performed. severity/P2 Has a minor but important impact to the usage or development of the system.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

6 participants