Skip to content

Update pupmod baseline to the OpenVox 9 / Ruby 4.0 preview state - #42

Draft
silug wants to merge 5 commits into
mainfrom
openvox9-ruby4-template-refresh
Draft

Update pupmod baseline to the OpenVox 9 / Ruby 4.0 preview state#42
silug wants to merge 5 commits into
mainfrom
openvox9-ruby4-template-refresh

Conversation

@silug

@silug silug commented Jul 10, 2026

Copy link
Copy Markdown
Contributor

Updates the pupmod baseline assets to match what is actually deployed on the fleet-wide openvox9-ruby4-preview branches (71 modules, all green in CI). Do not run puppetsync from this yet — this PR only reconciles the templates with reality so the next sync starts from a truthful baseline.

Where deployed files varied, the template takes the fleet-majority variant (counts below are out of 71 modules).

Changes

Asset Update Consensus
pupmod/Gemfile No puppet/pdk/puppetlabs_spec_helper gems; openvox, openvox-strings, voxpupuli-test stack via simp-rake-helpers ~> 6.0, simp-beaker-helpers ~> 3.1, simp-rspec-puppet-facts ~> 4.0; rubocop pins removed (managed by voxpupuli-test) 26 identical; rest carry local additions
spec_helper.rb.epp require 'voxpupuli/test/spec_helper'; refreshed body (squiggly heredoc, trailing commas); simpkv conditional kept 19 + near-identical variants
pr_tests.yml checkout@v7, lint jobs on Ruby 3.2.11, Ruby Style enabled (still continue-on-error), RELENG/file-checks on 3.4.9, rake pupmod:build, 3-row spec matrix (OpenVox 8 × Ruby 3.2/3.4 + OpenVox 9 preview × Ruby 4.0, all blocking), parallel_spec, majority acceptance job see notes
pr_tests.simp-simp.yml Refreshed from simp-simp's deployed workflow (split spec suites, multi-suite acceptance) exact
tag_deploy.yml Ruby 3.4.9, rake pupmod:build (label "(PDK)" dropped) 46
release_rpms.yml ubuntu-24.04, github-script@v9, checkout@v7 65
add_new_issue_to_triage_project.yml add-to-project@v2 62

Unchanged because the fleet still matches: validate_tokens.yml, _pdkignore, _rspec, _gitignore, _gitattributes, _puppet-lint.rc.

Known divergences a future sync must handle (NOT resolved here)

  1. Acceptance job varies by module — 37 vagrant_libvirt (kernel-level tests) / 25 docker+podman / 9 none, with differing node lists. The baseline carries the majority variant (vagrant, almalinux 9+10, 23 modules). Everything else needs per-repo pr_tests.<repo_name>.yml overrides (mechanism already exists in profile::github_actions) or a data-driven EPP before the next sync — otherwise the sync will clobber the docker matrices.
  2. Gemfile local additions — e.g. gem 'observer' (27 modules, needed by compliance-profile specs on Ruby 3.4+), beaker_puppet_helpers (auditd). A static-file sync would remove them.
  3. .puppet-lint.rc — 17 modules added --no-strict_indent-check to work around the broken strict_indent v5.0.0 plugin (crashes puppet-lint). Template left at the majority (no workaround).
  4. Ruby Style continue-on-error: true — kept to match reality; removing it is Reconcile the Ruby Style (rubocop) job in the pr_tests.yml baseline — template and deployed modules have diverged #41 (rubocop is now clean fleet-wide, so it could be enforced).

🤖 Generated with Claude Code

https://claude.ai/code/session_01XCnDsYaJDLiP8z8tafz9Tp

Sync the pupmod templates with the end state deployed fleet-wide on
the openvox9-ruby4-preview branches (all green in CI):

- Gemfile: drop the puppet/pdk/puppetlabs_spec_helper gems, use
  openvox + openvox-strings + voxpupuli-test (via simp-rake-helpers
  ~> 6.0), simp-beaker-helpers ~> 3.1, simp-rspec-puppet-facts ~> 4.0
- spec_helper.rb.epp: require voxpupuli/test/spec_helper instead of
  puppetlabs_spec_helper
- pr_tests.yml: 3-row spec matrix (OpenVox 8 on Ruby 3.2/3.4 plus the
  OpenVox 9 preview on Ruby 4.0), checkout@v7, Ruby Style job enabled,
  rake pupmod:build instead of pdk build, parallel_spec, and the
  majority acceptance job (vagrant_libvirt, almalinux 9/10)
- pr_tests.simp-simp.yml: refreshed from the simp-simp repo's actual
  workflow (split spec suites, multi-suite acceptance)
- tag_deploy.yml: Ruby 3.4.9, rake pupmod:build
- release_rpms.yml / add_new_issue_to_triage_project.yml: fleet
  majority (ubuntu-24.04, github-script@v9, add-to-project@v2)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XCnDsYaJDLiP8z8tafz9Tp
The '~> 7' env survived the OpenVox migration in every deployed
tag_deploy workflow because those only run on tags; the first
post-migration release (pupmod-simp-simp 7.0.1) failed bundle install
when the Gemfile mapped it onto the openvox gem (simp-rake-helpers 6.0
requires openvox >= 8 < 9).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XCnDsYaJDLiP8z8tafz9Tp
@hcaballero2

Copy link
Copy Markdown

Verified this locally by applying the baseline to the deployed fleet and checking for no-ops: a 3-stage puppetsync session (install_gems → checkout → apply_puppet_role, nothing pushed) over 70 pupmods checked out at their deployed state — 64 at openvox9-ruby4-preview plus 6 that have merged the preview to master since this PR was written (the branch count has moved from the 71 in the description). All 70 catalogs compiled and the spec_helper EPP rendered cleanly (byte-identical in 20 repos), and the checkable consensus numbers hit exactly: 26 Gemfiles identical, 27 observer removals, 23 repos matching the majority pr_tests.yml. Every remaining diff falls into a divergence class already documented here, except the items below.

Finding Count Note
tag_deploy.yml step name: fleet still says Build Puppet module (PDK) 60/70 The label-drop is now the minority variant (looks like the post-7/13 PUPPET_VERSION fix wave kept the old name). Keep the drop (next sync renames the step in 60 repos) or re-add the label? Only open question.
.gitignore / .pdkignore / .gitattributes drift 11 / 8 / 1 These templates aren't touched by this PR, but "fleet still matches" no longer holds — worth adding to the known-divergences list for the next sync.
Gemfile comment-wording drift ~20 Cosmetic only (rubocop-performance comment text).

Also hit two pre-existing repo bugs while testing, both unrelated to this PR: role::pupmod still includes the deleted profile::pupmod::gitlab_ci (breaks catalog compile when apply_puppet_role is enabled) and summarize_repos_pipeline_results.pp crashes on a missing format::colorize function. Will address in separate PR

silug and others added 3 commits July 24, 2026 14:57
Mirrors #44 so the two branches merge cleanly in
either order.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XCnDsYaJDLiP8z8tafz9Tp
A failed Forge upload previously left nothing to download - the
tarball existed only on the runner and the GitHub release carries no
assets. Upload it before attempting the Forge POST so every tag run,
pass or fail, leaves the exact archive available from the run page.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XCnDsYaJDLiP8z8tafz9Tp
Release assets are permanent and publicly downloadable, unlike
workflow artifacts (authenticated, expiring). Uploaded before the
Forge POST so a failed publish still leaves the exact archive on the
release. --clobber keeps job re-runs idempotent.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XCnDsYaJDLiP8z8tafz9Tp
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.

2 participants