Jira (PUP-10957) Support ruby 3

30 views
Skip to first unread message

Breno Fernandes (Jira)

unread,
Mar 9, 2021, 10:18:06 AM3/9/21
to puppe...@googlegroups.com
Breno Fernandes created an issue
 
Puppet / Epic PUP-10957
Support ruby 3
Issue Type: Epic Epic
Affects Versions: PUP 7.4.1
Assignee: Unassigned
Created: 2021/03/09 7:17 AM
Priority: Normal Normal
Reporter: Breno Fernandes

Hi,

Fedora 34 ships ruby 3.0. Very soon it will be on Redhat, Centos and Rockylinux.

It would be really cool if we could fix what is remaining to make puppet work with ruby 3.

Here is what I get when I try to run it on a fedora 34 and ruby 3:

ruby --version
ruby 3.0.0p0 (2020-12-25 revision 95aff21468) [x86_64-linux]

puppet --version
/usr/share/ruby/vendor_ruby/puppet/util.rb:476:in `uri_encode': undefined method `escape' for URI:Module (NoMethodError)
from /usr/share/ruby/vendor_ruby/puppet/util.rb:344:in `path_to_uri'
from /usr/share/ruby/vendor_ruby/puppet/pops/model/ast.rb:4957:in `register_pcore_types'
from /usr/share/ruby/vendor_ruby/puppet/pops.rb:120:in `<module:Puppet>'
from /usr/share/ruby/vendor_ruby/puppet/pops.rb:1:in `<top (required)>'
from <internal:/usr/share/rubygems/rubygems/core_ext/kernel_require.rb>:85:in `require'
from <internal:/usr/share/rubygems/rubygems/core_ext/kernel_require.rb>:85:in `require'
from /usr/share/ruby/vendor_ruby/puppet/parser/compiler.rb:8:in `<top (required)>'
from <internal:/usr/share/rubygems/rubygems/core_ext/kernel_require.rb>:85:in `require'
from <internal:/usr/share/rubygems/rubygems/core_ext/kernel_require.rb>:85:in `require'
from /usr/share/ruby/vendor_ruby/puppet/parser.rb:6:in `<top (required)>'
from <internal:/usr/share/rubygems/rubygems/core_ext/kernel_require.rb>:85:in `require'
from <internal:/usr/share/rubygems/rubygems/core_ext/kernel_require.rb>:85:in `require'
from /usr/share/ruby/vendor_ruby/puppet.rb:360:in `<top (required)>'
from <internal:/usr/share/rubygems/rubygems/core_ext/kernel_require.rb>:85:in `require'
from <internal:/usr/share/rubygems/rubygems/core_ext/kernel_require.rb>:85:in `require'
from /usr/share/ruby/vendor_ruby/puppet/util/command_line.rb:12:in `<top (required)>'
from <internal:/usr/share/rubygems/rubygems/core_ext/kernel_require.rb>:85:in `require'
from <internal:/usr/share/rubygems/rubygems/core_ext/kernel_require.rb>:85:in `require'
from /usr/bin/puppet:4:in `<main>'

Add Comment Add Comment
 
This message was sent by Atlassian Jira (v8.5.2#805002-sha1:a66f935)
Atlassian logo

Breno Fernandes (Jira)

unread,
Mar 9, 2021, 10:30:03 AM3/9/21
to puppe...@googlegroups.com

Jim Richardson (Jira)

unread,
Apr 20, 2021, 12:10:01 PM4/20/21
to puppe...@googlegroups.com
Jim Richardson commented on Epic PUP-10957
 
Re: Support ruby 3

I see the same error on my Archlinux systems that just updated to ruby 3.

This message was sent by Atlassian Jira (v8.13.2#813002-sha1:c495a97)
Atlassian logo

Gene Liverman (Jira)

unread,
Apr 22, 2021, 11:55:04 AM4/22/21
to puppe...@googlegroups.com

Romullo (Jira)

unread,
Apr 25, 2021, 4:10:02 PM4/25/21
to puppe...@googlegroups.com
Romullo commented on Epic PUP-10957
 
Re: Support ruby 3

Same problem for me with Ruby in version 3 on Archlinux.

Josh Cooper (Jira)

unread,
Apr 27, 2021, 3:32:01 PM4/27/21
to puppe...@googlegroups.com
Josh Cooper commented on Epic PUP-10957
 
Re: Support ruby 3

I've started looking at this for puppet. The main issues are:

  • FACT-3028: puppet is pulling in facter 2.5.7
  • sorted_set was moved to a gem
  • webrick was moved to a gem (we use it for testing only)
  • URI.escape/unescape was removed
  • rspec doesn't like how we're stubbing $CHILD_STATUS in provider tests
  • openssl is reporting certificate mismatch errors differently, maybe related to post handshake authentication in TLS 1.3?

Josh Cooper (Jira)

unread,
Apr 27, 2021, 3:32:02 PM4/27/21
to puppe...@googlegroups.com
Josh Cooper assigned an issue to Josh Cooper
Change By: Josh Cooper
Assignee: Josh Cooper

Josh Cooper (Jira)

unread,
May 3, 2021, 4:02:04 PM5/3/21
to puppe...@googlegroups.com
Josh Cooper updated an issue
Hi,

Fedora 34 ships ruby 3.0. Very soon it will be on Redhat, Centos and Rockylinux.

It would be really cool if we could fix what is remaining to make puppet work with ruby 3.

Here is what I get when I try to run it on a fedora 34 and ruby 3:

{noformat}
ruby --version
ruby 3.0.0p0 (2020-12-25 revision 95aff21468) [x86_64-linux]

puppet --version
/usr/share/ruby/vendor_ruby/puppet/util.rb:476:in `uri_encode': undefined method `escape' for URI:Module (NoMethodError)
from /usr/share/ruby/vendor_ruby/puppet/util.rb:344:in `path_to_uri'
from /usr/share/ruby/vendor_ruby/puppet/pops/model/ast.rb:4957:in `register_pcore_types'
from /usr/share/ruby/vendor_ruby/puppet/pops.rb:120:in `<module:Puppet>'
from /usr/share/ruby/vendor_ruby/puppet/pops.rb:1:in `<top (required)>'
from <internal:/usr/share/rubygems/rubygems/core_ext/kernel_require.rb>:85:in `require'
from <internal:/usr/share/rubygems/rubygems/core_ext/kernel_require.rb>:85:in `require'
from /usr/share/ruby/vendor_ruby/puppet/parser/compiler.rb:8:in `<top (required)>'
from <internal:/usr/share/rubygems/rubygems/core_ext/kernel_require.rb>:85:in `require'
from <internal:/usr/share/rubygems/rubygems/core_ext/kernel_require.rb>:85:in `require'
from /usr/share/ruby/vendor_ruby/puppet/parser.rb:6:in `<top (required)>'
from <internal:/usr/share/rubygems/rubygems/core_ext/kernel_require.rb>:85:in `require'
from <internal:/usr/share/rubygems/rubygems/core_ext/kernel_require.rb>:85:in `require'
from /usr/share/ruby/vendor_ruby/puppet.rb:360:in `<top (required)>'
from <internal:/usr/share/rubygems/rubygems/core_ext/kernel_require.rb>:85:in `require'
from <internal:/usr/share/rubygems/rubygems/core_ext/kernel_require.rb>:85:in `require'
from /usr/share/ruby/vendor_ruby/puppet/util/command_line.rb:12:in `<top (required)>'
from <internal:/usr/share/rubygems/rubygems/core_ext/kernel_require.rb>:85:in `require'
from <internal:/usr/share/rubygems/rubygems/core_ext/kernel_require.rb>:85:in `require'
from /usr/bin/puppet:4:in `<main>'

{noformat}

Alfredo Moralejo (Jira)

unread,
May 6, 2021, 10:18:03 AM5/6/21
to puppe...@googlegroups.com
Alfredo Moralejo commented on Epic PUP-10957
 
Re: Support ruby 3

Would it be possible to backport support for ruby3 in puppet6 ?

Josh Cooper (Jira)

unread,
May 6, 2021, 7:38:04 PM5/6/21
to puppe...@googlegroups.com
Josh Cooper commented on Epic PUP-10957
 
Re: Support ruby 3

Alfredo Moralejo we don't typically add support for new ruby versions to older branches. For example, we didn't add ruby 2.7 support to the 5.x branch.

Josh Cooper (Jira)

unread,
May 10, 2021, 11:12:04 AM5/10/21
to puppe...@googlegroups.com
Josh Cooper updated an issue
Change By: Josh Cooper
Labels: PE-SoS

Josh Cooper (Jira)

unread,
May 11, 2021, 11:20:03 AM5/11/21
to puppe...@googlegroups.com

Josh Cooper (Jira)

unread,
May 13, 2021, 2:19:03 AM5/13/21
to puppe...@googlegroups.com
Josh Cooper updated an issue
Change By: Josh Cooper
Team/s: Coremunity

Alfredo Moralejo (Jira)

unread,
May 17, 2021, 3:26:03 AM5/17/21
to puppe...@googlegroups.com
Alfredo Moralejo commented on Epic PUP-10957
 
Re: Support ruby 3

Apparently there are some issues with semantic_puppet? https://github.com/puppetlabs/semantic_puppet/pull/36

Breno Fernandes (Jira)

unread,
May 17, 2021, 10:34:04 AM5/17/21
to puppe...@googlegroups.com
Breno Fernandes commented on Epic PUP-10957
 
Re: Support ruby 3

Do we have any deadline for this?

Alfredo Moralejo (Jira)

unread,
May 20, 2021, 5:23:04 AM5/20/21
to puppe...@googlegroups.com
Reply all
Reply to author
Forward
0 new messages