diff --git a/CHANGELOG.md b/CHANGELOG.md index cd9162efe..4ef852b7c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -18,6 +18,8 @@ BUG FIXES: a string and not a symbol. [GH-3349] - core: Converting to cygwin path works for folders with spaces. [GH-3304] - core: Can add boxes with spaces in their path. [GH-3306] + - core: Prerelease plugins installed are locked to that prerelease + version. [GH-3301] - commands/box: Show versions when listing. [GH-3316] - commands/status: Machine readable output contains the target. [GH-3218] - guests/arch: Reload udev rules after network change. [GH-3322] diff --git a/lib/vagrant/plugin/manager.rb b/lib/vagrant/plugin/manager.rb index 2cb427ea9..4643335af 100644 --- a/lib/vagrant/plugin/manager.rb +++ b/lib/vagrant/plugin/manager.rb @@ -72,9 +72,10 @@ module Vagrant install_lambda.call end - # If the version constraint is just a specific (non prerelease) version, don't - # store the constraint. - if opts[:version] && opts[:version] =~ /^\d/ && !Gem::Requirement.parse(opts[:version])[1].prerelease? + # If the version constraint is just a specific version, don't + # store the constraint. However, if it is a prerelease version, + # we DO store the constraint to avoid Bundler updating it. + if opts[:version] && opts[:version] =~ /^\d/ && opts[:version] !~ /[a-z]/i opts.delete(:version) end