rubygems / bundler

Manage your Ruby application's gem dependencies
https://bundler.io
MIT License
4.88k stars 1.99k forks source link

Error when validating RubyGems version for bundled gems #3681

Closed rafaelfranca closed 9 years ago

rafaelfranca commented 9 years ago

I was trying to debug why the rails/rails builds were broken and found that it is related to bundler 1.10.0.

When I downgrade bundler it works great.

You can see the failure here.

I opened the gemspec that it is pointing and could not see any place where it is requiring RubyGems 2.4.5.

Here is the gemspec:

# -*- encoding: utf-8 -*-
# stub: qu-mongo 0.2.0 ruby lib

Gem::Specification.new do |s|
  s.name = "qu-mongo"
  s.version = "0.2.0"

  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
  s.require_paths = ["lib"]
  s.authors = ["Brandon Keepers"]
  s.date = "2015-05-29"
  s.description = "Mongo backend for qu"
  s.email = ["brandon@opensoul.org"]
  s.files = ["lib/qu-mongo.rb", "lib/qu/backend/mongo.rb"]
  s.homepage = "http://github.com/bkeepers/qu"
  s.rubygems_version = "2.4.7"
  s.summary = "Mongo backend for qu"

  if s.respond_to? :specification_version then
    s.specification_version = 4

    if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
      s.add_runtime_dependency(%q<mongo>, ["~> 1.9.0"])
      s.add_runtime_dependency(%q<qu>, ["= 0.2.0"])
      s.add_development_dependency(%q<bson_ext>, ["~> 1.9.0"])
    else
      s.add_dependency(%q<mongo>, ["~> 1.9.0"])
      s.add_dependency(%q<qu>, ["= 0.2.0"])
      s.add_dependency(%q<bson_ext>, ["~> 1.9.0"])
    end
  else
    s.add_dependency(%q<mongo>, ["~> 1.9.0"])
    s.add_dependency(%q<qu>, ["= 0.2.0"])
    s.add_dependency(%q<bson_ext>, ["~> 1.9.0"])
  end
end

bundle env

Environment

    Bundler   1.10.0
    Rubygems  2.4.7
    Ruby      2.2.2p95 (2015-04-13 revision 50295) [x86_64-darwin14]
    Git       2.4.0

Bundler settings

    jobs
      Set via BUNDLE_JOBS: "4"

