-
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
Adapt ws.next model to new requirements #9895
Comments
@benoitf @gorkem @garagatyi @vparfonov @ashumilova @tsmaeder
Also, I don't see anymore the need to have ChePlugin and CheFeature as a separate thing. I guess we can combine it together. Examples of ChePlugin Githib plugin, it has no additional containers. The content of the plugin is packaged in che-theia-github.tar.gz
Typescript language support with sidecar ls, theia plugin in che-theia-typescript.tar.gz and syntax config.
|
Is "4." force a restart of the workspace ? |
This is a good question that we have to answer.
|
I am OK with having just one |
About 4. above: I think we should think the other way around: che server should update the workspace config and tell Theia to add some extensions. This would decouple Theia from knowing about workspace configuration. To this purpose, Theia would have to run a service that the workspace can talk to. Maybe we could even get rid of the env variables at startup altogether and use the same control mechanism for everything. |
About the configuration of the language and typescrip-tokenprovider.ts: why do we need to do that? I don't understand the use case. |
@tsmaeder |
I think there is no use case anymore for allowing contribution of language server processes in workspace configuration (and no associated code). So the idea would be to have a Theia plugin that reads the workspace config at startup and registers Languages? Where would the file 'typescript-tokenprovider.ts' be found if not inside a client-side Theia plugin? But if we have a client-side Theia plugin for typescript, why not configure the syntax there? Also, you're defining a language, but you're not configuring a language server. There may be multiple language servers for Java files (Spring LS, Java LS, Coverage LS, etc.) If you don't allow for separation of language configuration and langauge SERVER configuration, the will possibly have conflicting definitions of the Java language. The last issue I see is: In general, we should strive to reuse existing Theia language plugins as much as possible. The consequence of this is that we should use the same configuration concepts as Theia, meaning language descriptions and separate language server configuration based on DocumentFilters and langauge id's. |
What I understand from your comment that we should do all syntax configuration from code (Theia plugin) and I should not worry about language support. |
That is my opinion. I don't think Joe Programmer will have much need to manually add language servers in the WS configuration. If it's for people contributing into the feature store, I think it's easier to require them to do a very simple Theia plugin. If we do decide to implement it, we should make such that it closely mirrors the Theia model of LS configuration and make sure the model plays nice with LS plugins installed via the feature store. |
@gorkem I'm sorry. I guess I've added some confusion on terminology. I'll try to make things more clear below.
This is an IDE loader concern. It's trying to find a link to a server with
I think that we can take versioning model from npm in a connection between ChePlugins(CheFeatures) and (CheServices). Terminology
Examples: DevTool
Questions.
Feature
Whats new:
WDYT? |
question
metadata About
it should be renamed to org.eclipse.theia as theia is moving to Eclipse. about the For example can I just link an external plugin from a feature. sum up: How will they appear ?
will the name will contain marketplace link ? Also in your example, how the files can be retrieved (not the name but the content) ?
how can I list "pure theia plugins" ? |
The idea was to combine values from Feature
This part was originally designed to send a list of Theia plugins to Theia DevTool (Service) container. Recently we discussed that this functionality is no longer needed. So we may omit it when we are discussing Theia plugins.
ok.
Initially, I didn't plan that.
I wouldn't say that this is a big issue. But I would like to listen @gorkem and @slemeur opinion how important this functionality on this stage. One of the alternative I may propose to automatically publish all Theia plugins as Che Features on a marketplace.
Was planning that user in Feature's yaml will define set of Theia's plugins like this:
This files will appear in Feature response as a links. as a links
To be able to have a proper answer for this question we should clarify use case. From dashboard
On Theia container entry point
In TheiaWhen a user wants to add more features to already running workspace
@benoitf Am I understand your question correctly? |
@skabashnyuk correct me if I'm wrong, but workspace.next is a client of the market place like theia could be (or other clients), correct ?
Why would theia would grab che feature ??
so AFAIK, marketplace should expose what is submitted. (no transformation, no generic auto publication, no random stuff). workspace.next is a client, then it can transform a theia.plugin into a che feature model internally if it may help internally but that's "internal". Or it can transform anything into the workspace.next model but marketplace is still something highly extensible/versatile |
1- What do you mean by "get from marketplace list of all features that are compatible with features already selected". How is that suppose to work. Is that something that plugin developer will have to care about? 2- I don't get why the plugin registry needs to know about "how" the plugins are getting packaged/added to a workspace configuration. Why the marketplace would need to know about workspace.next? 3- This terminology "Plugin or ChePlugin - I'm proposing to define everything with word plugin as Theia plugin." I don't get that. A Theia plugin is not necessarily a Che plugin and vice-versa. Example: A plugin with a server part, will not be configured the same way between Che and a standalone Theia. But the marketplace should be able to register and deliver those different types of plugins. |
To @benoitf
Not sure that do you mean by "workspace.next is a client". In case if you mean our che server(workspace master) then it will just reference features in workspace definition.
Me too. It's a same thing.
I never said that. I was talking only about Theia feature that is running as a part of Che workspace.
Looks like by "workspace.next is a consumer" you have something different than in my mind. Could you clarify that?
Ok. Let's forget about "automatically publish"
here is something that is not very clear. I would expect that Feature will have
Where che-theia-github.tar.gz contains pure original Theia plugin. To @slemeur
This is something that should be handled between che clients like a dashboard, Che based Theia from one hand and marketplace/registry from another hand. For example, if a user chooses Feature A:0.0.1 that is required devtool D:5.2.x we can select Feature C:0.2 that is required devtool D:6.x. Our flow should handle a situation when different
registry/marketplace don't care about compatibility of different features. It's just a storage. But someone has to help our UI that will provide user functionality of selecting new features to show users only compatible features that we can run simultaneously.
"A Theia plugin is not necessarily a Che plugin and vice-versa" - this type of confusing I was intended to avoid with my definitions. Where
|
yes, workspace master is a client of marketplace.
It's not. Marketplace is kind of hosting services with statistics, metadata, nice UI, etc.
I was referencing this line:
I mean that workspace master is a client of market place (like any other client)
here is something that is not very clear. I would expect that Feature will have
The main difference, I think is that for me marketplace is serving what has been submitted so in your example I think it's missing the nature (For me the market place is not only hosting che feature)) of what is provided. like : But if I submit for example a
and I can ask marketplace to grab only
so for a theia plugin, we could require:
and for a che feature it would be the same
(and it is was a docker image, we could as well specify the engine to be : docker or anything else) so workspace.next engine will know
UI clients could list all stuff possible to install. |
FYI I have created a new issue here to refactor/simplify current |
Closing since I think we will go in this direction #10123 |
Description
The text was updated successfully, but these errors were encountered: