puppetlabs / puppet-lint

Check that your Puppet manifests conform to the style guide
https://puppetlabs.github.io/puppet-lint/
MIT License
18 stars 12 forks source link

Add Ruby 3.3 testing #196

Closed bastelfreak closed 2 months ago

bastelfreak commented 3 months ago

Summary

Provide a detailed description of all the changes present in this pull request.

Additional Context

Add any additional context about the problem here.

Related Issues (if any)

Mention any related issues or pull requests.

Checklist

codecov[bot] commented 3 months ago

Codecov Report

All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 93.19%. Comparing base (b5ec443) to head (48d59dc).

Additional details and impacted files ```diff @@ Coverage Diff @@ ## main #196 +/- ## ======================================= Coverage 93.19% 93.19% ======================================= Files 55 55 Lines 1792 1792 ======================================= Hits 1670 1670 Misses 122 122 ```

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

pmcmaw commented 3 months ago

Hey @bastelfreak, as a team we have had a chat and we plan on continuing to test in line with the versions of Ruby that the agent is shipped with (https://www.puppet.com/docs/puppet/7/platform_lifecycle#about_agent) to keep in sync.

LTS: 7.29.1 Ruby 2.7.8 Latest: 8.5.2 Ruby 3.2.3

We will update the versions accordingly if and when required, however we have agreed that adding Ruby 3.3 to the test matrix would not be beneficial enough for us to warrant the additional load across our suite of tools. If you have any strong feeling about this please do not hesitate to reach out to myself or the team.

bastelfreak commented 3 months ago

Hi @pmcmaw ,

I understand that it makes sense to use the Ruby versions used in the Puppet Agent AIO packages for unit tests. Vox Pupuli does the same. However I think that doesn't make sense for gems like puppet-lint. puppet-lint isn't used during unit tests. puppet-lint is used for static code validation in CI and locally. And my impression is that people install puppet-lint locally with their system Ruby, so puppet-lint should support it. Ruby 3.3 got released almost half a year ago and distributions start to ship it or prepare it. Also it doesn't make sense / doesn't bring any benefit to use an old Ruby version in CI for static code analysis. In contrast the old versions are often even slower compared to new MRI versions.

And does that add so much more load on the CI setup? And the jobs run on the public GitHub runners, does Puppet/Perforce pay per runner?

ekohl commented 2 months ago

@pmcmaw I think as a developer you should always be forward looking. We're not asking you to track Ruby development versions, but at least be compatible with the latest tooling available. Fedora 40 will ship it with Ruby 3.3 and puppet-lint is a developer tool. As a developer I want to be able to use the latest and greatest.

As a bonus, once Puppet does want to update its bundled version, you're already prepared for it. It won't be a big deal since over time you've done the work. If you don't update, it becomes a big deal and you're more likely to push off to the future.

pmcmaw commented 2 months ago

@ekohl @bastelfreak I am following up on this particular request and wanted to drop a comment to acknowledge that I am not ignoring yous. 👍