Skip to content

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

@benoitf

Description

@benoitf

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/plugin-registrykind/taskInternal things, technical debt, and to-do tasks to be performed.lifecycle/frozenIndicates that an issue or PR should not be auto-closed due to staleness.severity/P2Has a minor but important impact to the usage or development of the system.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions