Skip to content

Can't require puppet gem in Ruby 3.3 #9487

Open
@joshcooper

Description

@joshcooper

Describe the Bug

A gem that depends on puppet fails on Ruby 3.3 because racc is not a runtime dependency of puppet

Expected Behavior

Installing a gem that depends on puppet should include racc as a transitive dependency.

Steps to Reproduce

❯ cat test.rb   
require 'bundler/inline'

gemfile do
  source 'https://rubygems.org'
  gem 'puppet'
end

puts 'Gems installed and loaded!'

❯ ruby --version
ruby 3.3.4 (2024-07-09 revision be1089c8ec) [x86_64-linux]

❯ ruby test.rb  
/home/josh/.rbenv/versions/3.3.4/lib/ruby/gems/3.3.0/gems/puppet-8.9.0/lib/puppet/util/feature.rb:116: warning: syslog was loaded from the standard library, but will no longer be part of the default gems since Ruby 3.4.0. Add syslog to your Gemfile or gemspec. Also contact author of puppet-8.9.0 to add syslog into its gemspec.
/home/josh/.rbenv/versions/3.3.4/lib/ruby/gems/3.3.0/gems/puppet-8.9.0/lib/puppet/pops/types/p_binary_type.rb:3: warning: base64 was loaded from the standard library, but will no longer be part of the default gems since Ruby 3.4.0. Add base64 to your Gemfile or gemspec. Also contact author of puppet-8.9.0 to add base64 into its gemspec.
/home/josh/.rbenv/versions/3.3.4/lib/ruby/3.3.0/bundled_gems.rb:74:in `require': cannot load such file -- racc/parser.rb (LoadError)
	from /home/josh/.rbenv/versions/3.3.4/lib/ruby/3.3.0/bundled_gems.rb:74:in `block (2 levels) in replace_require'
	from /home/josh/.rbenv/versions/3.3.4/lib/ruby/gems/3.3.0/gems/puppet-8.9.0/lib/puppet/pops/parser/eparser.rb:7:in `<top (required)>'

Environment

  • Version 8.9.0

Additional Context

We added racc to the test bundler group in #9303, but more work is needed

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingtriagedJira issue has been created for this

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions