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

Local VSCode Desktop extensions have to be installed manually (Install in SSH) on workspace open #7906

Closed
shaal opened this issue Jan 28, 2022 · 40 comments · Fixed by gitpod-io/gitpod-vscode-desktop#16 or gitpod-io/gitpod-vscode-desktop#26
Assignees
Labels
editor: code (desktop) feature: settings sync feature: settings sync meta: stale This issue/PR is stale and will be closed soon meta: 🤔 reporter-feedback-needed cannot process further since we need more info from the reporter team: IDE type: bug Something isn't working

Comments

@shaal
Copy link
Contributor

shaal commented Jan 28, 2022

Bug description

When you have local VSCode extensions installed, and you open a Gitpod workspace locally.
You'll get this action button next to some extensions (e.g. Composer, Gitlens, etc)
Install in SSH: <name_of_workspace>
Clicking on that button works as expected.
But it's very annoying that the on every new Gitpod workspace I open locally, I have to repeat the whole process on dozens of extensions.

image

cc: @JSchreff

Steps to reproduce

  1. Install Gitlens VSCode extension locally on your computer.
  2. Open any Gitpod workspace, and choose to open it locally in VSCode
  3. Under Extensions -> Local - Installed section, find Gitlens extension.
  4. Click on the button Install in SSH: <name_of_workspace>
  5. Close this workspace and open a new workspace.
  6. Repeat all the steps above, you'll see that you have to reinstall Gitlens extension again.

Workspace affected

No response

Expected behavior

Similar to how Gitpod 'remembers' the VSCode extensions I like to use when I open a workspace in the browser, I'd like it to rememebr and carry over all my installed extensions when I work locally on my computer.

Example repository

No response

Anything else?

No response

@sagor999
Copy link
Contributor

Does it happen to all of your local extensions?
I have a feeling this is due to extension wanting to run on the host itself, hence a prompt to install it on the host via ssh.

@mustard-mh
Copy link
Contributor

You can add these extension to .gitpod.yaml then they will automatic install

@axonasif
Copy link
Member

axonasif commented Jan 30, 2022

@shaal do you have this button?
Screenshot 2022-01-30 at 6 12 41 PM

Other than that, what @mustard-mh said is correct, you can list your extensions in .gitpod.yml since remote.SSH.defaultExtensions1 vscode-settings gets automatically set to gitpod.gitpod-remote-ssh.

Not sure if this will work but you can try adding:

#!/usr/bin/bash -eui
_exts=(
   one.two
   three.four
)
for _ext in "${_exts[@]}"; do {
   code --install-extension "$_ext";
} done

in your dotfiles repo install.sh, this way it can be less manual for all of your workspaces.

Footnotes

  1. https://code.visualstudio.com/docs/remote/ssh#_always-installed-extensions

@shaal
Copy link
Contributor Author

shaal commented Jan 31, 2022

@axonasif @mustard-mh thank you, but I think it's missing the point of this bug/feature request, what you suggested is a workaround and not solving the actual problem.

