Jira (PUP-10247) Support ruby 2.7

1 view
Skip to first unread message

Josh Cooper (JIRA)

unread,
Jan 22, 2020, 1:49:03 AM1/22/20
to puppe...@googlegroups.com
Josh Cooper created an issue
 
Puppet / Task PUP-10247
Support ruby 2.7
Issue Type: Task Task
Assignee: Unassigned
Created: 2020/01/21 10:47 PM
Priority: Normal Normal
Reporter: Josh Cooper

puppet specs fail on ruby 2.7.0 because:

  1. sync was extracted into a different gem. But we don't actually need that code, so remove the require 'sync' statements.
  2. scanf was extracted into a different gem. We need to add a runtime dependency on that gem ~> 1.0 to puppet's .gemspec. We will need to update a few other projects first (puppetserver, r10k, etc) first.
  3. There many ruby deprecation warnings due to keyword argument vs positional argument handling. See https://www.ruby-lang.org/en/news/2019/12/12/separation-of-positional-and-keyword-arguments-in-ruby-3-0/
Add Comment Add Comment
 
This message was sent by Atlassian JIRA (v7.7.1#77002-sha1:e75ca93)
Atlassian logo

Josh Cooper (JIRA)

unread,
Jan 22, 2020, 10:36:03 PM1/22/20
to puppe...@googlegroups.com
Josh Cooper updated an issue
Change By: Josh Cooper
Team: Coremunity

Anthony Sottile (JIRA)

unread,
Feb 3, 2020, 7:52:04 PM2/3/20
to puppe...@googlegroups.com
Anthony Sottile commented on Task PUP-10247
 
Re: Support ruby 2.7

hitting this as well, for those that want to land here on a stacktrace from google here's one I'm running into:

 

 $ puppet parser validate ../personal-puppet/manifests/site.pp
/tmp/x/renv/lib/ruby/gems/2.7.0/gems/puppet-6.12.0/lib/puppet/indirector.rb:49: warning: Using the last argument as keyword parameters is deprecated; maybe ** should be added to the call
/tmp/x/renv/lib/ruby/gems/2.7.0/gems/puppet-6.12.0/lib/puppet/indirector/indirection.rb:95: warning: The called method `initialize' is defined here
/tmp/x/renv/lib/ruby/gems/2.7.0/gems/puppet-6.12.0/lib/puppet/util.rb:463: warning: URI.escape is obsolete
/tmp/x/renv/lib/ruby/gems/2.7.0/gems/puppet-6.12.0/lib/puppet.rb:7: warning: already initialized constant Puppet::OLDEST_RECOMMENDED_RUBY_VERSION
/tmp/x/renv/lib/ruby/gems/2.7.0/gems/puppet-6.12.0/lib/puppet.rb:7: warning: previous definition of OLDEST_RECOMMENDED_RUBY_VERSION was here
/tmp/x/renv/lib/ruby/gems/2.7.0/gems/puppet-6.12.0/lib/puppet.rb:7: warning: already initialized constant Puppet::OLDEST_RECOMMENDED_RUBY_VERSION
/tmp/x/renv/lib/ruby/gems/2.7.0/gems/puppet-6.12.0/lib/puppet.rb:7: warning: previous definition of OLDEST_RECOMMENDED_RUBY_VERSION was here
/tmp/x/renv/lib/ruby/gems/2.7.0/gems/puppet-6.12.0/lib/puppet.rb:7: warning: already initialized constant Puppet::OLDEST_RECOMMENDED_RUBY_VERSION
/tmp/x/renv/lib/ruby/gems/2.7.0/gems/puppet-6.12.0/lib/puppet.rb:7: warning: previous definition of OLDEST_RECOMMENDED_RUBY_VERSION was here
cannot load such file -- sync

Josh Cooper (JIRA)

unread,
Feb 4, 2020, 12:11:04 PM2/4/20
to puppe...@googlegroups.com
Josh Cooper updated an issue
Change By: Josh Cooper
Team: Coremunity Night's Watch

Mihai Buzgau (JIRA)

unread,
Feb 5, 2020, 6:52:04 AM2/5/20
to puppe...@googlegroups.com
Mihai Buzgau updated an issue
Change By: Mihai Buzgau
Sprint: PR - Triage

Luchian Nemes (JIRA)

unread,
Feb 13, 2020, 9:25:05 AM2/13/20
to puppe...@googlegroups.com
Luchian Nemes updated an issue
Change By: Luchian Nemes
Fix Version/s: PUP 6.13.0

Jorie Tappa (JIRA)

unread,
Feb 24, 2020, 2:11:04 PM2/24/20
to puppe...@googlegroups.com
Jorie Tappa updated an issue
Change By: Jorie Tappa
Fix Version/s: PUP 6.13.0
Fix Version/s: PUP 6.y

Mihai Buzgau (Jira)

unread,
Apr 1, 2020, 3:01:02 AM4/1/20
to puppe...@googlegroups.com
Mihai Buzgau updated an issue
Change By: Mihai Buzgau
Sprint: PR NW - Triage 2020-04-15
This message was sent by Atlassian Jira (v8.5.2#805002-sha1:a66f935)
Atlassian logo

Mihai Buzgau (Jira)

unread,
Apr 1, 2020, 5:21:03 AM4/1/20
to puppe...@googlegroups.com
Mihai Buzgau updated an issue
Change By: Mihai Buzgau
Story Points: 3

Dorin Pleava (Jira)

unread,
Apr 6, 2020, 7:07:03 AM4/6/20
to puppe...@googlegroups.com
Dorin Pleava assigned an issue to Dorin Pleava
Change By: Dorin Pleava
Assignee: Dorin Pleava

Mihai Buzgau (Jira)

unread,
Apr 10, 2020, 5:32:03 AM4/10/20
to puppe...@googlegroups.com
Mihai Buzgau updated an issue
 
Puppet / Epic PUP-10247
Support ruby 2.7
Change By: Mihai Buzgau
Epic Name: Support ruby 2.7
Epic Status: To Do
Team: Night's Watch
Workflow: Scrum Team Engineering Epic Workflow
Issue Type: Task Epic
Status: In Progress Open

Arpit sharma (Jira)

unread,
Apr 24, 2020, 10:56:04 AM4/24/20
to puppe...@googlegroups.com
Arpit sharma commented on Epic PUP-10247
 
Re: Support ruby 2.7

Can we have some priority on this issue?

Ubuntu Focal ships with ruby 2.7 and we are having all kinds of trouble running puppet on it

Ed Marshall (Jira)

unread,
Apr 28, 2020, 8:45:03 PM4/28/20
to puppe...@googlegroups.com
Ed Marshall commented on Epic PUP-10247
 
Re: Support ruby 2.7

FYI: Fedora 32 just shipped with ruby 2.7.

Josh Cooper (Jira)

unread,
Apr 29, 2020, 1:35:03 PM4/29/20
to puppe...@googlegroups.com
Josh Cooper commented on Epic PUP-10247
 
Re: Support ruby 2.7

Arpit sharma, Ed Marshall, Anthony Sottile note you can always (and should) install puppet-agent packages from our repositories as it contains a vendored ruby, openssl, etc that works on Focal. If you install from Ubuntu repos then you're going to get an older version of puppet with compatibility issues such as this. That said, we will be moving our vendored ruby to 2.7 at some point in the future, and the issues in this epic will need to be addressed.

Hadmut Danisch (Jira)

unread,
May 13, 2020, 6:00:04 AM5/13/20
to puppe...@googlegroups.com
Hadmut Danisch commented on Epic PUP-10247
 
Re: Support ruby 2.7

puppet5 can't install ruby gems (using gem as package provider) under ruby 2.7, since it calls the gem command with options such as --nodoc, which do not exist anymore in gem, and cause the gem command to fail.

 

Hadmut Danisch (Jira)

unread,
May 13, 2020, 6:02:02 AM5/13/20
to puppe...@googlegroups.com
 
Re: Support ruby 2.7

Is there a timeline about when to expect having puppet work properly with recent linux distributions such as Ubuntu 20.04?

 

 

Josh Cooper (Jira)

unread,
May 13, 2020, 1:26:03 PM5/13/20
to puppe...@googlegroups.com
Josh Cooper commented on Epic PUP-10247
 
Re: Support ruby 2.7

Hadmut Danisch The -no-doc/-no-ri issue was fixed in 5.5.14 in PUP-9395. We don't have plans on building/releasing puppet5 packages for Ubuntu 20.04, but they are available in 6.15.0, see https://puppet.com/docs/puppet/latest/system_requirements.html#packaged-platforms and http://apt.puppet.com/puppet6-release-focal.deb

Anthony Sottile (Jira)

unread,
May 15, 2020, 12:20:03 PM5/15/20
to puppe...@googlegroups.com
Anthony Sottile commented on Epic PUP-10247
 
Re: Support ruby 2.7

it's a bit unfortunate to skip puppet 5 on 20.04 as it's not yet feature complete (for example many facts are missing: https://tickets.puppetlabs.com/browse/FACT-2584)

Josh Cooper (Jira)

unread,
May 15, 2020, 12:43:03 PM5/15/20
to puppe...@googlegroups.com
Josh Cooper commented on Epic PUP-10247
 
Re: Support ruby 2.7

Anthony Sottile I left a comment on the FACT ticket. Note that issue occurs when running puppet as a gem. If you using puppet-agent packages, then it shouldn't be an issue.

Hadmut Danisch (Jira)

unread,
May 15, 2020, 4:19:03 PM5/15/20
to puppe...@googlegroups.com
Hadmut Danisch commented on Epic PUP-10247
 
Re: Support ruby 2.7

Josh Cooper So how exactly do you expect puppet to be used on Ubuntu 20.04?

Should it be used at all on Ubuntu 20.04?

And if so:  When?

 

Forcing people into running that JDK stuff might scare many users just away. I currently do not see any concept here of getting puppet run in 20.04 and other recent distributions. You're currently committing some sort of suicide. People will drop puppet and move to other solutions like ansible or chef.

 

20.04 is out now for almost a month, but there's still no running solution for puppet on 20.04, but in an act of denying reality puppet claims that it has been tested on 20.04 (which is obviously incorrect since it just does not come on 20.04 with working packages)

 

Maybe just let's face reality: Puppet Labs are unable to provide a running puppet for 20.04. Which more or less translates to puppet's death.

 

 

 

Rob Braden (Jira)

unread,
May 15, 2020, 5:09:03 PM5/15/20
to puppe...@googlegroups.com
Rob Braden commented on Epic PUP-10247
 
Re: Support ruby 2.7

Hadmut DanischWe provide tested, supported packages for 20.04 at http://apt.puppet.com/

Installing as a gem under Ruby 2.7 will not work until this ticket is completed.

Bronek Kozicki (Jira)

unread,
May 16, 2020, 5:25:04 AM5/16/20
to puppe...@googlegroups.com
Bronek Kozicki commented on Epic PUP-10247
 
Re: Support ruby 2.7

Rob Braden there are no arm64 packages for the current versions of Ubuntu in this repo. Given that Amazon just launched M6g instances, we are not talking about Raspberry Pi experiments but serious computing platform. My employer is using Puppet and I am currently evaluating M6g platform as an alternative to amd64 for some of our workloads, but the the only Puppet agent I could find is in Ubuntu repos.

Hadmut Danisch (Jira)

unread,
May 16, 2020, 6:21:03 AM5/16/20
to puppe...@googlegroups.com
Hadmut Danisch commented on Epic PUP-10247
 
Re: Support ruby 2.7

Get that damned thing up and running, or drop out of the production process.

 

Thomas Goirand (Jira)

unread,
May 25, 2020, 6:24:04 AM5/25/20
to puppe...@googlegroups.com
Thomas Goirand commented on Epic PUP-10247
 
Re: Support ruby 2.7

Josh Cooper the idea that Puppet users should always be using puppetlabs packages and vendored Ruby interpreter is really a bad one. It's not acceptable from any point of view. Vendoring library is already a very bad practice, vendoring a language interpreter even more. Please stop saying this is a solution, when this is in fact a problem, and please make puppet work on Ruby 2.7 ASAP. When that is done, then Debian folks can work on packaging Puppet 6 in Debian, which is currently not possible because of Ruby 2.7 that lives there (and as a consequence in Ubuntu as well).

Josh Cooper (Jira)

unread,
Jun 6, 2020, 8:01:03 PM6/6/20
to puppe...@googlegroups.com
Josh Cooper updated an issue
Change By: Josh Cooper
Team/s: Night's Watch

Mihai Buzgau (Jira)

unread,
Aug 11, 2020, 5:14:03 AM8/11/20
to puppe...@googlegroups.com
Mihai Buzgau updated an issue
Change By: Mihai Buzgau
Labels: platform_7

Mihai Buzgau (Jira)

unread,
Sep 3, 2020, 5:19:03 AM9/3/20
to puppe...@googlegroups.com
Mihai Buzgau commented on Epic PUP-10247
 
Re: Support ruby 2.7

Thomas Goirand we're providing two ways of installing Puppet:

  1. AIO (all-in-one installer) - this is a package built for all the platforms we support that contains Puppet + all the necessary dependencies.
  2. Puppet Gem published on Rubygems.org: https://rubygems.org/gems/puppet 

If the AIO package, doesn't suit your needs, you can use the Puppet gem. The latest version of the Puppet gem (6.18.0) does work on Ruby 2.7. If you encounter any issues please let us know by opening a new ticket. Your feedback is appreciated. Also, whenever we release a new version of Puppet AIO, we're also publishing a new version of the Puppet gem.

 

Bronek Kozicki we do understand that the ARM64 is starting to become a full-fledged computing platform. We're planning to provide support for RedHat 7 ARM64 in the near future (you can follow the progress here: https://tickets.puppetlabs.com/browse/PC-1441). For Ubuntu ARM we're still assessing the costs (eg. development cost, infrastructure costs). If you're a PE user please open a feature request for this on our Zendesk platform: https://puppetlabs.zendesk.com/ as it will help us with the decision.

Thomas Goirand (Jira)

unread,
Sep 3, 2020, 10:59:04 AM9/3/20
to puppe...@googlegroups.com
Thomas Goirand commented on Epic PUP-10247
 
Re: Support ruby 2.7

Mihai Buzgau instead of "assessing the costs" for making a Ubuntu version, it would have been a way more productive if, instead, people from puppetlabs were attempting the packaging initiative in Debian. See the Debian puppet team BoF here https://meetings-archive.debian.net/pub/debian-meetings/2020/DebConf20/25-puppet-team-bof.webm and the Clojure team BoF here https://meetings-archive.debian.net/pub/debian-meetings/2020/DebConf20/33-clojure-packaging-team-bof.webm If we had just a little bit of help, with someone assisting to answer our questions, it would go a way faster, and puppet 6 would already be available for Debian & Ubuntu, on all supported arch (including ARM and more...). If you're searching for us, just join on IRC on #debian-puppet and hopefully, we can work together on having Puppet 6 (and other components like puppet-db, bolt, etc.) properly packaged.

Justin Stoller (Jira)

unread,
Sep 3, 2020, 12:44:04 PM9/3/20
to puppe...@googlegroups.com
Justin Stoller commented on Epic PUP-10247
 
Re: Support ruby 2.7

I think this ticket was originally useful for tracking 2.7 support in the agent side Ruby code.

There took a turn around May attempting to re-litigate the six year old business decision to deprecate the Ruby side compiler stack, which I think soured the tone of this ticket.

The recent requests to work with debian maintainers to move forward with packaging recent versions of Puppet and Puppet Server are welcome and I've created CPR-760 to track and coordinate that work in a more productive environment.

Dorin Pleava (Jira)

unread,
Nov 5, 2020, 4:31:03 AM11/5/20
to puppe...@googlegroups.com
Dorin Pleava updated an issue
Change By: Dorin Pleava
Release Notes: New Feature
Release Notes Summary: Puppet 7 supports version Ruby 2.7, which was released in December 2019 and it brings new features and performance improvements.

Dorin Pleava (Jira)

unread,
Nov 5, 2020, 4:32:04 AM11/5/20
to puppe...@googlegroups.com
Dorin Pleava updated an issue
Change By: Dorin Pleava
Release Notes: New Feature Not Needed
Release Notes Summary: Puppet 7 supports version Ruby 2.7, which was released in December 2019 and it brings new features and performance improvements.

Breno Fernandes (Jira)

unread,
Mar 9, 2021, 10:06:05 AM3/9/21
to puppe...@googlegroups.com
Breno Fernandes commented on Epic PUP-10247
 
Re: Support ruby 2.7

Hi,

 

Fedora 34 ships ruby 3.0.

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:

 

  1. ruby --version
    ruby 3.0.0p0 (2020-12-25 revision 95aff21468) [x86_64-linux]
     
  2. 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>'

Ciprian Badescu (Jira)

unread,
Jun 7, 2021, 5:16:01 AM6/7/21
to puppe...@googlegroups.com
Ciprian Badescu updated an issue
Change By: Ciprian Badescu
Epic Status: To Do Done
This message was sent by Atlassian Jira (v8.13.2#813002-sha1:c495a97)
Atlassian logo
Reply all
Reply to author
Forward
0 new messages