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

Improve extension engine compatibility #11573

Closed
3 tasks done
joaomoreno opened this issue Sep 6, 2016 · 5 comments
Closed
3 tasks done

Improve extension engine compatibility #11573

joaomoreno opened this issue Sep 6, 2016 · 5 comments
Assignees
Labels
extensions Issues concerning extensions feature-request Request for new features or functionality

Comments

@joaomoreno
Copy link
Member

joaomoreno commented Sep 6, 2016

Currently, an extension is deemed outdated when there's a newer version published in the Marketplace. Installing an extension requires O(published_versions) request roundtrips: starting from the latest version, the engine field is checked for compatibility with the current Code, and it goes on backwards from there.

We should:

  • Publish extensions with the compatibility value as a property
  • Use that property to figure out which version to install
  • Use that property to correctly figure out whether the extension is outdated

VSIX manifest format:

<Properties>
      <Property Id="abc" Value="def" />
      <Property Id="ghi" Value="jkl" />
</Properties>

Response:

"version": "0.1.15",
              "flags": "validated",
              "lastUpdated": "2016-09-06T04:41:03.74Z",
              "properties": [
                {
                  "key": "abc",
                  "value": "def"
                },
                {
                  "key": "ghi",
                  "value": "jkl"
                }
]
@joaomoreno joaomoreno added the feature-request Request for new features or functionality label Sep 6, 2016
@joaomoreno joaomoreno added this to the September 2016 milestone Sep 6, 2016
@joaomoreno joaomoreno self-assigned this Sep 6, 2016
@joaomoreno joaomoreno changed the title Marketplace: use version properties to store vscode engine compatibility Improve extension engine compatibility Sep 13, 2016
@joaomoreno joaomoreno assigned sandy081 and unassigned joaomoreno Sep 13, 2016
@sandy081 sandy081 added the extensions Issues concerning extensions label Sep 15, 2016
@joaomoreno
Copy link
Member Author

@rebornix just hit the bug that this will fix: an extension which has a new version published, which isn't compatible with the user's version of Code, always appears out of date in the product.

@daviwil
Copy link
Contributor

daviwil commented Sep 22, 2016

I wonder if this explains what @gerane was seeing in issue #12281?

@joaomoreno
Copy link
Member Author

Probably not, since this is about update notifications.

@gerane
Copy link

gerane commented Sep 22, 2016

Not sure. My issue is that code is not able to connect some of my installed extensions to to the ones in the marketplace any longer. I don't get update notifications for them, but not sure if those mechanisms are linked in anyway.

Also, I'm pretty sure this issue was introduced a while ago, but it's not an easy one to catch.

@sandy081
Copy link
Member

Outdated check for an extension is done as follows:

If the extension has defined engine property in the VSIX manifest, it is used to check its compatibility. Otherwise falls back to old way.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
extensions Issues concerning extensions feature-request Request for new features or functionality
Projects
None yet
Development

No branches or pull requests

4 participants