Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Can't require puppet gem in Ruby 3.3 #9487

Open
joshcooper opened this issue Sep 26, 2024 · 2 comments
Open

Can't require puppet gem in Ruby 3.3 #9487

joshcooper opened this issue Sep 26, 2024 · 2 comments
Labels
bug Something isn't working triaged Jira issue has been created for this

Comments

@joshcooper
Copy link
Contributor

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

@joshcooper joshcooper added the bug Something isn't working label Sep 26, 2024
@joshcooper joshcooper changed the title Can'require puppet gem in Ruby 3.3 Can't require puppet gem in Ruby 3.3 Sep 26, 2024
@joshcooper joshcooper added the triaged Jira issue has been created for this label Oct 1, 2024
Copy link

github-actions bot commented Oct 1, 2024

Migrated issue to PUP-12080

@just1602
Copy link

With ruby 3.3.5, I have warnings about the following gems being load from stdlib but won't be part of default gems in 3.4.0:

  • ostruct
  • getoptlong
  • logger
  • prime
  • syslog
  • base64

That would probably be a good idea to add them as runtime dependencies.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working triaged Jira issue has been created for this
Projects
None yet
Development

No branches or pull requests

2 participants