Skip to content

(MODULES-11710) Add Puppet 9 support#1482

Draft
skyamgarp wants to merge 1 commit into
mainfrom
MODULES-11710
Draft

(MODULES-11710) Add Puppet 9 support#1482
skyamgarp wants to merge 1 commit into
mainfrom
MODULES-11710

Conversation

@skyamgarp

Copy link
Copy Markdown
Contributor

Summary

Adds Puppet 9 support to puppetlabs-stdlib, following the same pattern established in puppetlabs-apache#2638 (MODULES-11700).

Jira: MODULES-11710

What's included

  • metadata.json: raises the Puppet upper bound (< 9.0.0< 10.0.0) and drops EOL platforms that Puppet 8/9 don't ship agents for (EL7 family, CentOS 8, Debian 10, SLES 12, Ubuntu 18.04).
  • Version-conditional lint tooling (Gemfile): the Puppet 9 lane runs on Ruby 3.4+, where puppet-lint 4.x crashes; the Puppet 7/8 lane runs on Ruby 3.1, where voxpupuli-puppet-lint-plugins ~> 7.0 won't resolve. Gated behind a puppet9_stream check derived from PUPPET_GEM_VERSION, keeping released tooling on 7/8.
  • strict_indent disabled (Rakefile): puppet-lint-strict_indent-check demands opposite indentation between the 3.x (7/8) and 5.x (9) plugin versions, so no single manifest layout passes both lanes.
  • Puppet 9 gem source (Gemfile): the 8.99.x prerelease is fetched via PUPPET_GEM_SOURCE (internal Artifactory), reachable over Twingate in CI.
  • ci.yml: Spec job points at the cat-github-actions branch that wires PUPPET_GEM_SOURCE/Twingate for the Puppet 9 lane; Acceptance flags gain --collection-platform-exclude 9:ubuntu-20.04 (Focal has no Puppet 9 agent).

Dependencies

Like the Apache PR, this temporarily pins two companion branches; both should revert to released refs once merged:

  • puppet_litmus #627 — adds --collection-platform-exclude to matrix_from_metadata_v3 (Gemfile pins the branch).
  • cat-github-actions #182 — passes PUPPET_GEM_SOURCE + Twingate for the Puppet 9 spec lane (ci.yml Spec pins the branch).

Testing

  • bundle exec rake lint clean on Ruby 3.1 (Puppet 7/8 lane, current tooling).
  • bundle exec metadata-json-lint metadata.json clean.
  • Full classes/defines/functions/unit spec suite (1758 examples) passes; on_supported_os-driven specs correctly reflect the trimmed OS matrix.
  • Puppet 9 (Ruby 3.4 + Twingate/Artifactory) lane cannot be exercised locally; relies on CI once the companion branches are available.

🤖 Generated with Claude Code

Bumps the puppet version_requirement to < 10.0.0, drops EOL platforms
Puppet 8/9 don't ship agents for (EL7 family, CentOS 8, Debian 10,
SLES 12, Ubuntu 18.04), gates lint tooling (voxpupuli-puppet-lint-plugins,
puppetlabs_spec_helper, puppet_litmus) and the puppet/facter gem source
behind a Puppet 9 (8.99.x) stream check in the Gemfile, disables the
strict_indent lint check whose rules conflict between the two plugin
versions, and wires ci.yml to the companion branches needed for the
Puppet 9 spec/acceptance lanes.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant