Reconcile the pupmod baseline templates with the deployed fleet and re-assert it (#88) - #42
Reconcile the pupmod baseline templates with the deployed fleet and re-assert it (#88)#42silug wants to merge 9 commits into
Conversation
|
Verified this locally by applying the baseline to the deployed fleet and checking for no-ops: a 3-stage puppetsync session (
Also hit two pre-existing repo bugs while testing, both unrelated to this PR: |
A workflow_dispatch action replacing the local shell script used to tag module releases: it validates the release (SemVer from metadata.json, tag doesn't exist, pkg:check_version, pkg:compare_latest_tag, metadata_lint) BEFORE tagging, generates the tag annotation from the CHANGELOG, and pushes the annotated tag (triggering tag_deploy.yml). Supports a dry_run input. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Pilot of the reusable-workflows model (#85): the tagging logic now lives in simp/gha-workflows as puppet_create_release_tag.yml, validated end-to-end on pupmod-simp-mockup 0.6.0 (dry run, real tag, tag_deploy, Forge publish, el8/el9/el10 RPMs — simp/pupmod-simp-mockup#104). The synced file is a workflow_dispatch shim pinned to v1.0.0; Renovate manages the pin per repo from here. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
merge_github_workflows.ensure_files lists templated workflow files to create when a repo lacks them (the task already writes full templates for missing paths). This rolls out a brand-new workflow without an apply_puppet_role session — blanket applies are currently unsafe because several enforce-strategy templates are behind the deployed fleet (e.g. spec_helper.rb would revert the voxpupuli-test migration). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
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
Adopts the best deployed variants found by auditing all 70 pupmod masters (#88): - _gitignore: the 66-repo majority (AI-assistant configuration ignores, hieradata handling) plus aide's two fixes — the directory re-include that makes '!/spec/fixtures/hieradata/*' actually work, and /Gemfile.local (a documented override file) - _pdkignore (62/69 majority): /AGENTS.md - _puppet-lint.rc: adopt the --no-strict_indent-check workaround that 16 modules carry — strict_indent 5.0.0 crashes puppet-lint on some valid manifests, so enforcing the majority (no flag) would break those 16 repos' Puppet Style jobs. Disabling the broken check fleet-wide is the safe baseline; remove when fixed upstream. The other enforce files (.gitattributes, .rspec) and the triage-project workflow already match the fleet majority, and spec_helper.rb.epp renders byte-identically to the 20-repo majority variant (the smaller variants differ only by one manifest_dir line and heredoc style — stragglers of the same migration). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The specs' munges hardcoded the Puppet-7-era template lines (puppet/pdk gems, simp-rake-helpers range pin); they now exercise the openvox gem chain and the '~> 6.0' pin. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
501474a to
11fcb67
Compare
Closes #88. Rebased onto the #43 branch (
create-release-tag-workflow), so it merges cleanly once #43 lands.Updates the puppetsync templates to match what is actually deployed on the fleet's master branches, so the first blanket
apply_puppet_rolesession since the OpenVox migration re-asserts the baseline instead of reverting it. The original draft reconciled against theopenvox9-ruby4-previewbranches; those changes have since become master reality, and the workflow hunks of the original draft (pr_tests, tag_deploy, release_rpms) were superseded by #58 and #44 — the rebase drops them.What's left, verified against a fresh audit of all 70 pupmod masters:
Gemfile— the OpenVox-era baseline (openvox/openvox-strings, voxpupuli-test stack viasimp-rake-helpers ~> 6.0, no puppet/pdk/puppetlabs_spec_helper, rubocop pins removed). Matches the 27-repo majority except a template-side comment. Bootstrap-strategy, so existing repos are untouched (Renovate +merge_gemfilemanage them); this is what new repos start from.spec_helper.rb.epp— the voxpupuli-test variant; renders byte-identically to the 20-repo majority. The other variants are stragglers of the same migration (onemanifest_dirline, heredoc style) that the sync will normalize._gitignore: the 66-repo majority (AI-assistant ignores, etc.) plus aide's two fixes — the!/spec/fixtures/hieradata/directory re-include that makes the file-level re-include actually work, and/Gemfile.local(a documented override file). aide was ahead of the majority here, not behind._pdkignore:/AGENTS.md(62-repo majority)._puppet-lint.rc: adopt--no-strict_indent-checkfleet-wide — strict_indent 5.0.0 crashes puppet-lint on some valid manifests and 16 repos already carry the workaround; enforcing the majority would have broken their Puppet Style jobs. Commented for removal when fixed upstream..gitattributes,.rspec, and the triage-project workflow already match the fleet; untouched.PUPPET_VERSIONunpinned-era fix in the four non-pupmodtag_deployvariants (rubygem/github-only), carried over from the original draft.20260813-baseline-refresh.yaml(nowlatest) — the blanketapply_puppet_rolesession. Expected diffs per repo: spec_helper normalization, the puppet-lint flag, gitignore/pdkignore for the handful off-majority, pluscreate_release_tag.ymlbootstrap on any repo whose Add create_release_tag.yml for pupmod repos as a thin caller of simp/gha-workflows (#85 pilot) #43-rollout PR hasn't merged yet.Verified: 212 rspec + 20 BoltSpec examples green (merge_gemfile specs updated for the new template); managed-file contract passes; local e2e apply against acpid/aide/crypto_policy produces exactly the expected per-repo diffs — and aide (whose
.gitignoreis the best deployed variant) comes through untouched.🤖 Generated with Claude Code