Vox Pupuli: Our Road to Puppet 8

59 views
Skip to first unread message

Tim Meusel

unread,
May 12, 2023, 5:26:23 AM5/12/23
to voxp...@groups.io, puppet...@googlegroups.com
Good morning everybody,
I want to explain a bit what we're currently doing in our modules to
support Puppet 8.

Puppet 8 AIO packages contain Ruby 3.2. Vox Pupuli runs unit tests for
all supported major Puppet versions in a module. We run those with the
Ruby version that are in the matching AIO package. Puppet 6 used Ruby
2.5, Puppet 7 Ruby 2.7. To support Ruby 3.2 we had to update a few of
our gems, and that meant to Drop Ruby 2.4/2.5 in some places. While
we're at it, we also dropped Ruby 2.6 support because that's EoL as well
since a long time.

Personally I would love to drop Ruby 2.7 as well because that's end of
life since end of March (
https://www.ruby-lang.org/en/downloads/branches/), but sadly the Puppet
7 still has long term support.

The road to Puppet 8 has 6 milestones:
* Implement Ruby 3.2 support in our tooling - see
https://github.com/orgs/voxpupuli/projects/4 for details. We merged 229
PRs in the different projects we maintain and are almost done.
* Drop Puppet 6 from metadata.json - This will tell our GitHub Actions
Workflow to not generate unit tests for Puppet 6/ Ruby 2.5. See
https://github.com/pulls?q=is%3Apr+archived%3Afalse+user%3Avoxpupuli+label%3Abackwards-incompatible+%22Drop+Puppet+6+support%22+
* run modulesync to bring our newest gems to the modules. I'm currently
doing this:
https://github.com/pulls?q=is%3Aopen+is%3Apr+archived%3Afalse+label%3Amodulesync+user%3Avoxpupuli+sort%3Aupdated-desc
* Drop EoL operating systems from metadata.json
* Update our Github actions worklow. Due to the Puppet 8 released, which
wasn't reannounced, we had to implement a hack to keep our CI pipeline
alive (because of course the Puppet 8 release was broken and triggered a
bundler bug which also broke Puppet 7 unit tests). A detailed
explanation + some ranting is available in
https://github.com/voxpupuli/gha-puppet/pull/30. The result is that we
always generate a CI job with $puppetmajorversion.24 as version
constraint. We need to clean this up for Puppet 8 or wait for Puppet 8.24
* when all of this is done, we can add Puppet 8 to the metadata.json,
Then Puppet 8 jobs will automatically be added to the CI matrix.

If someone want's to help out, please join our IRC channel #voxpupuli on
Libera.Chat or the Slack channel #voxpupuli at https://slack.puppet.com/.

You want to support our work? Vox Pupuli can now accept donations! See
https://voxpupuli.org/sponsoring/


Cheers, Tim
OpenPGP_signature

Edwin Maldonado

unread,
May 12, 2023, 8:55:24 AM5/12/23
to Puppet Users
Hey Tim, 

Thanks for sharing Vox's road to Puppet 8. I'm sorry to hear about some of the issues with the recent releases.

I will bring this feedback to our Product and Engineering teams.

Thanks,

Alexander Fisher

unread,
May 15, 2023, 2:03:36 PM5/15/23
to voxp...@groups.io, puppet...@googlegroups.com
On Fri, May 12, 2023 at 10:26 AM Tim Meusel <t...@bastelfreak.de> wrote:
Good morning everybody,
I want to explain a bit what we're currently doing in our modules to
support Puppet 8.

Puppet 8 AIO packages contain Ruby 3.2. Vox Pupuli runs unit tests for
all supported major Puppet versions in a module. We run those with the
Ruby version that are in the matching AIO package. Puppet 6 used Ruby
2.5, Puppet 7 Ruby 2.7. To support Ruby 3.2 we had to update a few of
our gems, and that meant to Drop Ruby 2.4/2.5 in some places. While
we're at it, we also dropped Ruby 2.6 support because that's EoL as well
since a long time.

Just make sure to not drop ruby 2.6 support in _modules_.  Puppetserver 7 is only running with Ruby 2.6 compatibility.
I'm not sure if this means we should run our Puppet 7 spec tests against 2.6 (and/or 2.7), or just make sure we don't target anything more than 2.6 in voxpupuli-test.

I'm assuming it's only things like puppet-lint plugins, beaker etc that use voxpupuli-rubocop?

Tim Meusel

unread,
May 28, 2023, 9:05:54 AM5/28/23
to voxp...@groups.io, puppet...@googlegroups.com
Hi,
sorry I missed your email. The plan is to move voxpupuli-test to RuboCop
~> 1.50.2 and lint with Ruby 2.6 as target version. Gems used within
Puppet/Puppetserver will also use that (for example hiera-eyaml). Other
gems will use voxpupuli-rubocop and targeted at Ruby 2.7

I'm also advocating to bundle different JRuby versions in Puppetserver
7/8 (like it happened in the past). And combine that with different
support cycles. I'm not very optimistic that Puppet will support this,
but I still think it makes sense.

The new PE LTS is 2021.7.3, it requires us to support an EoL Ruby
version and that doesn't meet my understanding of "enterprise software".

Cheers,
Tim
> -=-=-=-=-=-=-=-=-=-=-=-
> Groups.io Links: You receive all messages sent to this group.
> View/Reply Online (#456): https://groups.io/g/voxpupuli/message/456
> Mute This Topic: https://groups.io/mt/98846023/153361
> Group Owner: voxpupu...@groups.io
> Unsubscribe: https://groups.io/g/voxpupuli/leave/311428/153361/692134252/xyzzy [gro...@bastelfreak.de]
> -=-=-=-=-=-=-=-=-=-=-=-
>
>
>
OpenPGP_signature
Reply all
Reply to author
Forward
0 new messages