Skip to content

Replace puppetlabs_spec_helper with puppet_fixtures (Ruby 4.0 support) - #283

Merged
silug merged 1 commit into
simp:masterfrom
silug:replace-puppetlabs-spec-helper
Jun 25, 2026
Merged

Replace puppetlabs_spec_helper with puppet_fixtures (Ruby 4.0 support)#283
silug merged 1 commit into
simp:masterfrom
silug:replace-puppetlabs-spec-helper

Conversation

@silug

@silug silug commented Jun 24, 2026

Copy link
Copy Markdown
Contributor

simp-beaker-helpers required puppetlabs_spec_helper/tasks/fixtures for its fixture rake tasks. puppetlabs_spec_helper pulls in puppet-syntax < 5, which depends on the puppet gem and its facter dependency, and facter does not support Ruby >= 4.0 -- so anything depending on simp-beaker-helpers (e.g. simp-rake-helpers) could not run on Ruby 4.

Switch to puppet_fixtures, the OpenVox-ecosystem fixtures gem (used by voxpupuli-test), which supports Ruby 4.0:

  • beaker.rb: require 'puppet_fixtures/tasks'; the beaker:suites task depends on 'fixtures:prep' instead of 'spec_prep'
  • beaker_helpers.rb: ensure_fixture_modules runs 'rake fixtures:prep'
  • Declare puppet_fixtures as a runtime dependency
  • Drop the dev puppetlabs_spec_helper from the Gemfile

Verified: specs pass and the fixtures:prep/fixtures:clean/beaker:suites tasks load on Ruby 3.2 and Ruby 4.0.

@op-ct op-ct added this to Org Triage Jun 24, 2026
@silug
silug force-pushed the replace-puppetlabs-spec-helper branch 2 times, most recently from d7d275b to a0e268a Compare June 24, 2026 22:13
@silug
silug marked this pull request as draft June 24, 2026 22:24
nick-markowski
nick-markowski previously approved these changes Jun 25, 2026
@silug
silug force-pushed the replace-puppetlabs-spec-helper branch from a0e268a to aa6f9c5 Compare June 25, 2026 13:36
Dropping Puppet 7 / Ruby 2.7 support is a breaking change, so bump to 3.0.0.

simp-beaker-helpers required `puppetlabs_spec_helper/tasks/fixtures` for its
fixture rake tasks. puppetlabs_spec_helper pulls in puppet-syntax < 5, which
depends on the `puppet` gem and its `facter` dependency, and `facter` does not
support Ruby >= 4.0 -- so anything depending on simp-beaker-helpers (e.g.
simp-rake-helpers) could not run on Ruby 4.

- Replace `puppet_fixtures` for `puppetlabs_spec_helper/tasks/fixtures`; the
  beaker:suites task depends on 'fixtures:prep' and ensure_fixture_modules runs
  'rake fixtures:prep'. Declare puppet_fixtures as a runtime dependency.
- Drop the Puppet 7.x / Ruby 2.7 entries from the pr_tests and pr_acceptance
  matrices, and relabel the remaining matrix entries to OpenVox 8.x (they
  already install the openvox gem). CI now tests OpenVox 8 only.
- Raise the default OpenVox gem floor to >= 8.0.0; point tag_deploy at '~> 8'.
- get_puppet_install_info now honours OpenVox-named env vars (OPENVOX_VERSION,
  BEAKER_OPENVOX_COLLECTION, etc.) with precedence over the Puppet-named
  equivalents, which remain as fallbacks.

Verified: specs pass (23 examples) and the fixtures:prep/fixtures:clean/
beaker:suites tasks load on Ruby 3.2 and Ruby 4.0.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@silug
silug marked this pull request as ready for review June 25, 2026 13:48
@silug
silug force-pushed the replace-puppetlabs-spec-helper branch from aa6f9c5 to c805dfa Compare June 25, 2026 13:48
@silug
silug merged commit ec0fa27 into simp:master Jun 25, 2026
8 checks passed
@github-project-automation github-project-automation Bot moved this from New to Done in Org Triage Jun 25, 2026
@silug
silug deleted the replace-puppetlabs-spec-helper branch June 25, 2026 14:00
@silug silug removed this from Org Triage Jun 26, 2026
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.

3 participants