Rubygems: Got "NoMethodError: undefined method `version' for nil:NilClass" when running "bundle outdated --strict"

Created on 12 Dec 2020  路  3Comments  路  Source: rubygems/rubygems

--- ERROR REPORT TEMPLATE -------------------------------------------------------

Error Report

Questions

Please fill out answers to these questions, it'll help us figure out
why things are going wrong.

  • What did you do?

    I ran the command /Users/USER/.rvm/rubies/ruby-2.7.2/bin/bundle outdated --strict
    This command has been is a script I have been using for a LONG time.

  • What did you expect to happen?

    I expected Bundler to "Only list newer versions allowed by your Gemfile requirements"

  • What happened instead?

    Instead, what happened was got error below and backtrace.

  • Have you tried any solutions posted on similar issues in
    our issue tracker, stack overflow, or google?

    Had problem searching but I tried. Did not see my problem.

  • Have you read our issues document,
    https://github.com/rubygems/rubygems/blob/master/bundler/doc/contributing/ISSUES.md?

    Scanned it.

Backtrace

NoMethodError: undefined method `version' for nil:NilClass
  /Users/USER/.rvm/rubies/ruby-2.7.2/lib/ruby/site_ruby/2.7.0/bundler/cli/outdated.rb:81:in `block in run'
  /Users/USER/.rvm/rubies/ruby-2.7.2/lib/ruby/site_ruby/2.7.0/bundler/cli/outdated.rb:75:in `each'
  /Users/USER/.rvm/rubies/ruby-2.7.2/lib/ruby/site_ruby/2.7.0/bundler/cli/outdated.rb:75:in `run'
  /Users/USER/.rvm/rubies/ruby-2.7.2/lib/ruby/site_ruby/2.7.0/bundler/cli.rb:442:in `outdated'
  /Users/USER/.rvm/rubies/ruby-2.7.2/lib/ruby/site_ruby/2.7.0/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
  /Users/USER/.rvm/rubies/ruby-2.7.2/lib/ruby/site_ruby/2.7.0/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
  /Users/USER/.rvm/rubies/ruby-2.7.2/lib/ruby/site_ruby/2.7.0/bundler/vendor/thor/lib/thor.rb:392:in `dispatch'
  /Users/USER/.rvm/rubies/ruby-2.7.2/lib/ruby/site_ruby/2.7.0/bundler/cli.rb:30:in `dispatch'
  /Users/USER/.rvm/rubies/ruby-2.7.2/lib/ruby/site_ruby/2.7.0/bundler/vendor/thor/lib/thor/base.rb:485:in `start'
  /Users/USER/.rvm/rubies/ruby-2.7.2/lib/ruby/site_ruby/2.7.0/bundler/cli.rb:24:in `start'
  /Users/USER/.rvm/rubies/ruby-2.7.2/lib/ruby/gems/2.7.0/gems/bundler-2.2.0/exe/bundle:49:in `block in <top (required)>'
  /Users/USER/.rvm/rubies/ruby-2.7.2/lib/ruby/site_ruby/2.7.0/bundler/friendly_errors.rb:130:in `with_friendly_errors'
  /Users/USER/.rvm/rubies/ruby-2.7.2/lib/ruby/gems/2.7.0/gems/bundler-2.2.0/exe/bundle:37:in `<top (required)>'
  /Users/USER/.rvm/rubies/ruby-2.7.2/bin/bundle:23:in `load'
  /Users/USER/.rvm/rubies/ruby-2.7.2/bin/bundle:23:in `<main>'

Environment

Bundler             2.2.0
  Platforms         ruby, x86_64-darwin-16
Ruby                2.7.2p137 (2020-10-01 revision 5445e0435260b449decf2ac16f9d09bae3cafe72) [x86_64-darwin16]
  Full Path         /Users/USER/.rvm/rubies/ruby-2.7.2/bin/ruby
  Config Dir        /Users/USER/.rvm/rubies/ruby-2.7.2/etc
RubyGems            3.2.0
  Gem Home          /Users/USER/.rvm/gems/[email protected]
  Gem Path          /Users/USER/.rvm/gems/[email protected]:/Users/USER/.rvm/rubies/ruby-2.7.2/lib/ruby/gems/2.7.0
  User Home         /Users/USER
  User Path         /Users/USER/.gem/ruby/2.7.0
  Bin Dir           /Users/USER/.rvm/gems/[email protected]/bin
OpenSSL             
  Compiled          OpenSSL 1.1.1g  21 Apr 2020
  Loaded            OpenSSL 1.1.1h  22 Sep 2020
  Cert File         /usr/local/etc/[email protected]/cert.pem
  Cert Dir          /usr/local/etc/[email protected]/certs
Tools               
  Git               2.29.2
  RVM               1.29.10-next (master)
  rbenv             rbenv 1.1.2
  chruby            not installed
  rubygems-bundler  (1.4.5)

Bundler Build Metadata

Built At          2020-12-10
Git SHA           d3628e5019
Released Version  true

Bundler settings

  Set for the current user (/Users/USER/.bundle/config): "2.1.2"

Gemfile

Gemfile

source "https://rubygems.org"

# Declare your gem's dependencies in gmaps4rails.gemspec.
# Bundler will treat runtime dependencies like base dependencies, and
# development dependencies will be added by default to the :development group.

gemspec

group :development, :test do
  gem 'jasmine', :platforms => [:ruby_19, :ruby_20, :ruby_23]
end

Gemfile.lock

  remote: .
  specs:
    gmaps4rails (2.1.2)

GEM
  remote: https://rubygems.org/
  specs:
    coderay (1.1.3)
    coffee-script (2.4.1)
      coffee-script-source
      execjs
    coffee-script-source (1.12.2)
    concurrent-ruby (1.1.7)
    diff-lcs (1.4.4)
    execjs (2.7.0)
    jasmine (3.6.0)
      jasmine-core (~> 3.6.0)
      phantomjs
      rack (>= 1.2.1)
      rake
    jasmine-core (3.6.0)
    method_source (1.0.0)
    phantomjs (2.1.1.0)
    pry (0.13.1)
      coderay (~> 1.1)
      method_source (~> 1.0)
    rack (2.2.3)
    rake (13.0.1)
    rspec (3.10.0)
      rspec-core (~> 3.10.0)
      rspec-expectations (~> 3.10.0)
      rspec-mocks (~> 3.10.0)
    rspec-core (3.10.0)
      rspec-support (~> 3.10.0)
    rspec-expectations (3.10.0)
      diff-lcs (>= 1.2.0, < 2.0)
      rspec-support (~> 3.10.0)
    rspec-mocks (3.10.0)
      diff-lcs (>= 1.2.0, < 2.0)
      rspec-support (~> 3.10.0)
    rspec-support (3.10.0)
    sprockets (4.0.2)
      concurrent-ruby (~> 1.0)
      rack (> 1, < 3)

PLATFORMS
  ruby
  x86_64-darwin-16

DEPENDENCIES
  coffee-script
  gmaps4rails!
  jasmine
  pry
  rake
  rspec
  sprockets

BUNDLED WITH
   2.2.0

Gemspecs

gmaps4rails.gemspec

$:.push File.expand_path("../lib", __FILE__)

# Maintain your gem's version:
require "gmaps4rails/version"

# Describe your gem and declare its dependencies:
Gem::Specification.new do |s|
  s.name        = "gmaps4rails"
  s.version     = Gmaps4rails::VERSION
  s.authors     = [%q{Benjamin Roth}, %q{David Ruyer}]
  s.email       = [%q{[email protected]}, %q{[email protected]}]
  s.homepage    = %q{http://github.com/apneadiving/Google-Maps-for-Rails}
  s.summary     = %q{Maps made easy for Ruby apps}
  s.description = %q{Enables easy Google map + overlays creation.}
  s.files       = `git ls-files`.split("\n")
  s.test_files  = `git ls-files -- spec/*`.split("\n")

  s.add_development_dependency "rspec"
  s.add_development_dependency "rake"
  s.add_development_dependency 'coffee-script'
  s.add_development_dependency 'sprockets'
  s.add_development_dependency 'pry'
end

--- TEMPLATE END ----------------------------------------------------------------

Unfortunately, an unexpected error occurred, and Bundler cannot continue.

First, try this link to see if there are any existing issue reports
for this error:

https://github.com/rubygems/rubygems/search?q=
undefined+method+%60version%27+for+nil+NilClass&type=Issues

If there aren't any reports for this error yet, please create copy
and paste the report template above into a new issue. Don't forget
to anonymize any private data! The new issue form is located at:

https://github.com/rubygems/rubygems/issues/new?labels=Bundler

REPO: Google-Map-for-Rails
EOF

Bundler

Most helpful comment

I'm aiming for releasing tomorrow.

All 3 comments

:thinking: I think this seems related to 2.2.0 platform changes (https://github.com/rubygems/rubygems/pull/4015) as well. Jasmine is not installed (since it is not enabled for Ruby 2.7 platform) and thus spec is missing, which is not handled in outdated script. Currently there's plan to revert this change (https://github.com/rubygems/rubygems/pull/4127#issuecomment-743756276) which should fix this for you.

How will I know that a new version of rubygems has been released?

I'm aiming for releasing tomorrow.

Was this page helpful?
0 / 5 - 0 ratings