summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Rodríguez <deivid.rodriguez@riseup.net>2019-12-13 13:45:57 +0100
committerDavid Rodríguez <deivid.rodriguez@riseup.net>2019-12-13 13:45:57 +0100
commit7e566885263aecf6a1eccf00e6c4d130774139f1 (patch)
tree88772a51286e8b56a53748533bac19c1e997a7ed
parent6394536271a0326efd4ed3544b78e528da7e90b1 (diff)
downloadbundler-skip_did_you_mean_on_2_7.tar.gz
Skip `did_you_mean` and `delegate` failures on MRI 2.7skip_did_you_mean_on_2_7
Ruby 2.7 will turn `did_you_mean` into a default gem. That means that bundler tests that make sure that an arbritary version of default gems can be specified in the `Gemfile` will now run against `did_you_mean`. And this doesn't work because `did_you_mean` is activated in ruby's `prelude.rb`, way before `bundler/setup` is required, so the latest version will always be activated, regardless of what the user specifies. If these versions are not the same, a gem activation conflict error will happen. Note that this problem is not specific to ruby 2.7, it simply gets triggered by the change of making it a default gem, but it would also happen on older versions if the user `did_you_mean` version specified in the `Gemfile` does not match the latest version installed on her system. As a consequence of this, we also get activation trouble because `did_you_mean` depends on `delegate` which is also a default gem on ruby 2.7. This problem _is_ specific to ruby 2.7 because `delegate` was not gemified before that, but can probably be workarounded by removing the `delegate` dependendcy from `did_you_mean`.
-rw-r--r--spec/runtime/setup_spec.rb2
1 files changed, 1 insertions, 1 deletions
diff --git a/spec/runtime/setup_spec.rb b/spec/runtime/setup_spec.rb
index 8769b00426..53300af618 100644
--- a/spec/runtime/setup_spec.rb
+++ b/spec/runtime/setup_spec.rb
@@ -1203,7 +1203,7 @@ end
describe "default gem activation" do
let(:exemptions) do
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new("2.7")
- []
+ %w[delegate did_you_mean]
else
%w[io-console openssl]
end << "bundler"