Gitpod is a service that improves developer experience.
When working on Gitpod workspaces (without any special setup (ie. dotfiles), every extension I add will be installed for me the new workspace I open, without updating .gitpod.yml file.
It's nice because I don't need to remember to do it, it just "does it for me", it improves the developer experience by providing a workflow automate some of the things without requiring additional manual steps.

That behavior is different when opening a workspace in a local VSCode, because all of a sudden, my favorite VSCode extension do not "carry over" to the project that runs on Gitpod workspace.
The desired developer experience would be that when I work locally, my favorite VSCode extensions are available.
In the current state, I have 20 VSCode extensions on my local that I have to manually click to install each and every time I open a Gitpod workspace.

@axonasif
Copy link
Member

@shaal: thank you, but I think it's missing the point of this bug/feature request, what you suggested is a workaround and not solving the actual problem.

Yeah, that's true, if it was then we'd be already closing the issue you know.
Perhaps all we can do is wait for this to become a reality in the future when one of our engineers pick up this issue for making this process convenient 😄

@sagor999
Copy link
Contributor

@akosyakov is that something that can be added? or not possible?
maybe via local companion app that can detect those extensions and send an event to install them on remote?

@akosyakov akosyakov added editor: code (desktop) type: improvement Improves an existing feature or existing code labels Feb 25, 2022
@akosyakov
Copy link
Member

What is wrong with remote.SSH.defaultExtensions ? We do change it to add one extension, but if you have others there they should be installed in each remote machine regardless whether it is Gitpod container or not.

@akosyakov
Copy link
Member

There is also a command Install local extension on remote where you can check box all extensions. We could consider to add an option to run this command programatically.

@loujaybee loujaybee added the feature: settings sync feature: settings sync label Mar 31, 2022
@loujaybee
Copy link
Member

Relates to: #9136

@loujaybee
Copy link
Member

loujaybee commented May 26, 2022

@shaal - Have you tried the recently introduced settings sync: https://www.gitpod.io/changelog/vs-code-desktop-settings-sync - I think that + the extensions in the gitpod.yml should cover your needs? Can you give it a try, if you're still having issues, feel free to re-open! 🙏 Any edge cases for personal setups, dotfiles should hopefully plug any final developer experience gaps for tweaking personal setup.

@shaal
Copy link
Contributor Author

shaal commented May 26, 2022

@loujaybee I enabled VSCode sync (and restarted VSCode).

When I open Gitpod workspace in a local VSCode, it's not that VSCode is not aware of the extension I wanted installed (in my example - CoPilot, and Gitlens). It's that there's an additional manual step, every time I open a workspace.
image
image
I have to click the button Install in SSH, for each and every extension that has that requirement.

@shaal shaal reopened this May 26, 2022
@loujaybee loujaybee added type: bug Something isn't working and removed type: improvement Improves an existing feature or existing code labels Jun 29, 2022
@loujaybee loujaybee changed the title When opening local VSCode, my local extensions have to be reinstalled manually every time Local VSCode Desktop extensions have to be installed manually (Install in SSH) on workspace open Jul 26, 2022
@loujaybee
Copy link
Member

@shaal
Copy link
Contributor Author

shaal commented Jul 26, 2022

@loujaybee just to confirm, I am still seeing this issue.

@akosyakov
Copy link
Member

I think we should fetch setting sync endpoint and install extensions from there automatically and then nudge people to configure Setting Sync with Gitpod. I am not sure we can access extension which are not installed from VS Code Desktop core. cc @jeanp413

@akosyakov
Copy link
Member

@jeanp413 Could you link a corresponding PR please?

@jeanp413
Copy link
Member

Here's the PR gitpod-io/gitpod-vscode-desktop#16

@jeanp413
Copy link
Member

Released a new pre-release version gitpod.gitpod-desktop v0.1.2022082421, you can update gitpod.remote.syncExtensions in your settings.json to disable it

@shaal
Copy link
Contributor Author

shaal commented Aug 29, 2022

I tried it with VS Code Insiders. I opened a repo with the online IDE (VSCode insiders), then click on the menu, to open the Desktop version of VSCode Insiders.
I still see the Install in SSH message
image

@jeanp413
Copy link
Member

@shaal did you enable settings sync with gitpod?
image

@shaal
Copy link
Contributor Author

shaal commented Aug 30, 2022

@jeanp413 I found out what was missing.
I had to open Gitpod's VSCode extension, and choose "use pre-release".
Now it's installing my extensions!

@loujaybee
Copy link
Member

loujaybee commented Sep 5, 2022

Deployed currently in pre-release, we need to move this now to an experimental rollout:

  1. Setup for a phased release and rollout
  2. Add analytics to track success during rollout

@jeanp413 will take a look.

@akosyakov akosyakov self-assigned this Sep 13, 2022
@loujaybee
Copy link
Member

The changelog is updated with documentation.

Will start to begin phased release to users.

@loujaybee
Copy link
Member

loujaybee commented Sep 27, 2022

Currently, the rollout is on hold as we're reviewing the data, and it seems that some users are not able to enable properly.

It's possible to enable this manually still, but we won't yet roll out to all users.

@jeanp413
Copy link
Member

Let's just leave it as an opt in setting and remove the cofig cat key, also update docs.

@shaal
Copy link
Contributor Author

shaal commented Jan 9, 2023

@loujaybee This problem still exists when running VSCode on Windows.
image

@shaal shaal reopened this Jan 9, 2023
@axonasif
Copy link
Member

@shaal do you have gitpod.remote.syncExtensions set to true on your settings.json? Not sure if this option is still valid.

@axonasif
Copy link
Member

Could you please also share logs through email 🙏 ?

@shaal
Copy link
Contributor Author

shaal commented Jan 11, 2023

Sure, I'll send the logs.
The issue is that the same setup works on Mac, but doesn't work on Windows.

@shaal
Copy link
Contributor Author

shaal commented Jan 11, 2023

@axonasif @loujaybee logs sent to [email protected]

@jeanp413
Copy link
Member

@shaal could you share the logs from settings sync from the output panel too 🙏 , also could you run Settings Sync: Show Synced Data command and share the contents of the latest extensions entry in the sync activity (remote) view

@loujaybee loujaybee added the meta: 🤔 reporter-feedback-needed cannot process further since we need more info from the reporter label Jan 23, 2023
@jeanp413
Copy link
Member

@shaal do you still have this issue? if so please share the following logs

could you share the logs from settings sync from the output panel too , also could you run Settings Sync: Show Synced Data command and share the contents of the latest extensions entry in the sync activity (remote) view

@shaal
Copy link
Contributor Author

shaal commented Jan 26, 2023

Yes, I still have this issue, I'll share the logs next time I'm opening Gitpod in vscode.

@akosyakov akosyakov removed their assignment Mar 20, 2023
@stale
Copy link

stale bot commented May 2, 2023

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@stale stale bot added the meta: stale This issue/PR is stale and will be closed soon label May 2, 2023
@stale stale bot closed this as completed Jun 11, 2023
@shaal
Copy link
Contributor Author

shaal commented Aug 30, 2023

This issue is still not resolved.
On Windows, I have to enable every local VSCode extension, every time I open a Gitpod workspace locally.

@jeanp413
Copy link
Member

jeanp413 commented Aug 30, 2023

Hi @shaal, if you are using using vscode version 1.81.0 or greater then this is related to #18573, I just released version v0.0.154 of the gitpod extension addressing installation of local extensions on the remote, please update and let me know if you still find any issues 🙏

@shaal
Copy link
Contributor Author

shaal commented Aug 31, 2023

@jeanp413 thank you.
I am using Windows + VSCode-insiders v1.82.0-insider + Gitpod v0.0.154.
I still have to manually click on that button Install in SSH in order to install these extensions (e.g. Github Copilot, Total Typescript, Gitlens, and more) -
image

@jeanp413
Copy link
Member

@shaal what's the version of the remote-ssh extension, it was buggy in insiders and you need to update it to latest version v0.106.2023083015
If remote-ssh extension is updated then could you enable trace logs in gitpod extension and share the logs.

  • Run Developer: Set Log Level... command
  • Select Gitpod
  • And then select trace as default
    image
  • Run Gitpod: Install Local Extensions... command
  • Share Gitpod logs

@shaal
Copy link
Contributor Author

shaal commented Aug 31, 2023

@jeanp413 thank you! That was it! I had to switch remote-ssh extension to pre-release version, and now it's v0.106.2023083015

I can confirm Gitpod workspace that opens in local VSCode - loads all local VSCode extension as expected, no manual steps required.

🎉

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
editor: code (desktop) feature: settings sync feature: settings sync meta: stale This issue/PR is stale and will be closed soon meta: 🤔 reporter-feedback-needed cannot process further since we need more info from the reporter team: IDE type: bug Something isn't working
Projects
Status: Done
7 participants