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

Add support for specific platforms #336

Closed
benoitf opened this issue Sep 20, 2021 · 4 comments · Fixed by #406
Closed

Add support for specific platforms #336

benoitf opened this issue Sep 20, 2021 · 4 comments · Fixed by #406
Assignees
Labels
cli Component: cli server Component: server

Comments

@benoitf
Copy link
Member

benoitf commented Sep 20, 2021

Hello, based on microsoft/vscode#23251 (comment)

it seems OpenVSX will have to handle platform specific extensions

like

$ ovsx ... --target linux-x64

and then expose extensions for different arches.

@spoenemann spoenemann added cli Component: cli server Component: server labels Sep 22, 2021
@GitMensch
Copy link

Some more information:

The vsce feature was included in vsce 1.99.+ and

starting with version 1.61.0, VS Code looks for the extension package that matches the current platform.

More details found at https://code.visualstudio.com/api/working-with-extensions/publishing-extension#platformspecific-extensions and of course - for the client side - https://github.com/microsoft/vscode-vsce.

@amvanbaren
Copy link
Contributor

I'm currently looking at where to fit the target property in the data model.

  • It can be put at the Extension level, this allows for diverging versions per target and target specific ratings, reviews and download counts.
  • A new entity called ExtensionTarget can be introduced and placed between Extension and ExtensionVersion. This would allow for diverging versions per target, but can keep ratings, reviews and download counts aggregated for all targets.
  • It can be added to FileResource, this assumes that whenever a new version is published it is published for all targets. It is also not possible to write a target specific description or specify target specific theming.

the vsce cmd tool defines the target property on ExtensionVersion.
https://github.com/microsoft/vscode-vsce/blob/507fd82e7818104b434d3096b42718b6b1ea1159/src/publish.ts#L153-L155
In the OpenVSX data model the Extension entity has latest and preview properties that refer to ExtensionVersion. Making ExtensionVersion target specific would also make these properties target specific. I don't see how that would work.

This is a big change to the data model that impacts the whole server. Feedback is much appreciated.

@lnicola
Copy link

lnicola commented Jan 6, 2022

In the OpenVSX data model the Extension entity has latest and preview properties that refer to ExtensionVersion.

CC #386 (comment), assuming it's the same preview.

@GitMensch
Copy link

Here's the comment @lnicola referenced, written by @spoenemann:

Ok, then we've been using this flag in a wrong way in Open VSX. Whoever works on this issue should correct the usage of preview as well. [to mean the extension is in preview, not the extension version]

When this fundamental change is done I think the extension+target+extensionversion or extension+extensionversion+target is the reasonable approach.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
cli Component: cli server Component: server
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants