Skip to content
This repository has been archived by the owner on Apr 14, 2021. It is now read-only.

Commit

Permalink
Skip did_you_mean and delegate failures on MRI 2.7
Browse files Browse the repository at this point in the history
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`.
  • Loading branch information
deivid-rodriguez committed Dec 13, 2019
1 parent 6394536 commit 7e56688
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion spec/runtime/setup_spec.rb
Expand Up @@ -1203,7 +1203,7 @@ def lock_with(ruby_version = nil)
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"
Expand Down

0 comments on commit 7e56688

Please sign in to comment.