Skip to content

(MODULES-11704) Add Puppet 9 support#630

Open
imaqsood wants to merge 1 commit into
mainfrom
MODULES-11704
Open

(MODULES-11704) Add Puppet 9 support#630
imaqsood wants to merge 1 commit into
mainfrom
MODULES-11704

Conversation

@imaqsood

Copy link
Copy Markdown
Contributor

Summary

Adds Puppet 9 support to puppetlabs-java, mirroring the completed work in puppetlabs-motd / inifile / apache.

Changes

  • metadata.json — puppet requirement kept at >= 8.0.0 < 10.0.0. Pruned EOL / no-agent platforms and refreshed the supported OS list:
    • Removed CentOS (all) and OracleLinux (only had 7).
    • Removed RedHat 7, Debian 10, SLES 12, Ubuntu 18.04.
    • Added RedHat 10; Debian 13 already present.
    • Final OS list: RedHat 8/9/10, Debian 11/12/13, Ubuntu 20.04/22.04/24.04, SLES 15, Rocky 8, AlmaLinux 8.
  • Gemfile (VARIANT A) — added the puppet9_stream flag; replaced the earlier partial if puppet_version...8.99|9 puppet/facter block with the canonical one (facter now ['>= 4.11', ...]) resolving Puppet 9 prerelease gems from PUPPET_GEM_SOURCE (falling back to puppetcore when empty). Gated the newer lint stack behind the Puppet 9 (8.99.x) stream: voxpupuli-puppet-lint-plugins ~> 7.0, puppetlabs_spec_helper from a git branch, and puppet_litmus from a git branch when PUPPET_FORGE_TOKEN is set (released ~> 2.0 fallback otherwise). puppet-lint 4.x crashes on Ruby 3.4+, so 7/8 keep the released versions.
  • Rakefile — disabled strict_indent (its expected indentation differs incompatibly between the 7/8 and 9 lint lanes).
  • .github/workflows/ci.yml — Spec job now uses cat-github-actions ...module_ci.yml@MODULES-11700-puppet9-gem-source, installs libcurl4-openssl-dev (patron native extension), and inherits secrets. Acceptance flags now exclude ubuntu-20.04 from the Puppet 9 lane only (--collection-platform-exclude 9:ubuntu-20.04).
  • manifests/download.pp — added a trailing comma required by the puppet-lint 5.x trailing_comma check (Puppet 9 lane); no behaviour change.

Temporary branch dependencies

  • puppetlabs_spec_helperMODULES-11700-allow-puppet-lint-5 (allows puppet-lint 5.x)
  • puppet_litmusMODULES-11700-collection-platform-exclude (adds --collection-platform-exclude to matrix_from_metadata_v3)
  • cat-github-actions@MODULES-11700-puppet9-gem-source

Local verification

  • OLD lane (Puppet 8, Ruby 3.1.1): rake lint exit 0; unit specs 195 examples, 0 failures.
  • NEW lane (Puppet 9 lint tooling, Ruby 3.4.6, forced lint5): rake lint exit 0.

https://perforce.atlassian.net/browse/MODULES-11704

Widen the puppet requirement to < 10.0.0 and refresh supported OSes
(drop EOL/no-agent platforms; add RedHat 10 and Debian 13 where applicable).

Gate the newer lint stack (puppet-lint 5.x) behind the Puppet 9 (8.99.x)
stream since puppet-lint 4.x crashes on Ruby 3.4+, resolve Puppet 9
prerelease gems from PUPPET_GEM_SOURCE, and disable strict_indent (its
expected indentation differs incompatibly between the 7/8 and 9 lint lanes).

Point the Spec workflow at the Puppet 9 gem-source branch (installing
libcurl headers for the patron native extension) and exclude ubuntu-20.04
from the Puppet 9 acceptance lane only.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@imaqsood
imaqsood requested review from a team and bastelfreak as code owners July 22, 2026 10:26
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