-
Notifications
You must be signed in to change notification settings - Fork 150
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
Naming convention #55
Comments
|
We discussed as well to remove some stuff from yaml file (id, version) as it's duplicating the directory layout, should it be part of this enhancement or another one ? |
|
So a committer decides whether to give a publisher-id to a certain when he accepts a PR with some folder name (like 'redhat')? What about squatters? How do we ensure that only redhatters can make 'redhat' plugins? |
I would say it's up to reviewers. Also in meta.yaml you're referencing a repository. So probably if you try to propose redhat/cool-plugin but it ends to a repository http://github.com/thecoolguy/ then you can probably think that it's not part of a Red Hat project. I would say that this kind of features (Creating an account, publishing on its own namespace is for marketplace, here registry is just exposing the directory layout) |
@tsmaeder this should be a discussion about a naming convention, not about how to fight squatters. I mean if the name of a plugin is |
After discussing with @l0rd and @ibuziuk we decided to move files in Che plugin registry according to the suggested FS structure. We also want to add model versioning to the structure, so it would be possible to change layout of meta files model in registry just by changing model version part in the path to the meta.yaml. Since previous Che deployments use plugin registry deployed at Openshift.io we can also add plugins folder without version prefix with current meta.yaml files and keep it for several versions until we are OK with incompatible change. |
BTW if user created workspace with registry that uses current notation and then we update registry on Openshift.io to a new scheme user's workspaces would not start. Am I missing something? |
@l0rd who should be the publisher when Red Hat employee created Che plugin entry with VS Code extension authored by Microsoft on the VS Code marketplace |
I don't know if it's related to the structure but most of VS Code extensions published on the plug-in registry have the Is there a way to ensure that when we run or we need to think how to provide the theia endpoint without adding it in the image. |
@garagatyi I would say that for a VS Code extension publisher and name in the che plugin registry should match the ones of the marketplace. Even if an employee from another company has added it to the registry @benoitf I think the proper way is to provide the theia endpoint without adding it in the image. |
Otherwise @garagatyi I am ok with the description of the implementation |
Me too, makes sense to me. |
@benoitf we could use proper versioning to declare this dependency on the Theia version. Though we don't have it in place ATM |
@garagatyi I kind of like the idea to move out the endpoint runtime from the docker image (so the image contains only the plug-in + the runtime of this plug-in but is not tied to the endpoint (so no need to inherit from custom images)) |
@benoitf do you mean that image should include proper version of Node.JS or you are thinking about injecting it with the plugin runner? |
@garagatyi injecting it (I experimented it using nexe or pkg to make a single executable). I had to recompile nodejs for alpine to avoid the requirement on libstdc++ vercel/pkg#555). But basically we could have one binary for alpine and one binary for linux/amd64 (I don't have checked how to run it but it could be through a PV, copy or any other great idea :) |
We need a plan how to migrate existing workspaces from old notation to a new one. Just versioning won't help us since users will stuck with old non-evolving plugins and changing registry prefix to v2 will break such workspaces.
|
@davidfestal @ibuziuk @amisevsk It is topic we discussed today on the standup call. Feel free to provide your ideas |
@l0rd you didn't mention what should be the separator between publisher_id and plugin_id when we use it in plugins list in workspace config. I assume that version is separated by colon {
"attributes": {
"editor": "redhat.theia-ide:2.3.4",
"plugin": "microsoft.typescript-ls:1.0.11"
}
} or maybe {
"attributes": {
"editor": "redhat/theia-ide:2.3.4",
"plugin": "microsoft/typescript-ls:1.0.11"
}
} or maybe we should change model and put publisher id, plugin id and version in different fields, e.g. {
"attributes": {
},
"editor": {
"publisher": "redhat",
"id": "theia-ide",
"version": "2.3.4"
},
"plugins": [
{
"publisher": "microsoft",
"id": "typescript-ls",
"version": "1.0.11"
},
{
"publisher": "redhat",
"id": "openshift-connector",
"version": "4.0.8"
}
]
} |
@garagatyi your second proposal makes more sense to me. What do you think? |
@l0rd yes, second option is more aligned with idea of publisher == github organization in the issue description. |
To make user able to copy/paste |
@sleshchenko yes, thanks for the information.
|
@sleshchenko I prefer the slash Something that we should keep in mind is that we need to implement eclipse-che/che/issues/12937 hence I would expect that 99% of the time users won't specify the version of the plugin in their devfile (they would just want latest). @garagatyi No we do not want to break previous Che versions, that's why we should add the plugins with the new naming to the |
Just discussed with @sleshchenko plugins upgrade policies taking into account new notation both with colon tool:
id: eclipse/che-theia
registryUrl: https://redhotchili.peppers/che-registry/
version: ~0.1.0 |
But again, as Mario said id in this case is not really a unique identifier, but rather name of the plugin |
@garagatyi @sleshchenko I know you guys like to find new challenges but we are not going to support those Nice |
@l0rd right, sorry, I forgot about that agreement. |
I'm going to use slash as version separator in new naming convention as Mario like it more and Sergii and I hesitating to choose |
Details at eclipse-che/che-plugin-registry#55 Signed-off-by: Oleksandr Garagatyi <ogaragat@redhat.com>
Details at eclipse-che/che-plugin-registry#55 Signed-off-by: Oleksandr Garagatyi <ogaragat@redhat.com>
Make broker download metas using new naming convention Details at eclipse-che/che-plugin-registry#55 Signed-off-by: Oleksandr Garagatyi <ogaragat@redhat.com>
Copy plugins into 'v2/publisher' folders. Rename field name to displayName. Rename field id to name. Remove /meta.yaml from plugin links in index. Add deprecate section to old plugins. Rework scripts. Add migrate section to registry index. Add old notation plugins to v2 not to break exisiting workspaces. Adapt Readme.md. Signed-off-by: Oleksandr Garagatyi <ogaragat@redhat.com>
…aming convention Signed-off-by: Ilya Buziuk <ibuziuk@redhat.com>
…tion changes Signed-off-by: Ilya Buziuk <ibuziuk@redhat.com>
…ntion Signed-off-by: Ilya Buziuk <ibuziuk@redhat.com>
…tion changes Signed-off-by: Ilya Buziuk <ibuziuk@redhat.com>
…s icon to the README.md Signed-off-by: Ilya Buziuk <ibuziuk@redhat.com>
…s icon to the README.md Signed-off-by: Ilya Buziuk <ibuziuk@redhat.com>
Includes changes required for naming convention and vs code marketplace rate limit error: - eclipse-che/che-plugin-registry#55 - eclipse-che/che#12840
Includes changes required for naming convention and vs code marketplace rate limit error: - eclipse-che/che-plugin-registry#55 - eclipse-che/che#12840
@garagatyi am I correct that once eclipse-che/che#13204 is merged we can close the issue? |
@ibuziuk there are 2 other PRs to adapt |
let's close it once the pending PRs are merged: |
There is no proper naming convention for Che plugins yet. This is issue is to propose one. The goal is to make something simple but still powerful, more similar to the VS Code extensions naming convention than Java packages.
publisher-id
: usually matches the github organisation or userplugin-id
: usually matches the github repositoryversion
: in the formMAJOR.MINOR.PATCH
and using the Semantic Versioningpublisher-id
andplugin-id
should be lowercase and less than 64 chars (each). Only letters, digits and hyphen are allowed (LDH rule).plugins/publisher_id/plugin_id/version/
The text was updated successfully, but these errors were encountered: