Skip to content
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

Keep only latest (or next during development) version of a plug-in inside che-plugin-registry #18183

Closed
benoitf opened this issue Oct 23, 2020 · 10 comments · Fixed by eclipse-che/che-plugin-registry#672
Labels
area/plugin-registry kind/task Internal things, technical debt, and to-do tasks to be performed. severity/P1 Has a major impact to usage or development of the system.
Milestone

Comments

@benoitf
Copy link
Contributor

benoitf commented Oct 23, 2020

Is your task related to a problem? Please describe.

For now, a lot of plug-in versions are stored in the plug-in registry.
But for example all devfiles are using only latest version of plug-ins and we ensure that all plug-ins work on their respective runtime.

Describe the solution you'd like

Keep only the latest and optionally next version of the plug-ins of the components tied to lifecycle of Eclipse Che. (machine-exec and che-theia)

For example, there is no need to have che-theia:7.17.0 in the 7.20.0 plug-in registry as this version may not work on latest version of che. You may only want to try 'experimental'.
It would simply contributions to the plug-in registry and drop the 'deprecation policy' and maintainability.

Additional context

It's always possible to use custom plug-ins by adding a reference in the devfile.yaml so if someone really want a specific version and a specific runtime, it can be customized.

@benoitf benoitf added kind/task Internal things, technical debt, and to-do tasks to be performed. area/plugin-registry labels Oct 23, 2020
@che-bot che-bot added the status/need-triage An issue that needs to be prioritized by the curator responsible for the triage. See https://github. label Oct 23, 2020
@themr0c themr0c removed the status/need-triage An issue that needs to be prioritized by the curator responsible for the triage. See https://github. label Oct 23, 2020
@ericwill
Copy link
Contributor

👍 to this idea

@ibuziuk ibuziuk added the severity/P1 Has a major impact to usage or development of the system. label Oct 26, 2020
@gorkem
Copy link
Contributor

gorkem commented Oct 27, 2020

These plugins are referenced directly from devfiles with their versions, users should be able to go back to these versions however old they may be and should get a working workspace. If we are removing versions of plugins from registry we must also not allow devfiles to reference plugins with their versions but only with latest or similar meta tags.

@ericwill
Copy link
Contributor

These plugins are referenced directly from devfiles with their versions, users should be able to go back to these versions however old they may be and should get a working workspace. If we are removing versions of plugins from registry we must also not allow devfiles to reference plugins with their versions but only with latest or similar meta tags.

All the devfiles in the registry are already using latest, at least based on a quick grep just now. So this shouldn't be an issue.

@gorkem
Copy link
Contributor

gorkem commented Oct 27, 2020

How about devfiles on user repositories?

@ericwill
Copy link
Contributor

ericwill commented Oct 27, 2020

They have a few options:

  • Stay on the current version of the Che plugin registry they are using
  • Upgrade to a later version, and reference the older plugin in a meta.yaml directly in the devfile
  • Roll their own plugin registry if they are really interested in older plugins (for whatever reason)

@gorkem
Copy link
Contributor

gorkem commented Oct 27, 2020

I do not think any of these options fit the use case. I have a project that I modify infrequently (once in a year perhaps) . I use Che so that I do not have to setup my developer environment. With this change now we are saying that you will have to setup your workspace.

@benoitf
Copy link
Contributor Author

benoitf commented Oct 27, 2020

BTW even before this issue, all older plugins were removed after few sprints so I suppose your workspace contains only 'latest' version of plugin's so it should stil work perfectly fine

@gorkem
Copy link
Contributor

gorkem commented Oct 27, 2020

We should not let devfiles to directly reference a version of the plugin and remove them? We are breaking the instance of the devfile. By allowing devfile to directly define a version of the plugin we are establishing a contract that the version of the plugin will be available. This is not very different from maven coordinate or versions on npm registry. Both maven and npm does not allow removal of published versions.

@benoitf
Copy link
Contributor Author

benoitf commented Oct 27, 2020

npm and maven registries are global. Here, each Che instance has its own registry instance.
For airgap mode it's not possible to have image with all plugin's since the beginning.
Also vsix links may have been removed as it may be links to hosted files that are removed as registry do not host the files but just pointers by default

@ericwill
Copy link
Contributor

We should not let devfiles to directly reference a version of the plugin and remove them? We are breaking the instance of the devfile. By allowing devfile to directly define a version of the plugin we are establishing a contract that the version of the plugin will be available.

No, we are making a contract that the version of the plugin will be available in the version of the Che plugin registry that was deployed when that devfile was written. The user is free to:

  • stay on that version of Che,
  • upgrade Che but use an older version of the plugin registry, or
  • change their devfile (once) to point to a meta.yaml hosted elsewhere, should they really want that older plugin.

We are not obligated to support all devfiles in perpetuity. This isn't even the case right now as I have been removing old plugins after 3 sprints for the last ~8 months. So far no one has complained. In downstream we also only ship the latest version of a plugin.

In reality we cannot have the latest and greatest version of every plugin in our registry and also maintain a massive list of older plugins. Even with automation the maintenance burden is too high. It's easy for for VS Code and other IDEs to let users install/use any version of a plugin, because they don't need to maintain the dependency stack that goes with every extension.

ericwill added a commit to eclipse-che/che-plugin-registry that referenced this issue Nov 6, 2020
Fixes eclipse-che/che#18183

Signed-off-by: Eric Williams <ericwill@redhat.com>
filipkroupa added a commit to filipkroupa/che-plugin-registry that referenced this issue Nov 9, 2020
Remove older plugin version, as only one should be in the registry. See eclipse-che/che#18183

Signed-off-by: Filip Kroupa <filip.kroupa@broadcom.com>
@nickboldt nickboldt added this to the 7.22 milestone Nov 9, 2020
ericwill pushed a commit to eclipse-che/che-plugin-registry that referenced this issue Nov 9, 2020
* hlasm-language-support 0.11.1

New version of plugin hlasm-language-support 0.11.1

Signed-off-by: Filip Kroupa <filip.kroupa@broadcom.com>

* Remove hlasm-language-support 0.11.0

Remove older plugin version, as only one should be in the registry. See eclipse-che/che#18183

Signed-off-by: Filip Kroupa <filip.kroupa@broadcom.com>
sideeffffect pushed a commit to sideeffffect/che-plugin-registry that referenced this issue Nov 10, 2020
Fixes eclipse-che/che#18183

Signed-off-by: Eric Williams <ericwill@redhat.com>
sideeffffect pushed a commit to sideeffffect/che-plugin-registry that referenced this issue Nov 10, 2020
* hlasm-language-support 0.11.1

New version of plugin hlasm-language-support 0.11.1

Signed-off-by: Filip Kroupa <filip.kroupa@broadcom.com>

* Remove hlasm-language-support 0.11.0

Remove older plugin version, as only one should be in the registry. See eclipse-che/che#18183

Signed-off-by: Filip Kroupa <filip.kroupa@broadcom.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/plugin-registry kind/task Internal things, technical debt, and to-do tasks to be performed. severity/P1 Has a major impact to usage or development of the system.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

7 participants