Gemfile

    source 'https://rubygems.org'

    gemspec

    # We need a newish Rake since Active Job sets its test tasks' descriptions.
    gem 'rake', '>= 10.3'

    # This needs to be with require false as it is
    # loaded after loading the test library to
    # ensure correct loading order
    gem 'mocha', '~> 0.14', require: false

    gem 'rack-cache', '~> 1.2'
    gem 'jquery-rails', github: 'rails/jquery-rails', branch: 'master'
    gem 'coffee-rails', '~> 4.1.0'
    gem 'turbolinks'
    gem 'arel', github: 'rails/arel', branch: 'master'
    gem 'mail', github: 'mikel/mail'

    gem 'sprockets', '~> 3.0.0.rc.1'
    gem 'sprockets-rails', github: 'rails/sprockets-rails', branch: 'master'

    # require: false so bcrypt is loaded only when has_secure_password is used.
    # This is to avoid ActiveModel (and by extension the entire framework)
    # being dependent on a binary library.
    gem 'bcrypt', '~> 3.1.10', require: false

    # This needs to be with require false to avoid
    # it being automatically loaded by sprockets
    gem 'uglifier', '>= 1.3.0', require: false

    group :doc do
      gem 'sdoc', '~> 0.4.0'
      gem 'redcarpet', '~> 3.2.3', platforms: :ruby
      gem 'w3c_validators'
      gem 'kindlerb', '0.1.1'
    end

    # ActiveSupport
    gem 'dalli', '>= 2.2.1'

    # ActiveJob
    group :job do
      gem 'resque', require: false
      gem 'resque-scheduler', require: false
      gem 'sidekiq', require: false
      gem 'sucker_punch', require: false
      gem 'delayed_job', require: false
      gem 'queue_classic', require: false, platforms: :ruby
      gem 'sneakers', require: false
      gem 'que', require: false
      gem 'backburner', require: false
      gem 'qu-rails', github: "bkeepers/qu", branch: "master", require: false
      gem 'qu-redis', require: false
      gem 'delayed_job_active_record', require: false
      gem 'sequel', require: false
    end

    # Add your own local bundler stuff
    local_gemfile = File.dirname(__FILE__) + "/.Gemfile"
    instance_eval File.read local_gemfile if File.exist? local_gemfile

    group :test do
      # FIX: Our test suite isn't ready to run in random order yet
      gem 'minitest', '< 5.3.4'

      platforms :mri do
        gem 'stackprof'
        gem 'byebug'
      end

      gem 'benchmark-ips'
    end

    platforms :ruby do
      gem 'nokogiri', '>= 1.4.5'

      # Needed for compiling the ActionDispatch::Journey parser
      gem 'racc', '>=1.4.6', require: false

      # ActiveRecord
      gem 'sqlite3', '~> 1.3.6'

      group :db do
        gem 'pg', '>= 0.18.0'
        gem 'mysql', '>= 2.9.0'
        gem 'mysql2', '>= 0.3.18'
      end
    end

    platforms :jruby do
      gem 'json'
      if ENV['AR_JDBC']
        gem 'activerecord-jdbcsqlite3-adapter', github: 'jruby/activerecord-jdbc-adapter', branch: 'master'
        group :db do
          gem 'activerecord-jdbcmysql-adapter', github: 'jruby/activerecord-jdbc-adapter', branch: 'master'
          gem 'activerecord-jdbcpostgresql-adapter', github: 'jruby/activerecord-jdbc-adapter', branch: 'master'
        end
      else
        gem 'activerecord-jdbcsqlite3-adapter', '>= 1.3.0'
        group :db do
          gem 'activerecord-jdbcmysql-adapter', '>= 1.3.0'
          gem 'activerecord-jdbcpostgresql-adapter', '>= 1.3.0'
        end
      end
    end

    platforms :rbx do
      # The rubysl-yaml gem doesn't ship with Psych by default
      # as it needs libyaml that isn't always available.
      gem 'psych', '~> 2.0'
    end

    # gems that are necessary for ActiveRecord tests with Oracle database
    if ENV['ORACLE_ENHANCED']
      platforms :ruby do
        gem 'ruby-oci8', '~> 2.1'
      end
      gem 'activerecord-oracle_enhanced-adapter', github: 'rsim/oracle-enhanced', branch: 'master'
    end

    # A gem necessary for ActiveRecord tests with IBM DB
    gem 'ibm_db' if ENV['IBM_DB']

Gemfile.lock

    GIT
      remote: git://github.com/bkeepers/qu.git
      revision: d098e2657c92e89a6413bebd9c033930759c061f
      branch: master
      specs:
        qu (0.2.0)
        qu-rails (0.2.0)
          qu (= 0.2.0)
          railties (>= 3.2, < 5)
        qu-redis (0.2.0)
          qu (= 0.2.0)
          redis-namespace

    GIT
      remote: git://github.com/mikel/mail.git
      revision: b159e0a542962fdd5e292a48cfffa560d7cf412e
      specs:
        mail (2.6.3.edge)
          mime-types (>= 1.16, < 3)

    GIT
      remote: git://github.com/rails/arel.git
      revision: aac9da257f291ad8d2d4f914528881c240848bb2
      branch: master
      specs:
        arel (7.0.0.alpha)

    GIT
      remote: git://github.com/rails/jquery-rails.git
      revision: 272abdd319bb3381b23182b928b25320590096b0
      branch: master
      specs:
        jquery-rails (4.0.3)
          rails-dom-testing (~> 1.0)
          railties (>= 4.2.0)
          thor (>= 0.14, < 2.0)

    GIT
      remote: git://github.com/rails/sprockets-rails.git
      revision: 85b89c44ad40af3056899808475e6e4bf65c1f5a
      branch: master
      specs:
        sprockets-rails (3.0.0.beta1)
          actionpack (>= 4.0)
          activesupport (>= 4.0)
          sprockets (>= 3.0.0, < 4.0)

    PATH
      remote: .
      specs:
        actionmailer (5.0.0.alpha)
          actionpack (= 5.0.0.alpha)
          actionview (= 5.0.0.alpha)
          activejob (= 5.0.0.alpha)
          mail (~> 2.5, >= 2.5.4)
          rails-dom-testing (~> 1.0, >= 1.0.5)
        actionpack (5.0.0.alpha)
          actionview (= 5.0.0.alpha)
          activesupport (= 5.0.0.alpha)
          rack (~> 1.6)
          rack-test (~> 0.6.3)
          rails-dom-testing (~> 1.0, >= 1.0.5)
          rails-html-sanitizer (~> 1.0, >= 1.0.2)
        actionview (5.0.0.alpha)
          activesupport (= 5.0.0.alpha)
          builder (~> 3.1)
          erubis (~> 2.7.0)
          rails-dom-testing (~> 1.0, >= 1.0.5)
          rails-html-sanitizer (~> 1.0, >= 1.0.2)
        activejob (5.0.0.alpha)
          activesupport (= 5.0.0.alpha)
          globalid (>= 0.3.0)
        activemodel (5.0.0.alpha)
          activesupport (= 5.0.0.alpha)
          builder (~> 3.1)
        activerecord (5.0.0.alpha)
          activemodel (= 5.0.0.alpha)
          activesupport (= 5.0.0.alpha)
          arel (= 7.0.0.alpha)
        activesupport (5.0.0.alpha)
          i18n (~> 0.7)
          json (~> 1.7, >= 1.7.7)
          minitest (~> 5.1)
          thread_safe (~> 0.3, >= 0.3.4)
          tzinfo (~> 1.1)
        rails (5.0.0.alpha)
          actionmailer (= 5.0.0.alpha)
          actionpack (= 5.0.0.alpha)
          actionview (= 5.0.0.alpha)
          activejob (= 5.0.0.alpha)
          activemodel (= 5.0.0.alpha)
          activerecord (= 5.0.0.alpha)
          activesupport (= 5.0.0.alpha)
          bundler (>= 1.3.0, < 2.0)
          railties (= 5.0.0.alpha)
          sprockets-rails
        railties (5.0.0.alpha)
          actionpack (= 5.0.0.alpha)
          activesupport (= 5.0.0.alpha)
          method_source
          rake (>= 0.8.7)
          thor (>= 0.18.1, < 2.0)

    GEM
      remote: https://rubygems.org/
      specs:
        amq-protocol (1.9.2)
        backburner (0.4.6)
          beaneater (~> 0.3.1)
          dante (~> 0.1.5)
        bcrypt (3.1.10)
        bcrypt (3.1.10-x64-mingw32)
        bcrypt (3.1.10-x86-mingw32)
        beaneater (0.3.3)
        benchmark-ips (2.1.1)
        builder (3.2.2)
        bunny (1.7.0)
          amq-protocol (>= 1.9.2)
        byebug (4.0.5)
          columnize (= 0.9.0)
        celluloid (0.16.0)
          timers (~> 4.0.0)
        coffee-rails (4.1.0)
          coffee-script (>= 2.2.0)
          railties (>= 4.0.0, < 5.0)
        coffee-script (2.3.0)
          coffee-script-source
          execjs
        coffee-script-source (1.9.0)
        columnize (0.9.0)
        connection_pool (2.1.1)
        dalli (2.7.2)
        dante (0.1.5)
        delayed_job (4.0.6)
          activesupport (>= 3.0, < 5.0)
        delayed_job_active_record (4.0.3)
          activerecord (>= 3.0, < 5.0)
          delayed_job (>= 3.0, < 4.1)
        erubis (2.7.0)
        execjs (2.3.0)
        globalid (0.3.3)
          activesupport (>= 4.1.0)
        hitimes (1.2.2)
        hitimes (1.2.2-x86-mingw32)
        i18n (0.7.0)
        json (1.8.2)
        kindlerb (0.1.1)
          mustache
          nokogiri
        loofah (2.0.1)
          nokogiri (>= 1.5.9)
        metaclass (0.0.4)
        method_source (0.8.2)
        mime-types (2.4.3)
        mini_portile (0.6.2)
        minitest (5.3.3)
        mocha (0.14.0)
          metaclass (~> 0.0.1)
        mono_logger (1.1.0)
        multi_json (1.11.0)
        mustache (1.0.0)
        mysql (2.9.1)
        mysql2 (0.3.18)
        nokogiri (1.6.6.2)
          mini_portile (~> 0.6.0)
        nokogiri (1.6.6.2-x64-mingw32)
          mini_portile (~> 0.6.0)
        nokogiri (1.6.6.2-x86-mingw32)
          mini_portile (~> 0.6.0)
        pg (0.18.1)
        psych (2.0.13)
        que (0.9.2)
        queue_classic (3.1.0)
          pg (>= 0.17, < 0.19)
        racc (1.4.12)
        rack (1.6.0)
        rack-cache (1.2)
          rack (>= 0.4)
        rack-protection (1.5.3)
          rack
        rack-test (0.6.3)
          rack (>= 1.0)
        rails-deprecated_sanitizer (1.0.3)
          activesupport (>= 4.2.0.alpha)
        rails-dom-testing (1.0.6)
          activesupport (>= 4.2.0.beta, < 5.0)
          nokogiri (~> 1.6.0)
          rails-deprecated_sanitizer (>= 1.0.1)
        rails-html-sanitizer (1.0.2)
          loofah (~> 2.0)
        rake (10.4.2)
        rdoc (4.2.0)
        redcarpet (3.2.3)
        redis (3.2.1)
        redis-namespace (1.5.1)
          redis (~> 3.0, >= 3.0.4)
        resque (1.25.2)
          mono_logger (~> 1.0)
          multi_json (~> 1.0)
          redis-namespace (~> 1.3)
          sinatra (>= 0.9.2)
          vegas (~> 0.1.2)
        resque-scheduler (4.0.0)
          mono_logger (~> 1.0)
          redis (~> 3.0)
          resque (~> 1.25)
          rufus-scheduler (~> 3.0)
        rufus-scheduler (3.0.9)
          tzinfo
        sdoc (0.4.1)
          json (~> 1.7, >= 1.7.7)
          rdoc (~> 4.0)
        sequel (4.19.0)
        serverengine (1.5.10)
          sigdump (~> 0.2.2)
        sidekiq (3.3.2)
          celluloid (>= 0.16.0)
          connection_pool (>= 2.1.1)
          json
          redis (>= 3.0.6)
          redis-namespace (>= 1.3.1)
        sigdump (0.2.2)
        sinatra (1.4.5)
          rack (~> 1.4)
          rack-protection (~> 1.4)
          tilt (~> 1.3, >= 1.3.4)
        sneakers (1.0.4)
          bunny (~> 1.7.0)
          serverengine (~> 1.5.5)
          thor
          thread (~> 0.1.7)
        sprockets (3.0.2)
          rack (~> 1.0)
        sqlite3 (1.3.10)
        stackprof (0.2.7)
        sucker_punch (1.3.2)
          celluloid (~> 0.16.0)
        thor (0.19.1)
        thread (0.1.7)
        thread_safe (0.3.5)
        tilt (1.4.1)
        timers (4.0.1)
          hitimes
        turbolinks (2.5.3)
          coffee-rails
        tzinfo (1.2.2)
          thread_safe (~> 0.1)
        uglifier (2.7.0)
          execjs (>= 0.3.0)
          json (>= 1.8.0)
        vegas (0.1.11)
          rack (>= 1.0.0)
        w3c_validators (1.2)
          json
          nokogiri

    PLATFORMS
      ruby
      x64-mingw32
      x86-mingw32

    DEPENDENCIES
      activerecord-jdbcmysql-adapter (>= 1.3.0)
      activerecord-jdbcpostgresql-adapter (>= 1.3.0)
      activerecord-jdbcsqlite3-adapter (>= 1.3.0)
      arel!
      backburner
      bcrypt (~> 3.1.10)
      benchmark-ips
      byebug
      coffee-rails (~> 4.1.0)
      dalli (>= 2.2.1)
      delayed_job
      delayed_job_active_record
      jquery-rails!
      json
      kindlerb (= 0.1.1)
      mail!
      minitest (< 5.3.4)
      mocha (~> 0.14)
      mysql (>= 2.9.0)
      mysql2 (>= 0.3.18)
      nokogiri (>= 1.4.5)
      pg (>= 0.18.0)
      psych (~> 2.0)
      qu-rails!
      qu-redis
      que
      queue_classic
      racc (>= 1.4.6)
      rack-cache (~> 1.2)
      rails!
      rake (>= 10.3)
      redcarpet (~> 3.2.3)
      resque
      resque-scheduler
      sdoc (~> 0.4.0)
      sequel
      sidekiq
      sneakers
      sprockets (~> 3.0.0.rc.1)
      sprockets-rails!
      sqlite3 (~> 1.3.6)
      stackprof
      sucker_punch
      turbolinks
      uglifier (>= 1.3.0)
      w3c_validators

    BUNDLED WITH
       1.10.0
indirect commented 9 years ago

wtf. that's really odd. :/

rafaelfranca commented 9 years ago

Let me know if you need help debugging it. I'm not familiar with bundler code but I'll try to dig on it.

segiddins commented 9 years ago

I have a fix for this, will push in a minute.

segiddins commented 9 years ago

OK, a fix for this is now on 1-10-stable

repinel commented 9 years ago

Just tested Bundler 1-10-stable branch against Rails master and it is working fine. :+1:

paulwalker commented 9 years ago

following, our builds on CircleCi may be failing because of this...

segiddins commented 9 years ago

Closing since this is fixed on stable and I'll be releasing 1.10.1 with this fix tonight.

paulwalker commented 9 years ago

lol...i was just trying to replicate to confirm with the broken version ;-)

paulwalker commented 9 years ago

thanks for the quick fix

segiddins commented 9 years ago

@paulwalker please don't use that sort of language here

paulwalker commented 9 years ago

said micro-agression edited, now kindly remove your micro-agressive rebuke, thanks.

indirect commented 9 years ago

@paulwalker Hi. Thanks for your quick edit. The text of your reply has me a little bit confused: you call your language a "micro-aggression", and you also call the request to not use that language "micro-aggresive". Can you explain how you feel like those are equivalent acts?

Personally, I'd call the language inappropriate (and against the Bundler code of conduct), so I appreciate @segiddins's reminder to you, and I appreciate that you removed it.

