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

Support plugin copying for remote feature #13369

Merged
merged 1 commit into from
May 15, 2024
Merged

Conversation

msujew
Copy link
Member

@msujew msujew commented Feb 8, 2024

What it does

This change adds support for copying plugins from the host system to the remote system. Works in two ways:

  1. Builtin plugins are transmitted directly through SSH
  2. User installed plugins are installed via the new --install-plugins argument. This new runtime CLI argument automatically installs the specified extensions from open-vsx.

How to test

  1. (optional) install some plugins from open-vsx.
  2. Use the SSH remote feature to connect to a remote system.
  3. Both builtin and manually installed plugins should have been transmitted to the remote system. You can open the vsx-registry view to confirm this.

Review checklist

Reminder for reviewers

@msujew msujew added plug-in system issues related to the plug-in system remote-ssh issues related to the ssh remote functionality remote issues related to the remote functionality labels Feb 8, 2024
Copy link
Contributor

@jonah-iden jonah-iden left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some things i noticed while testing.

  • It seems to not be able to install all extensions
    There were two extensions missing which were install from VSX previously for testing: zaaack.markdown-editor and ms-toolsai.jupyter-keymap
  • of the builtin extensions only 26 of 83 were installed. Even basic things like css and dart language basics
  • of course extensions installed through install from vsix were not installed. That would probably take additional significant effort right?

@jonah-iden
Copy link
Contributor

jonah-iden commented Feb 13, 2024

ok i take that back with the not installed extensions it seems the view just did't update correctly. Maybe it would be nice to have a installing plugins progress message somewhere

@jonah-iden
Copy link
Contributor

It's nice that launch args can be added via a contribution point, but the way the --install-plugins option is added currently, its kind of hard to modify it from other theia packages. Like for example the dev-container support should later on add the ability to install specific extensions in the container.

@tsmaeder
Copy link
Contributor

tsmaeder commented Feb 22, 2024

@msujew have you considered:

  1. Extensions that are installed from a *.vsix file: they may not be available on open-vsx
  2. Maybe the remote ide does not have the same access to the internet my local machine had when I installed the *.vsix

That considered, wouldn't it make more sense to ship all local plugins to the remote ide?

@msujew
Copy link
Member Author

msujew commented Feb 22, 2024

That considered, wouldn't it make more sense to ship all local plugins to the remote ide?

I've thought about that, but the main issue here lies with platform specific plugins: If I'm running windows, I will run the native rust-analyzer plugin Windows binaries. Shipping those to the remote ide will stop the plugin from working.

We generally don't really have enough information about a plugin to know whether we can just copy it over or whether we have to redownload it on/to the target machine.

@tsmaeder
Copy link
Contributor

@jonah-iden what's the current state of this one?

@jonah-iden
Copy link
Contributor

jonah-iden commented Mar 21, 2024

@tsmaeder to be honest im not totally sure. If this is not urgently needed i would wait for mark to get back from vacation.
Im not sure if wanted to change some stuff. From my side i could probably approve it

@msujew msujew force-pushed the msujew/remote-plugin-support branch from 4cc05c3 to 571a75a Compare April 10, 2024 08:48
@msujew
Copy link
Member Author

msujew commented Apr 10, 2024

@jonah-iden I just rebased on top of Thomas' changes regarding the --install-plugin cli argument. I kindly ask for a retest :)

of course extensions installed through install from vsix were not installed. That would probably take additional significant effort right?

Right. It's possible in theory (we can just repackage the unpacked plugin) but I would implement that once it is actually required.

of the builtin extensions only 26 of 83 were installed. Even basic things like css and dart language basics

I haven't been able to reproduce this. In all of my tests, all 85 builtins were successfully copied to the remote.

@msujew msujew force-pushed the msujew/remote-plugin-support branch from 571a75a to 41f8c72 Compare May 15, 2024 11:44
Copy link
Contributor

@jonah-iden jonah-iden left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Works great. All my installed extensions were copied perfectly fine.
Code looks good to me

@msujew msujew merged commit a9f3c77 into master May 15, 2024
13 of 14 checks passed
@msujew msujew deleted the msujew/remote-plugin-support branch May 15, 2024 12:11
@github-actions github-actions bot added this to the 1.50.0 milestone May 15, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
plug-in system issues related to the plug-in system remote issues related to the remote functionality remote-ssh issues related to the ssh remote functionality
Projects
Archived in project
Development

Successfully merging this pull request may close these issues.

None yet

3 participants