Project

General

Profile

Bug #15622

Default version of Bundler incorrectly invoked when using binstubs

Added by schneems (Richard Schneeman) 11 months ago. Updated 11 months ago.

Status:
Rejected
Priority:
Normal
Target version:
-
ruby -v:
ruby 2.6.1p33 (2019-01-30 revision 66950) [x86_64-linux]
[ruby-core:91622]

Description

When trying to run a binstub with Ruby 2.6.1 with Bundler 2.0.1 on the system, the wrong version of Bundler gets loaded which then fails when the Gemfile.lock points to a 2.x version (since the default version that ships with Ruby is Bundler 1.x. While this was discovered on Heroku and is discussed in this issue https://github.com/heroku/heroku-buildpack-ruby/issues/856#issuecomment-467205932 I was able to replicate the problem fairly easily with docker. I've provided instructions below.

Reproduction

Start a docker image with Ruby 2.6.1

docker run -it --rm ruby:2.6.1 bash

Install bundler, rails, make a new app, and remove the begin/rescue/end from the bin/rake binstub. To trigger the error run a rake command without bundle exec:

gem install bundler -v 2.0.1
gem install rails -v 6.0.0.beta1
rails new ruby-2-6-bundler-2-issue


cd ruby-2-6-bundler-2-issue

cat <<EOT > bin/rake
#!/usr/bin/env ruby
require_relative '../config/boot'
require 'rake'
Rake.application.run
EOT

rake -T

Output:

You must use Bundler 2 or greater with this lockfile.

Expected:

Bundler 2 is available on the system, and is the latest version, so it should be invoked instead of the default bundler version.


Related issues

Is duplicate of Ruby master - Bug #15582: default/bundler-1.17.2.gemspec has no file listClosedActions

History

Updated by dzunk (Matt Duszynski) 11 months ago

I was able to reproduce this with the steps provided, and it seems to work after a gem update --system. Possibly a bug in a particular version of Rubygems?

Updated by hsbt (Hiroshi SHIBATA) 11 months ago

  • Assignee set to hsbt (Hiroshi SHIBATA)
  • Status changed from Open to Assigned

Updated by deivid (David Rodríguez) 11 months ago

Forgot to comment here. I'm pretty sure this is the same as https://bugs.ruby-lang.org/issues/15582? The fix for it should be released in the next patch level version

For the moment gem update --system indeed workarounds it, since it forces the reinstallation of the default bundler gem, which is the culprit here (its gemspec's file list is incomplete).

Updated by hsbt (Hiroshi SHIBATA) 11 months ago

  • Backport changed from 2.4: UNKNOWN, 2.5: UNKNOWN, 2.6: UNKNOWN to 2.4: DONTNEED, 2.5: DONTNEED, 2.6: DONTNEED
  • Status changed from Assigned to Rejected

schneems (Richard Schneeman)

I couldn't reproduce the latest ruby_2_6 branch with fixed #15582. Please wait for releasing next stable version 2.6.2.

#5

Updated by hsbt (Hiroshi SHIBATA) 11 months ago

  • Is duplicate of Bug #15582: default/bundler-1.17.2.gemspec has no file list added

Also available in: Atom PDF