jhawthorn / pub_grub

🍔 A ruby implementation of the PubGrub CDCL-based version solver
MIT License
151 stars 11 forks source link

Added explicitly require for PubGrub::RubyGems #31

Closed hsbt closed 10 months ago

hsbt commented 1 year ago

👋 Hi, Thank you for maintaining pub_grub.

I got NameError with sample code like:

$ cat -p sample1.rb
require "pub_grub"

source = PubGrub::StaticPackageSource.new do |s|
  s.add 'foo', '2.0.0', deps: { 'bar' => '1.0.0' }
  s.add 'foo', '1.0.0'

  s.add 'bar', '1.0.0', deps: { 'foo' => '1.0.0' }

  s.root deps: { 'foo' => '>= 1.0.0' }
end

solver = PubGrub::VersionSolver.new(source: source)
result = solver.solve
$ ruby sample1.rb
/Users/hsbt/.local/share/gem/gems/pub_grub-0.5.0/lib/pub_grub/static_package_source.rb:50:in `parse_dependency': uninitialized constant PubGrub::RubyGems (NameError)

      PubGrub::RubyGems.parse_constraint(package, dependency)
             ^^^^^^^^^^

I'm not sure why pub_grub/rubygems.rb is not required by lib/pub_grub/static_package_source.rb. But PubGrub::StaticPackageSource always refer PubGrub::RubyGems. We should load it explicitly.

jhawthorn commented 10 months ago

Thanks!