Skip to content

Remove plugins from the Devfile schema #18669

@l0rd

Description

@l0rd

Is your enhancement related to a problem? Please describe.

Devfile plugins were designed to specify a dev environment feature (java support for example) that would be independent of the particular IDE/editor used in the workspace.

After a couple of years we have observed that most of those plugins are Che Theia plugins and work only if Theia is the editor.

A first time user will probably assume the following devfile, where the Java plugin is specified but the editor is not, will work no matter what's the IDE/editor. In other words that Che will manage to include the right plugin for the editor that's choosed by the user:

apiVersion: 1.0.0
metadata:
  generateName: petclinic
components:
  - id: redhat/java11/latest
    type: chePlugin
    alias: java

But the truth is that will only work if the editor is Che-Theia. That's confusing for users that read the devfile and other projects that want to adopt the devfile spec and would need to support the devfile above somehow.

The devfile API is not adapted to support the specification of Che-Theia plugins yet (plugins of one devfile component).

There are a few plugins that still make sense as Che plugins as: editors, exec, telemetry, async volumes support. But those plugins are usually not included in devfiles, they are implicitly added by Che at workspace startup time.

Draft PR

Related issues

Describe alternatives you've considered

Using CustomComponents as mentioned in this example.

Additional context

This work should be included in the context of che workspaces that use the DevWorkspace operator, so that's not for v1 devfiles/plugins.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/devfile-specIssues related to Devfile v2area/editor/theiaIssues related to the che-theia IDE of Chearea/pluginsengine/devworkspaceIssues related to Che configured to use the devworkspace controller as workspace engine.kind/enhancementA feature request - must adhere to the feature request template.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions