You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Widens the puppet requirement in metadata.json to >= 8.0.0 < 10.0.0. The
module's CI tooling can't resolve or lint under Puppet 9 as-is, so most of
this change is dependency and workflow plumbing to make the Puppet 9 lane
actually run: voxpupuli-puppet-lint-plugins bumped to ~> 7.0 (puppet-lint
5.x), puppetlabs_spec_helper and puppet_litmus temporarily pinned to git
main (their released versions don't yet carry the puppet-lint relaxation
and --collection-platform-exclude respectively), and the Gemfile resolves
Puppet 9 (8.99.x) prereleases from PUPPET_GEM_SOURCE with a puppetcore
fallback and warning when that secret isn't configured.
ci.yml, nightly.yml and mend.yml gain ruby_version: "3.2" (voxpupuli
puppet-lint-plugins 7.0 requires ruby >= 3.2). The Acceptance flags in
ci.yml/nightly.yml gain --collection-platform-exclude for 9:redhat-7,
9:centos-7, 9:oraclelinux-7, 9:scientific-7 (all el7, no Puppet 9 agent),
9:debian-10, 9:ubuntu-18.04 and 9:ubuntu-20.04 -- confirmed against this
module's own metadata.json and matrix_from_metadata_v3 output, not copied
from another module. ci.yml/nightly.yml are marked unmanaged in .sync.yml
since pdk-templates can't express ruby_version or the collection excludes.
On the Ruby 4 / Puppet 9 lane, puppet_litmus pulls in bolt 4.x, which
depends on faraday-patron -> patron; patron builds a libcurl native
extension and the CI runner has no libcurl headers, so the Spec job in
ci.yml/nightly.yml now sets additional_packages: "libcurl4-openssl-dev"
to install them before bundle install (same fix as puppetlabs-lvm#391).
No manifest/type/provider/function/spec behaviour changes.
Follow-up: the two temporary git-branch pins from the paragraph above have
since been superseded by released gems -- puppetlabs_spec_helper 9.0.0
(relaxes puppet-lint to ~> 5.x, matching voxpupuli-puppet-lint-plugins
~> 7.0) and puppet_litmus 2.8.0 (adds --collection-platform-exclude to
matrix_from_metadata_v3). Both Gemfile entries are now plain, released
version constraints, matching the pattern puppetlabs-lvm#391 landed with.
puppetlabs_spec_helper 9.0.0 also renamed its puppet-syntax dependency to
puppetlabs-syntax, so the Rakefile's require was updated to match --
without it, nothing in the bundle provides the old puppet-syntax path and
the Rakefile raises LoadError.
Opus review pass: tightened the Gemfile's puppet_litmus constraint from
'~> 2.5' to '~> 2.8', since --collection-platform-exclude (which
ci.yml/nightly.yml pass unconditionally) only exists from 2.8.0 onward and
older 2.x releases hard-fail with OptionParser::InvalidOption instead of
degrading gracefully. Added a Gemfile: overrides: block in .sync.yml
pinning puppetlabs_spec_helper to '~> 9.0' and puppet_litmus to '~> 2.8',
so a scheduled `pdk update` can't silently widen back to pdk-templates'
own looser defaults ('>= 8.0' / '~> 2.5') and reintroduce the puppet-lint
4.0/collection-exclude problems this PR fixes. Also corrected the existing
.sync.yml comment on ci.yml/nightly.yml's unmanaged: true: it previously
implied --collection-platform-exclude/acceptance_flags couldn't be
expressed via the templates, but acceptance_flags is a real, supported
.sync.yml key (this file already uses it below) -- the only genuinely
inexpressible inputs are ruby_version and additional_packages, which are
now the sole stated reason.
Follow-up (from puppetlabs-windows_eventlog#100, MODULES-11729): dropped the
PUPPET_GEM_SOURCE-based Puppet 9 prerelease resolution. Confirmed via
windows_eventlog's own CI run (job 97686128656) that puppet 9.0.0 is now a real,
final release on the standard puppetcore source (rubygems-puppetcore.puppet.com,
reached via PUPPET_FORGE_TOKEN) with no PUPPET_GEM_SOURCE/Twingate source needed
-- that CI run resolved `puppet (9.0.0)` and `Bundle complete!` with
PUPPET_GEM_SOURCE unset. This module's own PUPPET_GEM_SOURCE-based path was still
resolving the older `8.99.0.113.gef6e57f` internal prerelease build instead of
the real release.
An Opus review of an initial version of this fix (which called `location_for`
with a third `source:` opts argument, matching windows_eventlog and puppetlabs-
vcsrepo's Gemfile) caught that this module's `location_for` is a 2-arg variant
that doesn't accept or merge a source option -- that call would have raised
`Bundler::Dsl::DSLError: wrong number of arguments` on every Puppet 9 CI job,
failing before gem resolution even starts. Used the literal array form instead
(this module has no `gemsource_puppetcore` variable, so the literal source URL
string is used, matching the style already used in the PUPPET_FORGE_TOKEN-gated
branch immediately below). The Puppet-9-must-be-checked-first ordering guard
against that branch's hardcoded `puppet ~> 8.11` is preserved.
Re-verified with a direct Bundler::Dsl.evaluate under PUPPET_GEM_VERSION="~> 9.0"
(no ArgumentError this time) and a full local run: rake lint clean, rake spec
62 examples, 0 failures.
Co-Authored-By: Claude <noreply@anthropic.com>
0 commit comments