Skip to content

Plugins replacement #364

Closed as not planned
Closed as not planned
@l0rd

Description

@l0rd

Is your feature request related to a problem? Please describe

We are currently removing plugins from the devfile spec but being able to reference a devfile or a fragment of a devfile (beyond parents that are limited to one) would be valuable.

Che workspaces for example always include the same components (like the IDE and machine-exec) and those components may have long specs. Having to copy/pasting those components in every single devfile makes devfile harder to read and edit. And an update to those component requires an update to every single devfile.

Describe the solution you'd like

ALTERNATIVE 1

Allowing composition rather than inheritance in devfiles. Deprecating parent and introducing imports.

schemaVersion: 3.0.0
imports:
  - id: java-maven
  - id: mysql
  - id: theia-ide
components:
(...)

ALTERNATIVE 2

Have a dedicated section (webEditors) for IDE tooling:

schemaVersion: 2.5.0
parent:
  id: java-maven
components:
(...)
webEditors:
  - id: che-theia-ide
    plugins:
      - id: java
      - id: github-pull-request
    preferences:
      - editor.tabSize: 4
      - editor.insertSpaces: true

Additional context

For the time being Che will use separate files to let users specify the IDE (and its specific preferences and extensions). Separating the IDE components from the rest of the devfile is probably a good idea. But splitting the spec of a workspace into multiple files is not.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/apiEnhancement or issue related to the api/devfile specificationlifecycle/rottenRotten items. These items have been stale for 60 days and are now closed.lifecycle/staleStale items. These items have not been updated for 90 days.

    Type

    No type

    Projects

    Status

    Done ✅

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions