eclipse-theia / theia-ide

The Eclipse IDE is a modern and open IDE for cloud and desktop. The Theia IDE is based on the Theia platform. The Theia IDE is available as a downloadable desktop application. You can also try the latest version of the Theia IDE online. For more details, see the Readme below.
https://theia-ide.org/#theiaide
MIT License
346 stars 129 forks source link

some open-vsx.org extension are not available without any explanations #96

Open ssbarnea opened 3 years ago

ssbarnea commented 3 years ago

Bug Description:

The extension installation panel does say it uses open-vsx.org as source but performing a search on it does return different results than on the website.

Steps to Reproduce:

I tried to find my https://open-vsx.org/extension/zbr/vscode-ansible extension, but when searching for "ansible" only two results are returned instead of 3.

I am not aware of any special flags that are needed in order to list of delist extensions but I am also sure that the retired Ansible extension from microsoft (vscoss) does NOT work well and is still listed.

What are the hidden tricks to make extensions visible or to hide them if necessary? I think that is something that should be documented.

Additional Information

vince-fugnitto commented 3 years ago

@ssbarnea thank you for the discussion, can you confirm which version of ansible you expect? The version I see uses an engines.vscode of 1.52.0. The extensions in the view are checked for api compatibility by comparing them to the api level of the framework (currently 1.50.0). If an extension is not listed in the view it is due to this compatibility check not being satisfied.

ssbarnea commented 3 years ago

@vince-fugnitto Thanks for the hint, that explains why my extension is not listed as I do know to require ^1.52.0, but I can likely check the compatibility with older versions and lower the engine requirements. Funny, few days ago I had to lower it from 1.54 after someone explained he cannot make use of latest vscode.

I was expecting something like this but I was not able to identify any doc mentioning that. I wonder if there is a place where we could include a hint regarding the fact that only compatible extensions are listed and a hyperlink towards a web page that explains better how compatibility is determined.

ssbarnea commented 3 years ago

@vince-fugnitto After more debugging I am starting to believe it will not be possible to lower the vscode engine version down to 1.50.0. How far is theia from upgrading its compatibility? Do we have bug tracking progress for 1.52 compatibility?

ssbarnea commented 3 years ago

I ended up creating https://github.com/eclipse-theia/theia-blueprint/issues/97 for the 1.50.0 issue.

brianking commented 3 years ago

This looks like https://github.com/eclipse/openvsx/issues/297

vince-fugnitto commented 3 years ago

I was expecting something like this but I was not able to identify any doc mentioning that. I wonder if there is a place where we could include a hint regarding the fact that only compatible extensions are listed and a hyperlink towards a web page that explains better how compatibility is determined.

@ssbarnea the view only lists extensions which have a known compatible version which is ultimately displayed and installed.

As an end-user, I would not expect to see incompatible extensions from the list (no known compatible version present in the registry) since if installed these such extensions will fail as soon as they are activated. One alternative could be to keep them in the list, mark their entries as disable (non-intsallable) with a mention that no version meets the API requirement (but this is not implemented).

marcdumais-work commented 3 years ago

Vince, I think we definitely do the right thing, by having the vsx client be smart enough to pick an older version of an extension, should newer ones require APIs not supported by the current Theia-based app.

However it may be puzzling to a user or extension developer, why a newer version of an extension is apparently being ignored by a Theia application's extension view, while being available on the open-vsx web site.

So, however we make that info available, I think it should be. Your suggestion looks good to me, at least to start-with.

marcdumais-work commented 3 years ago

keep them in the list, mark their entries as disable (non-intsallable) with a mention that no version meets the API requirement (but this is not implemented).

^^^ this

koegel commented 3 years ago

@marcdumais-work: This requires a fix in Theia or even OpenVSX? Is there already a ticket to fix this in either of the projects?

brianking commented 3 years ago

There are a couple of related open search bugs:

https://github.com/eclipse/openvsx/issues/244 https://github.com/eclipse/openvsx/issues/297

marcdumais-work commented 3 years ago

@koegel I think a client-side fix would be enough. ATM the client ignores extension versions that require a vscode extensions API greater than the one available in the current Theia application.

If no version of an extension is deemed compatible, we'll not show that extension I think. We could instead still show such extensions but e.g. greyed-out with a hover message about it not being likely compatible.

@vince-fugnitto is there an issue in the main repo for this?

vince-fugnitto commented 3 years ago

@marcdumais-work https://github.com/eclipse-theia/theia/issues/9676,

I believe the issue can be closed in theia-blueprint given the issue is now tracked upstream.

marcdumais-work commented 3 years ago

One further step would be to add the means to let the user force installation even if an extension/version is potentially not compatible.

koegel commented 3 years ago

@marcdumais-work eclipse-theia/theia#9676,

I believe the issue can be closed in theia-blueprint given the issue is now tracked upstream.

Thanks for clarifying.

Jeeppler commented 3 years ago

Not seeing the extensions at all is strange. If the plugin is available in Open-VSX - but incompatible with my version of Theia - the plugin should be shown in the result list, but greyed-out and not installable.