From af81d0f085a079b0cf2b435b95b8ebf176bcae21 Mon Sep 17 00:00:00 2001 From: Steven Pritchard Date: Wed, 8 Jul 2026 21:47:42 +0000 Subject: [PATCH 1/2] Add OpenVox 9 / Ruby 4.0 preview and drop the puppet gem Migrate the test toolchain off the puppet gem onto the OpenVox stack, mirroring rubygem-simp-rake-helpers and rubygem-simp-beaker-helpers: - Gemfile: openvox only (drop the puppet gem); puppet-strings -> openvox-strings (removes the transitive puppet/facter gems); drop pdk; drop puppetlabs_spec_helper; let voxpupuli-test manage rubocop/-rake/-rspec; require simp-rake-helpers ~> 6.0 and simp-beaker-helpers ~> 3.1 - Rakefile: require 'openvox-strings/tasks' (where applicable) - spec/spec_helper.rb: use voxpupuli/test/spec_helper - .fixtures.yml: drop the self-referencing "#{source_dir}" symlink (puppet_fixtures creates it automatically and does not interpolate that token) - pr_tests.yml: test OpenVox 8 on Ruby 3.2 and 3.4, plus a Ruby 4.0 / OpenVox 9 preview; build via 'rake pupmod:build' instead of 'pdk build' - tag_deploy.yml: build via 'rake pupmod:build'; bump deploy Ruby to 3.4.9 (the openvox gem requires Ruby >= 3.1) - REFERENCE.md: regenerated with openvox-strings (where it changed) Co-Authored-By: Claude Opus 4.8 Claude-Session: https://claude.ai/code/session_01XCnDsYaJDLiP8z8tafz9Tp --- .github/workflows/pr_tests.yml | 14 ++++++++++++-- .github/workflows/tag_deploy.yml | 8 ++++---- Gemfile | 19 ++++++------------- REFERENCE.md | 4 +++- Rakefile | 2 +- 5 files changed, 26 insertions(+), 21 deletions(-) diff --git a/.github/workflows/pr_tests.yml b/.github/workflows/pr_tests.yml index 8b70da5..69ee672 100644 --- a/.github/workflows/pr_tests.yml +++ b/.github/workflows/pr_tests.yml @@ -86,7 +86,7 @@ jobs: bundle exec rake pkg:compare_latest_tag[,true] bundle exec rake pkg:create_tag_changelog - name: 'Test-build the Puppet module' - run: 'bundle exec pdk build --force' + run: 'bundle exec rake pupmod:build' spec-tests: name: 'Puppet Spec' @@ -95,10 +95,20 @@ jobs: strategy: matrix: puppet: - - label: 'Puppet 8.x' + - label: 'OpenVox 8.x (Ruby 3.2)' puppet_version: '~> 8.0' ruby_version: '3.2' experimental: false + - label: 'OpenVox 8.x (Ruby 3.4)' + puppet_version: '~> 8.0' + ruby_version: '3.4' + experimental: false + # OpenVox 9 is unreleased; preview the future Ruby 4.0 / OpenVox 9 + # combo by running the OpenVox 8 gem on Ruby 4.0. + - label: 'OpenVox 9.x preview (Ruby 4.0, OpenVox 8 gem)' + puppet_version: '~> 8.0' + ruby_version: '4.0' + experimental: false fail-fast: false env: PUPPET_VERSION: ${{matrix.puppet.puppet_version}} diff --git a/.github/workflows/tag_deploy.yml b/.github/workflows/tag_deploy.yml index a299b58..5800c6a 100644 --- a/.github/workflows/tag_deploy.yml +++ b/.github/workflows/tag_deploy.yml @@ -55,14 +55,14 @@ jobs: clean: true - uses: ruby/setup-ruby@v1 with: - ruby-version: 3.2.11 + ruby-version: 3.4.9 bundler-cache: true - run: bundle exec rake pkg:check_version - run: bundle exec rake pkg:compare_latest_tag - run: bundle exec rake pkg:create_tag_changelog - run: bundle exec rake metadata_lint - name: "Test that Puppet module can build" - run: "bundle exec pdk build --force" + run: "bundle exec rake pupmod:build" create-github-release: @@ -180,10 +180,10 @@ jobs: clean: true - uses: ruby/setup-ruby@v1 with: - ruby-version: 3.2.11 + ruby-version: 3.4.9 bundler-cache: true - name: Build Puppet module (PDK) - run: bundle exec pdk build --force + run: bundle exec rake pupmod:build - name: Deploy to Puppet Forge (skipped when prerelease) run: | curl -X POST --silent --show-error --fail \ diff --git a/Gemfile b/Gemfile index 73b9747..a207b51 100644 --- a/Gemfile +++ b/Gemfile @@ -6,31 +6,24 @@ # ------------------------------------------------------------------------------ gem_sources = ENV.fetch('GEM_SERVERS', 'https://rubygems.org').split(%r{[, ]+}) -ENV['PDK_DISABLE_ANALYTICS'] ||= 'true' - gem_sources.each { |gem_source| source gem_source } group :syntax do gem 'metadata-json-lint' gem 'puppet-lint-trailing_comma-check', require: false - gem 'rubocop', '~> 1.85' + # rubocop, rubocop-rake, and rubocop-rspec are pulled in and version-pinned by + # voxpupuli-test (via simp-rake-helpers); pinning them here conflicts with its + # constraints. rubocop-performance is not a voxpupuli-test dependency, so it + # stays explicit. gem 'rubocop-performance', '~> 1.26.0' - gem 'rubocop-rake', '~> 0.7.0' - gem 'rubocop-rspec', '~> 3.9' end group :test do puppet_version = ENV.fetch('PUPPET_VERSION', ['>= 8', '< 9']) openvox_version = ENV.fetch('OPENVOX_VERSION', puppet_version) - major_puppet_version = Array(puppet_version).first.scan(%r{(\d+)(?:\.|\Z)}).flatten.first.to_i gem 'hiera-puppet-helper' - # renovate: datasource=rubygems versioning=ruby - gem('pdk', ENV.fetch('PDK_VERSION', ['>= 2.0', '< 4.0']), require: false) if major_puppet_version > 5 - # Temporarily include both openvox and puppet gems until the puppet dependency is removed from other gems - ['openvox', 'puppet'].each do |gem_name| - gem gem_name, binding.local_variable_get("#{gem_name}_version".to_sym) - end - gem 'puppet-strings' + gem 'openvox', openvox_version + gem 'openvox-strings' gem 'rake' gem 'rspec' gem 'rspec-puppet' diff --git a/REFERENCE.md b/REFERENCE.md index f625f93..8f438f8 100644 --- a/REFERENCE.md +++ b/REFERENCE.md @@ -208,6 +208,8 @@ Data type: `String` The rsync daemon package +Default value: `'rsync-daemon'` + ### `rsync::server::global` Setup the global section of /etc/rsyncd.conf. @@ -1082,7 +1084,7 @@ Default value: `false` Exclude files matching PATTERN. Multiple values may be specified as an array. Defaults to ['.svn/','.git/'] -Default value: `['.svn/','.git/']` +Default value: `['.svn/', '.git/']` ##### `hard_links` diff --git a/Rakefile b/Rakefile index b3ed91e..cdf682a 100644 --- a/Rakefile +++ b/Rakefile @@ -1,4 +1,4 @@ require 'simp/rake/pupmod/helpers' -require 'puppet-strings/tasks' +require 'openvox-strings/tasks' Simp::Rake::Pupmod::Helpers.new(File.dirname(__FILE__)) From b1f891cf919d6e60dea76d4d40adf4e1811a38df Mon Sep 17 00:00:00 2001 From: Steven Pritchard Date: Thu, 9 Jul 2026 18:24:42 +0000 Subject: [PATCH 2/2] Add observer gem for Ruby 3.4+ (removed from default gems) Co-Authored-By: Claude Opus 4.8 Claude-Session: https://claude.ai/code/session_01XCnDsYaJDLiP8z8tafz9Tp --- Gemfile | 1 + 1 file changed, 1 insertion(+) diff --git a/Gemfile b/Gemfile index a207b51..dbc41b2 100644 --- a/Gemfile +++ b/Gemfile @@ -30,6 +30,7 @@ group :test do # renovate: datasource=rubygems versioning=ruby gem 'simp-rake-helpers', ENV.fetch('SIMP_RAKE_HELPERS_VERSION', '~> 6.0') # renovate: datasource=rubygems versioning=ruby + gem 'observer', require: false gem 'simp-rspec-puppet-facts', ENV.fetch('SIMP_RSPEC_PUPPET_FACTS_VERSION', '~> 4.0.0') end