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

[meta.yaml / Che plug-ins]: Add dependencies section #15376

Open
benoitf opened this issue Dec 2, 2019 · 3 comments
Open

[meta.yaml / Che plug-ins]: Add dependencies section #15376

benoitf opened this issue Dec 2, 2019 · 3 comments
Labels
area/plugin-registry kind/task Internal things, technical debt, and to-do tasks to be performed. lifecycle/frozen Indicates that an issue or PR should not be auto-closed due to staleness. severity/P2 Has a minor but important impact to the usage or development of the system.

Comments

@benoitf
Copy link
Contributor

benoitf commented Dec 2, 2019

Is your task related to a problem? Please describe.

We have some runtime dependencies for plug-ins.
For example VS Code java debug VS Code extension is depending on VS Code java
(we have other examples)

So we should add that information in meta.yaml, so if user is selecting VS Code java debug it would notify that VS Code java will be selected as well.

Also, at runtime, it can check if the configuration is consistent and prevent to start a workspace or remove failed plug-ins.

Describe the solution you'd like

Add dependencies section in meta.yaml, where we can depend on one/several other Che plug-ins.

-dependencies:
  -id: redhat/java/latest

or

-dependencies:
  -reference: https://gist.../yaml

Additional context

From UX, if a che plug-in is selected with dependencies, it should show that new plug-ins will come with it.

if a plug-in is depending on another plug-in and is not defining any container, it will use the dependency container.

But if a container is specified, the dependency plug-in will use this pre-defined container.

example:

  • vscode-java defines java11 image container
  • vscode-quarkus depends on vscode-java and specify a spec/container image `quarkus``

then, there is a graph quarkus --> java and then, vscode-quarkus.vsix and vscode-java.vsix will use the same container which will be using quarkus image

So, there are graphs, and the root node image should always be used (instead of the leaf container)

If there are multiple graphs, some options:

  1. each root node will have its own container
    for example let say
    quarkus --> java and spring-boot --> java , if quarkus is defining quarkus-image and spring-boot is defining springboot-image, two containers will be deployed, one with quarkus-image and with both java and spring vsix. The same with springboot-image with both java and spring vsix

  2. another option: there is an error. We can either use quarkus or spring boot plug-ins but not the same.

  3. Note that due to merge of containers with the same image, if quarkus is using java11 image and spring-boot is also using java11 image, despite that there are two graphs, as the image definition is the same, both quarkus, java, spring-boot vsix will be added in the same container using java11image

related to #15272

@benoitf benoitf added kind/task Internal things, technical debt, and to-do tasks to be performed. area/plugin-broker labels Dec 2, 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 Dec 2, 2019
@ibuziuk ibuziuk added severity/P2 Has a minor but important impact to the usage or development of the system. team/osio and removed status/need-triage An issue that needs to be prioritized by the curator responsible for the triage. See https://github. labels Dec 2, 2019
@ibuziuk
Copy link
Member

ibuziuk commented Dec 2, 2019

@benoitf I put P2, but feel free to update priority

@l0rd
Copy link
Contributor

l0rd commented Dec 4, 2019

I think we discussed that in the case of multiple graphs (2 plugins sharing the same dependency like quarkus and spring-boot both depending on java), in scenario n.2, we would have:

  • asked the user to choose in what image to run all the plugins in the graph when there is an interactive session (like user dashboard or chectl)
  • returned an error in non interactive sessions (i.e. when using DevWorkspace CustomResource)

@che-bot
Copy link
Contributor

che-bot commented Jul 27, 2020

Issues go stale after 180 days of inactivity. lifecycle/stale issues rot after an additional 7 days of inactivity and eventually close.

Mark the issue as fresh with /remove-lifecycle stale in a new comment.

If this issue is safe to close now please do so.

Moderators: Add lifecycle/frozen label to avoid stale mode.

@che-bot che-bot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Jul 27, 2020
@benoitf benoitf added lifecycle/frozen Indicates that an issue or PR should not be auto-closed due to staleness. and removed lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. labels Jul 27, 2020
@benoitf benoitf removed this from the Backlog - Controller milestone Apr 29, 2021
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. lifecycle/frozen Indicates that an issue or PR should not be auto-closed due to staleness. severity/P2 Has a minor but important impact to the usage or development of the system.
Projects
None yet
Development

No branches or pull requests

5 participants