ruby / ruby/rubygems

bundler misses the definition to itself by resolving remotly

Open
#5,945 1 comment 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

Bundler
Dominant language
Ruby
Stars
4k
Forks
1.9k
Avg merge
1d 2h
Merged PRs (30d)
81

Description

Hello!
I am using ruby 2.7 and bundler 2.3.22.
In my case the Gemfile lists bundler among other gems. The definition of gems are resolved remotely. However, remote resolver returns the definition of each gem except bundler. In previous bundler version 2.3.18 the remote resolver returned the list of gems included bundler.

For test purposes Gemfile and test script were created.

Gemfile

source 'https://rubygems.org'
ruby "~> 2.7.0" if respond_to?(:ruby)
group :default do
  gem "bundler",
                                         ">= 0"
  gem "concurrent-ruby",
                                         ">= 0"
  gem "concurrent-ruby-ext",
                                         ">= 0"
  gem "facets",
                                         ">= 0"
end

test.rb

require 'bundler'

gems_definitions = Bundler::Definition.build("Gemfile", nil,nil)

print "REMOTLY \n"
gem_specs = gems_definitions.resolve_remotely!
gem_specs.each do |spec|
  print "#{spec.name}  --- #{spec.version} \n"
end

print "----------------------------\n"

print "SPECS \n"
specs_init = gems_definitions.specs
specs_init.each do |spec|
  print "#{spec.name}  --- #{spec.version} \n"
end

output of bundler 2.3.22

REMOTLY
concurrent-ruby  --- 1.1.10 
concurrent-ruby-ext  --- 1.1.10 
facets  --- 3.1.0 
----------------------------
SPECS 
bundler  --- 2.3.22 
concurrent-ruby  --- 1.1.10 
concurrent-ruby-ext  --- 1.1.10 
facets  --- 3.1.0 

output of bundler 2.3.18

REMOTLY 
bundler  --- 2.3.18
concurrent-ruby  --- 1.1.10 
concurrent-ruby-ext  --- 1.1.10 
facets  --- 3.1.0 
----------------------------
SPECS 
bundler  --- 2.3.18 
concurrent-ruby  --- 1.1.10 
concurrent-ruby-ext  --- 1.1.10 
facets  --- 3.1.0 

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by running the supplied test.rb with the Gemfile against the affected Bundler version, comparing resolve_remotely! with specs. Trace the remote resolution entry point from the Bundler code and determine why the bundler definition is omitted; done means the remote results include bundler as they did in 2.3.18, with a regression test covering the case.

Written by the indexing model from the issue text.

Assessment

Tech stack
ruby
Domain
tooling
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.