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

Plugin installation path #6415

Closed
maraf opened this issue Mar 28, 2019 · 7 comments
Closed

Plugin installation path #6415

maraf opened this issue Mar 28, 2019 · 7 comments

Comments

@maraf
Copy link
Member

maraf commented Mar 28, 2019

Feature description

In PluginManager scenario, when GE is in the write-protected directory, UAC must be confirmed everytime PM tries to do changes.

In maraf/GitExtensions.PluginManager#59 and #5775 we have briefly discussed that all plugins could be placed somewhere else, eg CommonApplicationData.

I would like to discuss the solution and then would be happy to do a PR.

@RussKie
Copy link
Member

RussKie commented Mar 28, 2019

User's settings are stored in C:\Users\<user>\AppData\Roaming\GitExtensions\GitExtensions, would this be a good place to store plugins too?

@mast-eu
Copy link
Member

mast-eu commented Mar 28, 2019

Quick check on software with downloadable plugins found on my PC:

  • Visual Studio uses C:\Users\<user>\AppData\Local\Microsoft\VisualStudio\15.0_b13c254b\Extensions
  • Visual Studio Code uses C:\Users\<user>\.vscode\extensions
  • GIMP uses C:\Users\<user>\AppData\Roaming\GIMP\2.10\plug-ins

And a few more I looked up on the internet:

  • Firefox uses C:\Users\<user>\AppData\Local\Mozilla\plugins
  • Chrome uses C:\Users\<user>\AppData\Local\Google\Chrome\User Data\Default\Extensions
  • Notepad++ uses C:\Users\<user>\AppData\Roaming\Notepad++\plugins

There seems to be a common agreement to use C:\Users\<user>\AppData\<Local|Roaming>, with VS Code being the only notable exception I found. But even VS Code uses C:\Users\<user>, so different users on the same machine are isolated against each other.

What's the difference between C:\Users\<user>\AppData\Local and C:\Users\<user>\AppData\Roaming? MSDN explains that Roaming User Profiles are automatically synced when the user logs on any PC on the same (company) network. On the other hand, Local User Profiles remain on a single PC.
IMHO it's better to not sync plugins between PCs. Maybe they have different GE versions, .NET versions or other troublemakers.

Conclusion: Something like C:\Users\<user>\AppData\Roaming\GitExtensions\GitExtensions\plugins\<plugin_name> should be fine for plugin-specific data, if needed. But I prefer C:\Users\<user>\AppData\Local\GitExtensions\GitExtensions\plugins\<plugin_name> for the binaries.

@RussKie
Copy link
Member

RussKie commented Mar 28, 2019

Thank you.
The only reason I'd go to Roaming to have all our files in one place. But it is not a deal breaker for me (at least at this stage).

@maraf
Copy link
Member Author

maraf commented Mar 29, 2019

As part of this change:

  1. Should all plugins (even those pre-installed) be moved there?
  2. Should the pre-installed plugins be packed as nugets?
  3. Should there be a way to clean up this folder (in case of things go wrong)?

The PM is pre-installed and has a self update feature, so it should be in the AppData folder.

@RussKie
Copy link
Member

RussKie commented Mar 29, 2019

  1. Should all plugins (even those pre-installed) be moved there?
  2. Should the pre-installed plugins be packed as nugets?

Yes, when we actually get to separating plugins out of the main repo

3. Should there be a way to clean up this folder (in case of things go wrong)?

Possibly

@mast-eu
Copy link
Member

mast-eu commented May 20, 2019

Manually closing issue, after #6551 has been merged.
(I just learned that Solves #6415 does not close issues automatically when merging a PR)

@mast-eu mast-eu closed this as completed May 20, 2019
Move plugins automation moved this from To do to Done May 20, 2019
@vbjay
Copy link
Contributor

vbjay commented May 20, 2019

https://help.github.com/en/articles/closing-issues-using-keywords

That's why our templates say

fixes #

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Move plugins
  
Done
Development

No branches or pull requests

4 participants