summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Giddins <segiddins@segiddins.me>2017-08-31 17:57:28 -0500
committerSamuel Giddins <segiddins@segiddins.me>2017-09-05 12:30:09 -0500
commit41049f78412e2371a40cd677e34a7113e4885d01 (patch)
tree394716034b5ad21aa94c450250ea066d7da4c91e
parentf81b8ddaefa0528105c9e2dcb33e045b20588f42 (diff)
downloadbundler-41049f78412e2371a40cd677e34a7113e4885d01.tar.gz
[Resolver] Use the GVP for major updates in 2.0
-rw-r--r--lib/bundler/feature_flag.rb1
-rw-r--r--lib/bundler/resolver.rb3
-rw-r--r--lib/bundler/settings.rb1
-rw-r--r--spec/quality_spec.rb1
4 files changed, 5 insertions, 1 deletions
diff --git a/lib/bundler/feature_flag.rb b/lib/bundler/feature_flag.rb
index 6a1809cd40..921be055b1 100644
--- a/lib/bundler/feature_flag.rb
+++ b/lib/bundler/feature_flag.rb
@@ -52,6 +52,7 @@ module Bundler
settings_flag(:suppress_install_using_messages) { bundler_2_mode? }
settings_flag(:unlock_source_unlocks_spec) { !bundler_2_mode? }
settings_flag(:update_requires_all_flag) { bundler_2_mode? }
+ settings_flag(:use_gem_version_promoter_for_major_updates) { bundler_2_mode? }
settings_option(:default_cli_command) { bundler_2_mode? ? :cli_help : :install }
diff --git a/lib/bundler/resolver.rb b/lib/bundler/resolver.rb
index 0cf2da007a..cc87bcb0cb 100644
--- a/lib/bundler/resolver.rb
+++ b/lib/bundler/resolver.rb
@@ -38,6 +38,7 @@ module Bundler
@platforms = platforms
@gem_version_promoter = gem_version_promoter
@allow_bundler_dependency_conflicts = Bundler.feature_flag.allow_bundler_dependency_conflicts?
+ @use_gvp = Bundler.feature_flag.use_gem_version_promoter_for_major_updates? || !@gem_version_promoter.major?
end
def start(requirements)
@@ -123,7 +124,7 @@ module Bundler
end
# GVP handles major itself, but it's still a bit risky to trust it with it
# until we get it settled with new behavior. For 2.x it can take over all cases.
- if @gem_version_promoter.major?
+ if !@use_gvp
spec_groups
else
@gem_version_promoter.sort_versions(dependency, spec_groups)
diff --git a/lib/bundler/settings.rb b/lib/bundler/settings.rb
index dee7c14ca1..0c62e808cb 100644
--- a/lib/bundler/settings.rb
+++ b/lib/bundler/settings.rb
@@ -53,6 +53,7 @@ module Bundler
suppress_install_using_messages
unlock_source_unlocks_spec
update_requires_all_flag
+ use_gem_version_promoter_for_major_updates
].freeze
NUMBER_KEYS = %w[
diff --git a/spec/quality_spec.rb b/spec/quality_spec.rb
index d4f3ddaf9b..25956c63bf 100644
--- a/spec/quality_spec.rb
+++ b/spec/quality_spec.rb
@@ -178,6 +178,7 @@ RSpec.describe "The library itself" do
gem.mit
inline
lockfile_uses_separate_rubygems_sources
+ use_gem_version_promoter_for_major_updates
warned_version
]