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

Plugins sandbox for each Vagrantfile #10

Open
thedrow opened this Issue Jun 18, 2013 · 5 comments

Comments

Projects
None yet
2 participants
@thedrow
Contributor

thedrow commented Jun 18, 2013

All plugins should be installable in a sandbox in order to allow to run different Vagrant files with different versions of the same plugin.

@tknerr

This comment has been minimized.

Show comment
Hide comment
@tknerr

tknerr Jun 27, 2013

Owner

@thedrow do you have an idea on how to implement this? I have looked at vagrant plugin install and it seems to automatically uninstall the existing version of a plugin when you try to install it with a different version.

The minimum I would want to achieve is #6. This would mean that whenever you switch to a Vagrantfile with different plugin requirements, it would uninstall the not-required ones (maybe this should be optional) and ensure that the required plugins are installed in the correct version (which might mean re-installing an existing plugin in a different version).

The thing that makes me headaches is that you can not run Vagrant in parallel anymore if you have different plugin requirements (and if the required plugins would be installed automatically - which I considered as a configuration option for #6).

IMHO this plugin can be only a workaround until it is properly fixed in vagrant itself: see hashicorp/vagrant#1789 or mitchellh/vagrant/issues#1874

Owner

tknerr commented Jun 27, 2013

@thedrow do you have an idea on how to implement this? I have looked at vagrant plugin install and it seems to automatically uninstall the existing version of a plugin when you try to install it with a different version.

The minimum I would want to achieve is #6. This would mean that whenever you switch to a Vagrantfile with different plugin requirements, it would uninstall the not-required ones (maybe this should be optional) and ensure that the required plugins are installed in the correct version (which might mean re-installing an existing plugin in a different version).

The thing that makes me headaches is that you can not run Vagrant in parallel anymore if you have different plugin requirements (and if the required plugins would be installed automatically - which I considered as a configuration option for #6).

IMHO this plugin can be only a workaround until it is properly fixed in vagrant itself: see hashicorp/vagrant#1789 or mitchellh/vagrant/issues#1874

@thedrow

This comment has been minimized.

Show comment
Hide comment
@thedrow

thedrow Jun 28, 2013

Contributor

No idea it all. It can be solved outside Vagrant if we rewrite the plugins command.

Contributor

thedrow commented Jun 28, 2013

No idea it all. It can be solved outside Vagrant if we rewrite the plugins command.

@thedrow

This comment has been minimized.

Show comment
Hide comment
@thedrow

thedrow Jun 29, 2013

Contributor

Ok, this exact action should be replaced.
Imo there should be a different install command for bundler since there is a difference. vagrant plugin install will install to the global plugins directory (which is where plugin bundler should be installed) and vagrant pluginbundler install will install locally to the sandbox.

Contributor

thedrow commented Jun 29, 2013

Ok, this exact action should be replaced.
Imo there should be a different install command for bundler since there is a difference. vagrant plugin install will install to the global plugins directory (which is where plugin bundler should be installed) and vagrant pluginbundler install will install locally to the sandbox.

@thedrow

This comment has been minimized.

Show comment
Hide comment
@thedrow

thedrow Jun 29, 2013

Contributor

What should be changed is line 35. Also the uninstallation process should be modified.

installer = Gem::DependencyInstaller.new(:document => [], :prerelease => prerelease)

I think that the install_dir parameter should be added but I'm not sure. I'm not a ruby developer.

@tknerr What do you think?

Contributor

thedrow commented Jun 29, 2013

What should be changed is line 35. Also the uninstallation process should be modified.

installer = Gem::DependencyInstaller.new(:document => [], :prerelease => prerelease)

I think that the install_dir parameter should be added but I'm not sure. I'm not a ruby developer.

@tknerr What do you think?

@tknerr

This comment has been minimized.

Show comment
Hide comment
@tknerr

tknerr Jun 29, 2013

Owner

@thedrow cool, thanks for the investigation 👍 !

I'm not sure whether this should be solved outside of vagrant, or whether vagrant should allow for having multiple versions of a plugin installed. Let's see what @fgrehm and @mitchellh opinion is on this (see discussion in hashicorp/vagrant#1874).

But as of today, I don't see any other possibility than you suggested.

Owner

tknerr commented Jun 29, 2013

@thedrow cool, thanks for the investigation 👍 !

I'm not sure whether this should be solved outside of vagrant, or whether vagrant should allow for having multiple versions of a plugin installed. Let's see what @fgrehm and @mitchellh opinion is on this (see discussion in hashicorp/vagrant#1874).

But as of today, I don't see any other possibility than you suggested.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment