puma / puma

A Ruby/Rack web server built for parallelism

Home Page:https://puma.io

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Prune bundler tests incompatible with bundler vendoring

nateberkopec opened this issue · comments

I get this error:

/nix/store/zlhba012ssxsjzvn9fynw7dyiahgq7ng-ruby-3.0.4/lib/ruby/3.0.0/bundler/resolver.rb:57:in `rescue in start': Bundler could not find compatible versions for gem "nio4r": (Bundler::VersionConflict)
  In Gemfile.bundle_env_preservation_test:
    puma was resolved to 5.6.5, which depends on
      nio4r (~> 2.0)

Could not find gem 'nio4r (~> 2.0)', which is required by gem 'puma', in any of the sources.
	from /nix/store/zlhba012ssxsjzvn9fynw7dyiahgq7ng-ruby-3.0.4/lib/ruby/3.0.0/bundler/resolver.rb:44:in `start'
	from /nix/store/zlhba012ssxsjzvn9fynw7dyiahgq7ng-ruby-3.0.4/lib/ruby/3.0.0/bundler/resolver.rb:23:in `resolve'
	from /nix/store/zlhba012ssxsjzvn9fynw7dyiahgq7ng-ruby-3.0.4/lib/ruby/3.0.0/bundler/definition.rb:264:in `resolve'
	from /nix/store/zlhba012ssxsjzvn9fynw7dyiahgq7ng-ruby-3.0.4/lib/ruby/3.0.0/bundler/definition.rb:467:in `materialize'
	from /nix/store/zlhba012ssxsjzvn9fynw7dyiahgq7ng-ruby-3.0.4/lib/ruby/3.0.0/bundler/definition.rb:185:in `specs'
	from /nix/store/zlhba012ssxsjzvn9fynw7dyiahgq7ng-ruby-3.0.4/lib/ruby/3.0.0/bundler/definition.rb:233:in `specs_for'
	from /nix/store/zlhba012ssxsjzvn9fynw7dyiahgq7ng-ruby-3.0.4/lib/ruby/3.0.0/bundler/runtime.rb:18:in `setup'
	from /nix/store/zlhba012ssxsjzvn9fynw7dyiahgq7ng-ruby-3.0.4/lib/ruby/3.0.0/bundler.rb:150:in `setup'
	from /nix/store/zlhba012ssxsjzvn9fynw7dyiahgq7ng-ruby-3.0.4/lib/ruby/3.0.0/bundler/setup.rb:20:in `block in <top (required)>'
	from /nix/store/zlhba012ssxsjzvn9fynw7dyiahgq7ng-ruby-3.0.4/lib/ruby/3.0.0/bundler/ui/shell.rb:136:in `with_level'
	from /nix/store/zlhba012ssxsjzvn9fynw7dyiahgq7ng-ruby-3.0.4/lib/ruby/3.0.0/bundler/ui/shell.rb:88:in `silence'
	from /nix/store/zlhba012ssxsjzvn9fynw7dyiahgq7ng-ruby-3.0.4/lib/ruby/3.0.0/bundler/setup.rb:20:in `<top (required)>'
	from <internal:/nix/store/zlhba012ssxsjzvn9fynw7dyiahgq7ng-ruby-3.0.4/lib/ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
	from <internal:/nix/store/zlhba012ssxsjzvn9fynw7dyiahgq7ng-ruby-3.0.4/lib/ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
/nix/store/zlhba012ssxsjzvn9fynw7dyiahgq7ng-ruby-3.0.4/lib/ruby/3.0.0/bundler/vendor/molinillo/lib/molinillo/resolution.rb:317:in `raise_error_unless_state': Unable to satisfy the following requirements: (Bundler::Molinillo::VersionConflict)

- `nio4r (~> 2.0) aarch64-linux` required by `puma (5.6.5) (aarch64-linux)`
	from /nix/store/zlhba012ssxsjzvn9fynw7dyiahgq7ng-ruby-3.0.4/lib/ruby/3.0.0/bundler/vendor/molinillo/lib/molinillo/resolution.rb:299:in `block in unwind_for_conflict'
	from <internal:kernel>:90:in `tap'
	from /nix/store/zlhba012ssxsjzvn9fynw7dyiahgq7ng-ruby-3.0.4/lib/ruby/3.0.0/bundler/vendor/molinillo/lib/molinillo/resolution.rb:297:in `unwind_for_conflict'
	from /nix/store/zlhba012ssxsjzvn9fynw7dyiahgq7ng-ruby-3.0.4/lib/ruby/3.0.0/bundler/vendor/molinillo/lib/molinillo/resolution.rb:257:in `process_topmost_state'
	from /nix/store/zlhba012ssxsjzvn9fynw7dyiahgq7ng-ruby-3.0.4/lib/ruby/3.0.0/bundler/vendor/molinillo/lib/molinillo/resolution.rb:182:in `resolve'
	from /nix/store/zlhba012ssxsjzvn9fynw7dyiahgq7ng-ruby-3.0.4/lib/ruby/3.0.0/bundler/vendor/molinillo/lib/molinillo/resolver.rb:43:in `resolve'
	from /nix/store/zlhba012ssxsjzvn9fynw7dyiahgq7ng-ruby-3.0.4/lib/ruby/3.0.0/bundler/resolver.rb:49:in `start'
	from /nix/store/zlhba012ssxsjzvn9fynw7dyiahgq7ng-ruby-3.0.4/lib/ruby/3.0.0/bundler/resolver.rb:23:in `resolve'
	from /nix/store/zlhba012ssxsjzvn9fynw7dyiahgq7ng-ruby-3.0.4/lib/ruby/3.0.0/bundler/definition.rb:264:in `resolve'
	from /nix/store/zlhba012ssxsjzvn9fynw7dyiahgq7ng-ruby-3.0.4/lib/ruby/3.0.0/bundler/definition.rb:467:in `materialize'
	from /nix/store/zlhba012ssxsjzvn9fynw7dyiahgq7ng-ruby-3.0.4/lib/ruby/3.0.0/bundler/definition.rb:185:in `specs'
	from /nix/store/zlhba012ssxsjzvn9fynw7dyiahgq7ng-ruby-3.0.4/lib/ruby/3.0.0/bundler/definition.rb:233:in `specs_for'
	from /nix/store/zlhba012ssxsjzvn9fynw7dyiahgq7ng-ruby-3.0.4/lib/ruby/3.0.0/bundler/runtime.rb:18:in `setup'
	from /nix/store/zlhba012ssxsjzvn9fynw7dyiahgq7ng-ruby-3.0.4/lib/ruby/3.0.0/bundler.rb:150:in `setup'
	from /nix/store/zlhba012ssxsjzvn9fynw7dyiahgq7ng-ruby-3.0.4/lib/ruby/3.0.0/bundler/setup.rb:20:in `block in <top (required)>'
	from /nix/store/zlhba012ssxsjzvn9fynw7dyiahgq7ng-ruby-3.0.4/lib/ruby/3.0.0/bundler/ui/shell.rb:136:in `with_level'
	from /nix/store/zlhba012ssxsjzvn9fynw7dyiahgq7ng-ruby-3.0.4/lib/ruby/3.0.0/bundler/ui/shell.rb:88:in `silence'
	from /nix/store/zlhba012ssxsjzvn9fynw7dyiahgq7ng-ruby-3.0.4/lib/ruby/3.0.0/bundler/setup.rb:20:in `<top (required)>'
	from <internal:/nix/store/zlhba012ssxsjzvn9fynw7dyiahgq7ng-ruby-3.0.4/lib/ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
	from <internal:/nix/store/zlhba012ssxsjzvn9fynw7dyiahgq7ng-ruby-3.0.4/lib/ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
E/nix/store/zlhba012ssxsjzvn9fynw7dyiahgq7ng-ruby-3.0.4/lib/ruby/3.0.0/bundler/resolver.rb:57:in `rescue in start': Bundler could not find compatible versions for gem "nio4r": (Bundler::VersionConflict)
  In Gemfile:
    puma was resolved to 5.6.5, which depends on
      nio4r (~> 2.0)

Could not find gem 'nio4r (~> 2.0)', which is required by gem 'puma', in any of the sources.
	from /nix/store/zlhba012ssxsjzvn9fynw7dyiahgq7ng-ruby-3.0.4/lib/ruby/3.0.0/bundler/resolver.rb:44:in `start'
	from /nix/store/zlhba012ssxsjzvn9fynw7dyiahgq7ng-ruby-3.0.4/lib/ruby/3.0.0/bundler/resolver.rb:23:in `resolve'
	from /nix/store/zlhba012ssxsjzvn9fynw7dyiahgq7ng-ruby-3.0.4/lib/ruby/3.0.0/bundler/definition.rb:264:in `resolve'
	from /nix/store/zlhba012ssxsjzvn9fynw7dyiahgq7ng-ruby-3.0.4/lib/ruby/3.0.0/bundler/definition.rb:467:in `materialize'
	from /nix/store/zlhba012ssxsjzvn9fynw7dyiahgq7ng-ruby-3.0.4/lib/ruby/3.0.0/bundler/definition.rb:185:in `specs'
	from /nix/store/zlhba012ssxsjzvn9fynw7dyiahgq7ng-ruby-3.0.4/lib/ruby/3.0.0/bundler/definition.rb:233:in `specs_for'
	from /nix/store/zlhba012ssxsjzvn9fynw7dyiahgq7ng-ruby-3.0.4/lib/ruby/3.0.0/bundler/runtime.rb:18:in `setup'
	from /nix/store/zlhba012ssxsjzvn9fynw7dyiahgq7ng-ruby-3.0.4/lib/ruby/3.0.0/bundler.rb:150:in `setup'
	from /nix/store/zlhba012ssxsjzvn9fynw7dyiahgq7ng-ruby-3.0.4/lib/ruby/3.0.0/bundler/setup.rb:20:in `block in <top (required)>'
	from /nix/store/zlhba012ssxsjzvn9fynw7dyiahgq7ng-ruby-3.0.4/lib/ruby/3.0.0/bundler/ui/shell.rb:136:in `with_level'
	from /nix/store/zlhba012ssxsjzvn9fynw7dyiahgq7ng-ruby-3.0.4/lib/ruby/3.0.0/bundler/ui/shell.rb:88:in `silence'
	from /nix/store/zlhba012ssxsjzvn9fynw7dyiahgq7ng-ruby-3.0.4/lib/ruby/3.0.0/bundler/setup.rb:20:in `<top (required)>'
	from <internal:/nix/store/zlhba012ssxsjzvn9fynw7dyiahgq7ng-ruby-3.0.4/lib/ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
	from <internal:/nix/store/zlhba012ssxsjzvn9fynw7dyiahgq7ng-ruby-3.0.4/lib/ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
/nix/store/zlhba012ssxsjzvn9fynw7dyiahgq7ng-ruby-3.0.4/lib/ruby/3.0.0/bundler/vendor/molinillo/lib/molinillo/resolution.rb:317:in `raise_error_unless_state': Unable to satisfy the following requirements: (Bundler::Molinillo::VersionConflict)

- `nio4r (~> 2.0) aarch64-linux` required by `puma (5.6.5) (aarch64-linux)`
	from /nix/store/zlhba012ssxsjzvn9fynw7dyiahgq7ng-ruby-3.0.4/lib/ruby/3.0.0/bundler/vendor/molinillo/lib/molinillo/resolution.rb:299:in `block in unwind_for_conflict'
	from <internal:kernel>:90:in `tap'
	from /nix/store/zlhba012ssxsjzvn9fynw7dyiahgq7ng-ruby-3.0.4/lib/ruby/3.0.0/bundler/vendor/molinillo/lib/molinillo/resolution.rb:297:in `unwind_for_conflict'
	from /nix/store/zlhba012ssxsjzvn9fynw7dyiahgq7ng-ruby-3.0.4/lib/ruby/3.0.0/bundler/vendor/molinillo/lib/molinillo/resolution.rb:257:in `process_topmost_state'
	from /nix/store/zlhba012ssxsjzvn9fynw7dyiahgq7ng-ruby-3.0.4/lib/ruby/3.0.0/bundler/vendor/molinillo/lib/molinillo/resolution.rb:182:in `resolve'
	from /nix/store/zlhba012ssxsjzvn9fynw7dyiahgq7ng-ruby-3.0.4/lib/ruby/3.0.0/bundler/vendor/molinillo/lib/molinillo/resolver.rb:43:in `resolve'
	from /nix/store/zlhba012ssxsjzvn9fynw7dyiahgq7ng-ruby-3.0.4/lib/ruby/3.0.0/bundler/resolver.rb:49:in `start'
	from /nix/store/zlhba012ssxsjzvn9fynw7dyiahgq7ng-ruby-3.0.4/lib/ruby/3.0.0/bundler/resolver.rb:23:in `resolve'
	from /nix/store/zlhba012ssxsjzvn9fynw7dyiahgq7ng-ruby-3.0.4/lib/ruby/3.0.0/bundler/definition.rb:264:in `resolve'
	from /nix/store/zlhba012ssxsjzvn9fynw7dyiahgq7ng-ruby-3.0.4/lib/ruby/3.0.0/bundler/definition.rb:467:in `materialize'
	from /nix/store/zlhba012ssxsjzvn9fynw7dyiahgq7ng-ruby-3.0.4/lib/ruby/3.0.0/bundler/definition.rb:185:in `specs'
	from /nix/store/zlhba012ssxsjzvn9fynw7dyiahgq7ng-ruby-3.0.4/lib/ruby/3.0.0/bundler/definition.rb:233:in `specs_for'
	from /nix/store/zlhba012ssxsjzvn9fynw7dyiahgq7ng-ruby-3.0.4/lib/ruby/3.0.0/bundler/runtime.rb:18:in `setup'
	from /nix/store/zlhba012ssxsjzvn9fynw7dyiahgq7ng-ruby-3.0.4/lib/ruby/3.0.0/bundler.rb:150:in `setup'
	from /nix/store/zlhba012ssxsjzvn9fynw7dyiahgq7ng-ruby-3.0.4/lib/ruby/3.0.0/bundler/setup.rb:20:in `block in <top (required)>'
	from /nix/store/zlhba012ssxsjzvn9fynw7dyiahgq7ng-ruby-3.0.4/lib/ruby/3.0.0/bundler/ui/shell.rb:136:in `with_level'
	from /nix/store/zlhba012ssxsjzvn9fynw7dyiahgq7ng-ruby-3.0.4/lib/ruby/3.0.0/bundler/ui/shell.rb:88:in `silence'
	from /nix/store/zlhba012ssxsjzvn9fynw7dyiahgq7ng-ruby-3.0.4/lib/ruby/3.0.0/bundler/setup.rb:20:in `<top (required)>'
	from <internal:/nix/store/zlhba012ssxsjzvn9fynw7dyiahgq7ng-ruby-3.0.4/lib/ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
	from <internal:/nix/store/zlhba012ssxsjzvn9fynw7dyiahgq7ng-ruby-3.0.4/lib/ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:85:in `require'

Nix 👀

I think you need to share more about your local env @nateberkopec? As we aren't seeing this in CI?

Totes. I've seen this before on Mac/Homebrew as well so I know it's not specific to this exact Nix setup.

git clean -fdx -- test ?

Good idea, but no luck. same error.

Although I just watched @JuanitoFatas set up the tests for the first time and they passed so maybe it is me 😆

I totally forgot something, do you do the following, usually to vendor/bundle?

bundle config set --local path

I do!

Setting BUNDLE_PATH changes the failure I get, which is progress:

  1) Error:
TestPreserveBundlerEnv#test_phased_restart_preserves_unspecified_bundle_gemfile:
Timeout::Error: Client Read Timeout
    /host/nateberkopec/Documents/Code.nosync/upstream/puma/test/helpers/integration.rb:227:in `read_response'
    /host/nateberkopec/Documents/Code.nosync/upstream/puma/test/helpers/integration.rb:177:in `read_body'
    test/test_preserve_bundler_env.rb:81:in `test_phased_restart_preserves_unspecified_bundle_gemfile'
    /host/nateberkopec/Documents/Code.nosync/upstream/puma/test/helper.rb:85:in `block (4 levels) in run'
    /nix/store/zlhba012ssxsjzvn9fynw7dyiahgq7ng-ruby-3.0.4/lib/ruby/3.0.0/timeout.rb:97:in `block in timeout'
    /nix/store/zlhba012ssxsjzvn9fynw7dyiahgq7ng-ruby-3.0.4/lib/ruby/3.0.0/timeout.rb:107:in `timeout'
    /host/nateberkopec/Documents/Code.nosync/upstream/puma/test/helper.rb:83:in `block (3 levels) in run'

I just ran tests (tried #2948 locally), and I had another .bundle directory upstream or in ~/home. Had similar errors, removed and tests passed.

Also, I think Actions CI does not set any Bundler ENV variables, but if you're using a version switcher, that may be setting some?

I've got a gazillion Ruby versions on Windows, and a bit less on Ubuntu. I've always used my own switching.

Otherwise, I have no idea...