-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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
Remove plugins from the Devfile schema #18669
Comments
@l0rd since plugins to che-theia will still be needed, what replacement are you proposing? |
@tsmaeder first bullet of the description: " Use extensions.json and che-theia-plugins.yaml to specify recommended vscode extensions and che-theia plugins" |
Is there somewhere that outlines the devfile 2.0 effort? Which other editors are looking at adopting the format? I found https://redhat-developer.github.io/devfile/ but it's v1, and looks to be Che specific. |
https://docs.devfile.io/devfile/2.0.0/user-guide/adding-plugin-component-to-a-devfile.html talks about devfile plugins, but then uses the java che-theia plugin as an example and even has theia preference values. In the call yesterday I got the impression that editor-specific plugins and content had no more place in the devfile? At least not as part of the specification. |
devfile 2.0.0 spec includes a "plugins" component type, this issue is about removing it (see 3rd checkbox in the description "Remove the plugin type component from the devfile spec"). |
@ericwill currently the tools that are adopting the format are The change that we are proposing is based on the observation that editors already have their conventions to specify plugins/commands. And it has more value for users that we support those conventions rather than implement our own universal editor plugin spec. |
As I mentioned in the call yesterday, I think we still need some engine to bind the editor specific plugins and configuration into the workspace, for example, starting the appropriate sidecar containers, etc. Like it or not, having an IDE (aka "editor") in the browser is the main value proposition of Eclipse Che. Until we have a story there, I'm don't think we should move forward with devfile 2.0 in Che. |
The devfile could list IDE extensions for the possible editors projects want to target: |
That's fine, but it seems illogical to me that we are removing features from Che's workflow just because other tooling using the devfile format doesn't support them. Especially when such changes aren't user friendly. It seems there is already an established plugin format for devfile 2.0. Why can't we use that, and tools like odo that don't use plugins can just ignore those components/sections? I imagine it's easier for tools like odo to disregard components of a certain type, than it is for Che to come up with this complex plugin recommendations/override system. I also like what @mickaelistria suggested, where the type field can reflect the IDE being used. It allows for the creation of one central devfile, which is shareable across multiple IDE's. Each individual IDE only looks for the components that match its type. |
@mickaelistria exact! But we currently do not have that in the spec:
|
I agree not specifying is indeed the best way to not doing something wrong. But on the other hand, not specifying also reduces the likelihood for other IDEs to look at that format. I think it's not so much a technical discussion here but really more a discussion about what are the main goals of the devfile and the plans and priority to achieve that goals. |
Yes it's a matter of priorities. I would like to put that on hold, the adoption of the devfile by other IDEs is not a priority whereas a better support of vscode and idea configuration have higher priority. |
Alternative number 3 would be to have a standard way for tools to extend the devfile. VS Code extensions, for example can extend the VS Code preferences schema with their own preference schemas. |
On one hand, I agree that it looks weird removing plugins from the Devfile specification. To me, it looks more like a step back for Che, just to make Devfile adoption a bit easier for other tools, like odo. On the other hand, it sounds much better comparing to synchronizing a Devfile content with all the possible IDE-specific files, like If we choose from the two options: from the editor's perspective, I'd say that the 1'st looks much better, less confusing and error-prone than the 2'nd one. |
A recurring question is about editors: how are we going to specify the editor that should be included in the workspace? Most of the devfiles v1 out there don’t have an editor explicitly specified in it. When Che transform it in a workspace it appends an editor to the original devfile definition. That won’t change in devfile v2: when the devfile gets transformed into a DevWorkspace, the editor will be appended. What about devfiles with an editor explicitly specified in it? In devfile v1 we could add it as a component of type plugin. In devfile v2 it is still possible using attribute schemaVersion: 2.0.0
attributes:
che-editor.yaml:
<yaml content> That allows to include references to editors defined in a che-plugin registry as well as inline definitions. Syntax details are in #18668 |
I can understand this, but I'm not sure I'm on-board here. On one hand, we have
|
Closing this issue since it's already tracked in the devfile/api repository devfile/api#407. |
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:
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
DevWorkspaceTemplates
to specify a Che editor or other sidecar based plugins. TheDevWorkspaceTemplate
can be for just one workspace of a user or for every workspace of a user.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.
The text was updated successfully, but these errors were encountered: