Skip to content

Modernize: Ruby 4.0/OpenVox support, workflow baseline sync, EL8-10, simp_rpm_helper branch fix (2.3.0) - #119

Merged
silug merged 5 commits into
simp:masterfrom
silug:modernize
Aug 25, 2026
Merged

Modernize: Ruby 4.0/OpenVox support, workflow baseline sync, EL8-10, simp_rpm_helper branch fix (2.3.0)#119
silug merged 5 commits into
simp:masterfrom
silug:modernize

Conversation

@silug

@silug silug commented Aug 25, 2026

Copy link
Copy Markdown
Contributor

Summary

Brings simp-adapter up to the current SIMP tooling baseline and fixes a real bug that broke simp_rpm_helper on modern git.

Test tooling (Gemfile/Rakefile)

  • Replace the puppet gem with openvox (>= 8, < 9, overridable via PUPPET_VERSION/OPENVOX_VERSION)
  • Move to simp-rake-helpers ~> 6.0, which replaces puppetlabs_spec_helper with voxpupuli-test, and simp-beaker-helpers ~> 3.1
  • Drop unused puppetlabs_spec_helper, hiera-puppet-helper, rspec-puppet, and the Ruby < 2.6 pathspec pin
  • Drop the explicit rubocop/rubocop-rake/rubocop-rspec pins (now pinned via voxpupuli-test); keep rubocop-performance
  • Add ostruct (bundled gem as of Ruby 3.5; required by simp_rpm_helper)
  • Drop require 'simp/rake/ci' (removed with GitLab CI support in simp-rake-helpers 6)
  • Add the standard Gemfile.project/Gemfile.local/EXTRA_GEMFILE hooks

simp_rpm_helper fix (2.3.0)

git init --bare and clones of empty repos take the branch name from init.defaultBranch, which is main on modern git, so the initial git push origin master failed. (This is what the previously-failing unit test caught.) Now:

  • Repos created by simp_rpm_helper are pinned to master regardless of the host's git configuration, so the branch name stays deterministic across a fleet and matches the documented behavior
  • Updates detect the default branch from the existing central repo's HEAD (falling back to master), so a pre-existing repo with a different default branch (e.g. main) is honored
  • Regression tests cover both behaviors

RPM spec (2.3.0)

  • Accept openvox-agent as an alternative to puppet-agent via RPM boolean dependencies (supported on EL8+), including Requires(postun)
  • Drop the EL7 conditional dependency block

GitHub Actions

Acceptance nodesets

  • Replace the EL7-era CentOS/Oracle nodesets with AlmaLinux 8/9/10 and Oracle Linux 8/9 defaulting to the openvox8 collection (default nodeset: AlmaLinux 9)

Testing

On Ruby 4.0.5 with the new Gemfile:

  • bundle exec rake spec — 23 examples, 0 failures (was 1 failure from the git default-branch bug)
  • bundle exec rubocop — no offenses
  • bundle exec rake pkg:check_version pkg:compare_latest_tag pkg:create_tag_changelog pkg:check_rpm_changelog — pass
  • bundle exec rake pkg:rpm — builds simp-adapter-2.3.0-1.el8.noarch.rpm; rpm -qp --requires --recommends shows the boolean agent deps as expected

🤖 Generated with Claude Code

silug and others added 5 commits August 25, 2026 14:15
Replace the puppet gem with openvox (>= 8, < 9, overridable via
PUPPET_VERSION/OPENVOX_VERSION), and move to simp-rake-helpers ~> 6.0,
which replaces puppetlabs_spec_helper with voxpupuli-test.

- Drop puppetlabs_spec_helper, hiera-puppet-helper, rspec-puppet, and
  the Ruby < 2.6 pathspec pin, none of which are used by this project's
  unit tests
- Drop the explicit rubocop/rubocop-rake/rubocop-rspec pins, which now
  come version-pinned via voxpupuli-test; keep rubocop-performance,
  which is not a voxpupuli-test dependency
- Add ostruct, which simp_rpm_helper requires and which is a bundled
  gem as of Ruby 3.5
- Move to simp-beaker-helpers ~> 3.1 for acceptance tests
- Add the standard Gemfile.project/Gemfile.local/EXTRA_GEMFILE hooks
- Drop the require of simp/rake/ci from the Rakefile; the simp:ci_*
  tasks were removed along with GitLab CI support in simp-rake-helpers 6

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
simp_rpm_helper assumed 'git init --bare' and clones of empty repos
would produce a 'master' branch, but modern git defaults
init.defaultBranch to 'main', which made the initial 'git push origin
master' fail.  Pin HEAD to refs/heads/master explicitly in both the
central bare repo and the working clone.

RPM updates:
- Accept openvox-agent as an alternative to puppet-agent using RPM
  boolean dependencies (supported on EL8+)
- Drop the EL7 conditional dependency block; EL7 is no longer supported
- Bump version to 2.3.0

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- pr_tests: test against the openvox 8 gem on Ruby 3.2 and 3.4, plus an
  OpenVox 9 preview on Ruby 4.0; run rubocop and RELENG checks on Ruby 4
- Replace tag_deploy_asset.yml and tag_deploy_github-rpms-el7-el8.yml
  with the standardized tag_deploy_github-rpms.yml, which dispatches a
  single release_rpms run (the build-OS matrix lives in release_rpms.yml,
  see simp/puppetsync#84)
- Update release_rpms.yml to build el8/el9/el10 RPMs using the
  ghcr.io/simp/simp-<os>-build containers

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Replace the EL7-era CentOS/Oracle nodesets with AlmaLinux 8/9/10 and
Oracle Linux 8/9 nodesets that default to the openvox8 collection.
The default nodeset is now AlmaLinux 9.

Also drop the dead Travis CI badge from the README.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
simp_rpm_helper now reads the default branch from the central repo's
HEAD (falling back to 'master') and commits, pushes, and logs against
that branch, so a pre-existing repo with a different default branch
(e.g. 'main') is honored.

Repos created by simp_rpm_helper itself are still pinned to 'master'
so that the branch name is deterministic across hosts and matches the
documented behavior, rather than varying with each host's git
init.defaultBranch setting.

Adds regression tests for both behaviors.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@op-ct op-ct added this to Org Triage Aug 25, 2026
@silug
silug merged commit a08a14f into simp:master Aug 25, 2026
5 checks passed
@github-project-automation github-project-automation Bot moved this from New to Done in Org Triage Aug 25, 2026
@silug
silug deleted the modernize branch August 25, 2026 17:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

3 participants