-
-
Notifications
You must be signed in to change notification settings - Fork 1.9k
Closed
Description
I have a gem that supports Ruby 2.7+.
I want to update the lockfile to be using the latest version of bundler that still supports Ruby 2.7, but I seem to have broken my RubyGems / Bundler install completely.
I am using Ruby 2.7.8 (which I know is no longer supported, so not sure what to do here)
This is the end result:
❯ bundle update --bundler
Fetching gem metadata from https://rubygems.org/.
Updating bundler to 2.5.1.
Fetching bundler 2.5.1
Installing bundler 2.5.1
Traceback (most recent call last):
15: from /Users/pboling/.asdf/installs/ruby/2.7.8/bin/bundle:25:in `<main>'
14: from /Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems.rb:284:in `activate_bin_path'
13: from /Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems.rb:284:in `synchronize'
12: from /Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems.rb:286:in `block in activate_bin_path'
11: from /Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems.rb:229:in `finish_resolve'
10: from /Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems/request_set.rb:425:in `resolve_current'
9: from /Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems/request_set.rb:413:in `resolve'
8: from /Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems/resolver.rb:191:in `resolve'
7: from /Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems/resolver/molinillo/lib/molinillo/resolver.rb:43:in `resolve'
6: from /Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems/resolver/molinillo/lib/molinillo/resolution.rb:182:in `resolve'
5: from /Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems/resolver/molinillo/lib/molinillo/resolution.rb:254:in `process_topmost_state'
4: from /Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems/resolver/molinillo/lib/molinillo/resolution.rb:682:in `attempt_to_activate'
3: from /Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems/resolver/molinillo/lib/molinillo/resolution.rb:297:in `unwind_for_conflict'
2: from /Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems/resolver/molinillo/lib/molinillo/resolution.rb:297:in `tap'
1: from /Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems/resolver/molinillo/lib/molinillo/resolution.rb:299:in `block in unwind_for_conflict'
/Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems/resolver/molinillo/lib/molinillo/resolution.rb:317:in `raise_error_unless_state': Unable to satisfy the following requirements: (Gem::Resolver::Molinillo::VersionConflict)
- `bundler (= 2.5.1)` required by `user-specified dependency`
13: from /Users/pboling/.asdf/installs/ruby/2.7.8/bin/bundle:25:in `<main>'
12: from /Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems.rb:284:in `activate_bin_path'
11: from /Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems.rb:284:in `synchronize'
10: from /Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems.rb:286:in `block in activate_bin_path'
9: from /Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems.rb:229:in `finish_resolve'
8: from /Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems/request_set.rb:425:in `resolve_current'
7: from /Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems/request_set.rb:413:in `resolve'
6: from /Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems/resolver.rb:192:in `resolve'
5: from /Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems/resolver.rb:194:in `rescue in resolve'
4: from /Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems/resolver.rb:194:in `raise'
3: from /Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems/resolver.rb:194:in `exception'
2: from /Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems/exceptions.rb:55:in `initialize'
1: from /Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems/exceptions.rb:61:in `conflicting_dependencies'
/Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems/resolver/conflict.rb:48:in `conflicting_dependencies': undefined method `request' for nil:NilClass (NoMethodError)
And here is how I ended up there:
❯ gem update --system
Updating rubygems-update
Fetching rubygems-update-3.5.1.gem
ERROR: Error installing rubygems-update:
There are no versions of rubygems-update (= 3.5.1) compatible with your Ruby & RubyGems
rubygems-update requires Ruby version >= 3.0.0. The current ruby version is 2.7.8.225.
Installing RubyGems 3.4.21
Successfully built RubyGem
Name: bundler
Version: 2.4.21
File: bundler-2.4.21.gem
Bundler 2.4.21 installed
RubyGems 3.4.21 installed
Regenerating binstubs
Regenerating plugins
# ...
I thought, that's strange, I know there is one more point release after that which still supports Ruby 2.7, and sure enough, when I ran another command it installed:
❯ gem -v
3.4.21
❯ gem install rubygems-update -v 3.4.22
Fetching rubygems-update-3.4.22.gem
Successfully installed rubygems-update-3.4.22
1 gem installed
A new release of RubyGems is available: 3.4.21 → 3.5.1!
Run `gem update --system 3.5.1` to update your installation.
That post install note is not applicable to Ruby 2.7, so I didn't try doing it. Instead I ran the normal next step, update_rubygems:
❯ update_rubygems
Successfully built RubyGem
Name: bundler
Version: 2.4.22
File: bundler-2.4.22.gem
Bundler 2.4.22 installed
RubyGems 3.4.22 installed
Regenerating binstubs
Regenerating plugins
# ...
Now I get the error at the top for every bundle command (e.g. bundle -v, and bundle install):
❯ bundle -v
Traceback (most recent call last):
15: from /Users/pboling/.asdf/installs/ruby/2.7.8/bin/bundle:25:in `<main>'
14: from /Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems.rb:284:in `activate_bin_path'
13: from /Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems.rb:284:in `synchronize'
12: from /Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems.rb:286:in `block in activate_bin_path'
11: from /Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems.rb:229:in `finish_resolve'
10: from /Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems/request_set.rb:425:in `resolve_current'
9: from /Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems/request_set.rb:413:in `resolve'
8: from /Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems/resolver.rb:191:in `resolve'
7: from /Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems/resolver/molinillo/lib/molinillo/resolver.rb:43:in `resolve'
6: from /Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems/resolver/molinillo/lib/molinillo/resolution.rb:182:in `resolve'
5: from /Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems/resolver/molinillo/lib/molinillo/resolution.rb:254:in `process_topmost_state'
4: from /Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems/resolver/molinillo/lib/molinillo/resolution.rb:682:in `attempt_to_activate'
3: from /Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems/resolver/molinillo/lib/molinillo/resolution.rb:297:in `unwind_for_conflict'
2: from /Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems/resolver/molinillo/lib/molinillo/resolution.rb:297:in `tap'
1: from /Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems/resolver/molinillo/lib/molinillo/resolution.rb:299:in `block in unwind_for_conflict'
/Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems/resolver/molinillo/lib/molinillo/resolution.rb:317:in `raise_error_unless_state': Unable to satisfy the following requirements: (Gem::Resolver::Molinillo::VersionConflict)
- `bundler (= 2.5.1)` required by `user-specified dependency`
13: from /Users/pboling/.asdf/installs/ruby/2.7.8/bin/bundle:25:in `<main>'
12: from /Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems.rb:284:in `activate_bin_path'
11: from /Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems.rb:284:in `synchronize'
10: from /Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems.rb:286:in `block in activate_bin_path'
9: from /Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems.rb:229:in `finish_resolve'
8: from /Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems/request_set.rb:425:in `resolve_current'
7: from /Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems/request_set.rb:413:in `resolve'
6: from /Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems/resolver.rb:192:in `resolve'
5: from /Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems/resolver.rb:194:in `rescue in resolve'
4: from /Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems/resolver.rb:194:in `raise'
3: from /Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems/resolver.rb:194:in `exception'
2: from /Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems/exceptions.rb:55:in `initialize'
1: from /Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems/exceptions.rb:61:in `conflicting_dependencies'
/Users/pboling/.asdf/installs/ruby/2.7.8/lib/ruby/site_ruby/2.7.0/rubygems/resolver/conflict.rb:48:in `conflicting_dependencies': undefined method `request' for nil:NilClass (NoMethodError)