Also, thanks for the quick fix to this issue, @segiddins!

paulwalker commented 9 years ago

Hi @indirect, thank you for the concern.

I believe the language I used did not fall into any sort of category that would be confused with an obvious intent to insult. However, it was brought to my attention, that the language was not appropriate in this context. I can respect that. I even personally emailed the rebuker with my apology in an attempt to reconcile.

However, apparently that was not enough.

The language used does not fall under any sort of code of conduct in normative discourse that is considered an "aggression" in the English speaking culture at large. It's language that we hear everyday in every pop-culture that is popular even in San Francisco.

The response to the use of the language was not sensitive to the fact that I may derive from a different culture other than that of the Bundler contributors, or San Francisco, or gasp the Bay Area. In fact, in my culture, we use it as a term of endearment. I respect the fact that you may not understand my culture.

Undoubtedly, there are vast areas that our two cultures would align in our understanding as absolutely out of place and inappropriate. This is just not one of them. In the future, perhaps our two cultures can come to an understanding with these "micro-aggressions" and simply discuss them out-of-band (like simply emailing me and acting as normal face to face people would working together), instead of trying to embarrass me for not understanding the Bundler/San Francisco context.

God bless (oops, there I go again).

indirect commented 9 years ago

@paulwalker I appreciate the explanation, but you seem to be talking about something that hasn't happened. No one has claimed at any point that your language was either insulting or an aggression. It was just inappropriate for this particular context. Asking you to stop using that inappropriate language is likewise not an aggression.

Demanding that all evidence of your exchange be removed is not appropriate—it happened, and it didn't un-happen because you edited your post. Right now, you are claiming that you are being aggressed against while at the same time demanding that the conversation happen in private instead. Both of those behaviors make you look like the bad guy. If you feel embarrassed by having used inappropriate language, a quick apology followed by no longer using that language is an easy solution, and makes you look like a good guy.

This ticket has gone wildly off-topic, so I'm going to lock it now. Thanks for your contributions, everyone.