-
Notifications
You must be signed in to change notification settings - Fork 142
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
Support for displaying 'engine' compatibility or filtering extensions by a specific Code OSS 'engine' value #1042
Comments
@jthomasmock do you have context about what VS Code versions are used in these air-gapped environments? I wonder how old these VS Code versions are in general, to see how widespread this issue potentially is. If we were to implement something like this, we'd most likely need to implement a version range parser, since these fields are not always in a friendly format. I quickly sampled data from extensions on https://open-vsx.org. These are results from all currently published extensions:
|
Thanks Filip! It's quite variable, but it's often the case these air-gapped environments are in so-called "regulated industries" such as Finance, Insurance, Pharma, or Government that are thus very slow to make upgrades. The painpoints I have seen are largely around fairly dated versions of Code OSS, maybe a good strawman would be 1.73 (Oct-2022, about 2 years ago). That's about 409 extensions of the top 4 most popular engine versions from your list:
However, realistically, the pain is felt even if there are 2-3 extensions with incompatibilities, as the back-and-forth testing or trying to parse GitHub source code or raw JSON is a bit of a pain even if you know where to look. |
tldr
:For users who have to download extensions directly from the OpenVSX website to use them in offline/airgapped environments since their IDE cannot directly query OpenVSX API:
Background
.vsix extensions have an
engine
value that determines the minimum version of the IDE that is required to be compatible with that particular extension.This is returned in the raw JSON of an extension when requesting a specific version and is used by the IDE to install the appropriate version of an extension for the current IDE version.
However, users in air-gapped or offline environments are not able to query OpenVSX directly from their IDE. They would need to go to OpenVSX in a separate browser, download an extension and attempt to install it in their Code OSS-based IDE. If it fails due to an engine mismatch, they would need to then go to the next version, and repeat the process until finding a compatible version.
More adventurous users might use the OpenVSX API to loop across the various versions and find a compatible version. For an example with the
path-intellisense
extension, with most of the extra JSON trimmed off, as seen if using an API request against:https://open-vsx.org/api/christian-kohler/path-intellisense/2.8.0
Friction points
This is useful information, but it requires querying the API many time per extension as the engine data is only exposed at each individual version rather than including it within some
allVersion
sub field. This is wasteful of OpenVSX resources as a request for even say 10 extensions might turn into 100 API calls (10 per extension) as it pages through the various calls to find a compatible engine version.Additionally, users or administrators are required to make these requests via
curl
or equivalent as the website doesn't display the minimum engine version:Suggestion
For users who have to download extensions to use them in offline/airgapped environments:
The text was updated successfully, but these errors were encountered: