-
Notifications
You must be signed in to change notification settings - Fork 2.5k
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
vsx: support buildtime 'extensionPack' handling #9425
Conversation
3820d74
to
c094ab0
Compare
d1e22da
to
e9ff860
Compare
Needs to be rebased following #9486. |
621b59a
to
72f0cef
Compare
cc @alvsan09 @paul-marechal would you mind reviewing when you get a chance, I appreciate any feedback :) |
72f0cef
to
8c19823
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I have tested and it works fine !
The code looks good as well! 👍
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code LGTM!
025eede
to
9a33cc2
Compare
I'll merge the pull-request a bit later during the week if there are no objections. |
The following commit adds improved support for `extensionPack` plugins defined as builtins. Previously, `extensionPacks` could be referenced as builtins, but they would later be resolved when the application is first started. For large packs (such as vscode builtins) this would result in a long startup time, where extensionPacks would need to be resolved, and then downloaded. The following commit fixes that problem by allowing `extensionPack` to be resolved and fetched at buildtime rather than runtime. In order to implement the improvement, a new dev-package was created (`@theia/ovsx-client`) which includes the common logic for the `cli` and `@theia/vsx-registry` (previously part of the `@theia/vsx-registry`) extension. This logic which interacts with the registry (fetch, search, download, determine compatibility) is now used by the `cli` (buildtime), and `vsx-registry` (runtime). The `@theia/vsx-registry` extension was refactored and cleaned up as a consequence. The idea when resolving builtin extensions is the following: - download extensions like today (master). - determine if any `extensionPack`(s) exist. - fetch individual extension ids. - download latest compatible versions of all individual extension ids. Signed-off-by: vince-fugnitto <vincent.fugnitto@ericsson.com> Co-authored-by: marechal-p <paul.marechal@ericsson.com>
9a33cc2
to
9df6be4
Compare
What it does
Fixes: #9224
The following commit adds improved support for
extensionPack
plugins defined as builtins. Previously,extensionPacks
could be referenced as builtins, but they would later be resolved when the application is first started. For large packs (such as vscode builtins) this would result in a long startup time, where extensionPacks would need to be resolved, and then downloaded. The following commit fixes that problem by allowingextensionPack
to be resolved and fetched at buildtime rather thanruntime.
In order to implement the improvement, a new dev-package was created (
@theia/ovsx-client
) which includes the common logic for thecli
and@theia/vsx-registry
(previously part of the@theia/vsx-registry
) extension. This logic which interacts with the registry (fetch, search, download, determine compatibility) is now used by thecli
(buildtime), andvsx-registry
(runtime). The@theia/vsx-registry
extension was refactored and cleaned up as a consequence.The idea when resolving builtin extensions at buildtime is the following:
extensionPack
(s) exist.How to test
download-plugins cli
:id
present in the pack the corresponding extension is fetched at its latest compatible version (based on application api level - this can be updated with a flag).vsx-registry
:Review checklist
Reminder for reviewers
Signed-off-by: vince-fugnitto vincent.fugnitto@ericsson.com
Co-authored-by: marechal-p paul.marechal@ericsson.com