From e6a38691ecd0f5de122dd0fc80e03b33f6c17bc3 Mon Sep 17 00:00:00 2001 From: Marty Ewings Date: Wed, 20 Nov 2024 16:55:45 +0000 Subject: [PATCH 1/3] Revert "(maint) Pdk update" --- .gitignore | 9 +---- .pdkignore | 10 +---- .puppet-lint.rc | 8 ---- .rubocop.yml | 15 ------- .sync.yml | 4 +- .vscode/extensions.json | 2 +- Gemfile | 27 +++++-------- Rakefile | 90 ++++++++++++++++++++++++++++++++++++----- metadata.json | 4 +- spec/default_facts.yml | 9 ++--- spec/spec_helper.rb | 5 +-- 11 files changed, 103 insertions(+), 80 deletions(-) diff --git a/.gitignore b/.gitignore index 2803e566..988dcbbe 100644 --- a/.gitignore +++ b/.gitignore @@ -16,10 +16,9 @@ /log/ /pkg/ /spec/fixtures/manifests/ -/spec/fixtures/modules/* +/spec/fixtures/modules/ /tmp/ /vendor/ -/.vendor/ /convert_report.txt /update_report.txt .DS_Store @@ -27,9 +26,3 @@ .envrc /inventory.yaml /spec/fixtures/litmus_inventory.yaml -.resource_types -.modules -.task_cache.json -.plan_cache.json -.rerun.json -bolt-debug.log diff --git a/.pdkignore b/.pdkignore index 84684be6..d37bad6d 100644 --- a/.pdkignore +++ b/.pdkignore @@ -16,10 +16,9 @@ /log/ /pkg/ /spec/fixtures/manifests/ -/spec/fixtures/modules/* +/spec/fixtures/modules/ /tmp/ /vendor/ -/.vendor/ /convert_report.txt /update_report.txt .DS_Store @@ -27,16 +26,9 @@ .envrc /inventory.yaml /spec/fixtures/litmus_inventory.yaml -.resource_types -.modules -.task_cache.json -.plan_cache.json -.rerun.json -bolt-debug.log /.fixtures.yml /Gemfile /.gitattributes -/.github/ /.gitignore /.pdkignore /.puppet-lint.rc diff --git a/.puppet-lint.rc b/.puppet-lint.rc index 28b510f4..ede7ae50 100644 --- a/.puppet-lint.rc +++ b/.puppet-lint.rc @@ -1,12 +1,4 @@ ---fail-on-warnings --relative ---no-80chars-check ---no-140chars-check ---no-class_inherits_from_params_class-check ---no-autoloader_layout-check ---no-documentation-check ---no-single_quote_string_with_variables-check --no-unquoted_string_in_case-check --no-strict_indent-check --no-manifest_whitespace_opening_brace_befor-check ---ignore-paths=.vendor/**/*.pp,.bundle/**/*.pp,pkg/**/*.pp,spec/**/*.pp,tests/**/*.pp,types/**/*.pp,vendor/**/*.pp diff --git a/.rubocop.yml b/.rubocop.yml index b14d1ce1..732c7b23 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -3,7 +3,6 @@ require: - rubocop-performance - rubocop-rspec AllCops: - NewCops: enable DisplayCopNames: true TargetRubyVersion: '2.6' Include: @@ -72,8 +71,6 @@ Style/TrailingCommaInArrayLiteral: Style/SymbolArray: Description: Using percent style obscures symbolic intent of array's contents. EnforcedStyle: brackets -Layout/BlockAlignment: - Enabled: false RSpec/MessageSpies: EnforcedStyle: receive Style/Documentation: @@ -376,8 +373,6 @@ RSpec/VoidExpect: Enabled: false RSpec/Yield: Enabled: false -Security/Open: - Enabled: false Style/AccessModifierDeclarations: Enabled: false Style/AccessorGrouping: @@ -530,8 +525,6 @@ Lint/DuplicateBranch: Enabled: false Lint/DuplicateMagicComment: Enabled: false -Lint/DuplicateMatchPattern: - Enabled: false Lint/DuplicateRegexpCharacterClassElement: Enabled: false Lint/EmptyBlock: @@ -634,10 +627,6 @@ RSpec/SubjectDeclaration: Enabled: false RSpec/VerifiedDoubleReference: Enabled: false -Security/CompoundHash: - Enabled: false -Security/IoMethods: - Enabled: false Style/ArgumentsForwarding: Enabled: false Style/ArrayIntersect: @@ -648,8 +637,6 @@ Style/ComparableClamp: Enabled: false Style/ConcatArrayLiterals: Enabled: false -Style/DataInheritance: - Enabled: false Style/DirEmpty: Enabled: false Style/DocumentDynamicEvalDefinition: @@ -718,8 +705,6 @@ Style/RedundantHeredocDelimiterQuotes: Enabled: false Style/RedundantInitialize: Enabled: false -Style/RedundantLineContinuation: - Enabled: false Style/RedundantSelfAssignmentBranch: Enabled: false Style/RedundantStringEscape: diff --git a/.sync.yml b/.sync.yml index f85b1252..5854c643 100644 --- a/.sync.yml +++ b/.sync.yml @@ -51,6 +51,6 @@ Gemfile: optional: ":development": - gem: github_changelog_generator - - gem: 'faraday' + - gem: 'octokit' version: - '= 1.10.3' + '= 4.21.0' diff --git a/.vscode/extensions.json b/.vscode/extensions.json index 6da8d472..2f1e4f73 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -1,6 +1,6 @@ { "recommendations": [ "puppet.puppet-vscode", - "Shopify.ruby-lsp" + "rebornix.Ruby" ] } diff --git a/Gemfile b/Gemfile index 8524de06..b58af97e 100644 --- a/Gemfile +++ b/Gemfile @@ -19,34 +19,27 @@ group :development do gem "json", '= 2.5.1', require: false if Gem::Requirement.create(['>= 3.0.0', '< 3.0.5']).satisfied_by?(Gem::Version.new(RUBY_VERSION.dup)) gem "json", '= 2.6.1', require: false if Gem::Requirement.create(['>= 3.1.0', '< 3.1.3']).satisfied_by?(Gem::Version.new(RUBY_VERSION.dup)) gem "json", '= 2.6.3', require: false if Gem::Requirement.create(['>= 3.2.0', '< 4.0.0']).satisfied_by?(Gem::Version.new(RUBY_VERSION.dup)) - gem "racc", '~> 1.4.0', require: false if Gem::Requirement.create(['>= 2.7.0', '< 3.0.0']).satisfied_by?(Gem::Version.new(RUBY_VERSION.dup)) - gem "deep_merge", '~> 1.2.2', require: false gem "voxpupuli-puppet-lint-plugins", '~> 5.0', require: false - gem "facterdb", '~> 2.1', require: false - gem "metadata-json-lint", '~> 4.0', require: false - gem "rspec-puppet-facts", '~> 4.0', require: false + gem "facterdb", '~> 1.18', require: false + gem "metadata-json-lint", '~> 3.0', require: false + gem "puppetlabs_spec_helper", '~> 6.0', require: false + gem "rspec-puppet-facts", '~> 2.0', require: false + gem "codecov", '~> 0.2', require: false gem "dependency_checker", '~> 1.0.0', require: false gem "parallel_tests", '= 3.12.1', require: false gem "pry", '~> 0.10', require: false - gem "simplecov-console", '~> 0.9', require: false + gem "simplecov-console", '~> 0.5', require: false gem "puppet-debugger", '~> 1.0', require: false - gem "rubocop", '~> 1.50.0', require: false + gem "rubocop", '= 1.48.1', require: false gem "rubocop-performance", '= 1.16.0', require: false gem "rubocop-rspec", '= 2.19.0', require: false gem "rb-readline", '= 0.5.5', require: false, platforms: [:mswin, :mingw, :x64_mingw] - gem "rexml", '>= 3.0.0', '< 3.2.7', require: false gem "github_changelog_generator", require: false - gem "faraday", '= 1.10.3', require: false -end -group :development, :release_prep do - gem "puppet-strings", '~> 4.0', require: false - gem "puppetlabs_spec_helper", '~> 8.0', require: false - gem "puppet-blacksmith", '~> 7.0', require: false + gem "octokit", '= 4.21.0', require: false end group :system_tests do - gem "puppet_litmus", '~> 1.0', require: false, platforms: [:ruby, :x64_mingw] - gem "CFPropertyList", '< 3.0.7', require: false, platforms: [:mswin, :mingw, :x64_mingw] - gem "serverspec", '~> 2.41', require: false + gem "puppet_litmus", '~> 1.0', require: false, platforms: [:ruby, :x64_mingw] + gem "serverspec", '~> 2.41', require: false end puppet_version = ENV['PUPPET_GEM_VERSION'] diff --git a/Rakefile b/Rakefile index b34ea431..db74d381 100644 --- a/Rakefile +++ b/Rakefile @@ -1,21 +1,91 @@ # frozen_string_literal: true require 'bundler' -require 'puppet_litmus/rake_tasks' if Gem.loaded_specs.key? 'puppet_litmus' +require 'puppet_litmus/rake_tasks' if Bundler.rubygems.find_name('puppet_litmus').any? require 'puppetlabs_spec_helper/rake_tasks' require 'puppet-syntax/tasks/puppet-syntax' -require 'puppet-strings/tasks' if Gem.loaded_specs.key? 'puppet-strings' +require 'github_changelog_generator/task' if Bundler.rubygems.find_name('github_changelog_generator').any? +require 'puppet-strings/tasks' if Bundler.rubygems.find_name('puppet-strings').any? + +def changelog_user + return unless Rake.application.top_level_tasks.include? "changelog" + returnVal = "puppetlabs" || JSON.load(File.read('metadata.json'))['author'] + raise "unable to find the changelog_user in .sync.yml, or the author in metadata.json" if returnVal.nil? + puts "GitHubChangelogGenerator user:#{returnVal}" + returnVal +end + +def changelog_project + return unless Rake.application.top_level_tasks.include? "changelog" + + returnVal = nil + returnVal ||= begin + metadata_source = JSON.load(File.read('metadata.json'))['source'] + metadata_source_match = metadata_source && metadata_source.match(%r{.*\/([^\/]*?)(?:\.git)?\Z}) + + metadata_source_match && metadata_source_match[1] + end + + raise "unable to find the changelog_project in .sync.yml or calculate it from the source in metadata.json" if returnVal.nil? + + puts "GitHubChangelogGenerator project:#{returnVal}" + returnVal +end + +def changelog_future_release + return unless Rake.application.top_level_tasks.include? "changelog" + returnVal = "v%s" % JSON.load(File.read('metadata.json'))['version'] + raise "unable to find the future_release (version) in metadata.json" if returnVal.nil? + puts "GitHubChangelogGenerator future_release:#{returnVal}" + returnVal +end PuppetLint.configuration.send('disable_relative') -PuppetLint.configuration.send('disable_80chars') -PuppetLint.configuration.send('disable_140chars') -PuppetLint.configuration.send('disable_class_inherits_from_params_class') -PuppetLint.configuration.send('disable_autoloader_layout') -PuppetLint.configuration.send('disable_documentation') -PuppetLint.configuration.send('disable_single_quote_string_with_variables') PuppetLint.configuration.send('disable_unquoted_string_in_case') PuppetLint.configuration.send('disable_strict_indent') PuppetLint.configuration.send('disable_manifest_whitespace_opening_brace_befor') -PuppetLint.configuration.fail_on_warnings = true -PuppetLint.configuration.ignore_paths = [".vendor/**/*.pp", ".bundle/**/*.pp", "pkg/**/*.pp", "spec/**/*.pp", "tests/**/*.pp", "types/**/*.pp", "vendor/**/*.pp"] + + +if Bundler.rubygems.find_name('github_changelog_generator').any? + GitHubChangelogGenerator::RakeTask.new :changelog do |config| + raise "Set CHANGELOG_GITHUB_TOKEN environment variable eg 'export CHANGELOG_GITHUB_TOKEN=valid_token_here'" if Rake.application.top_level_tasks.include? "changelog" and ENV['CHANGELOG_GITHUB_TOKEN'].nil? + config.user = "#{changelog_user}" + config.project = "#{changelog_project}" + config.future_release = "#{changelog_future_release}" + config.exclude_labels = ['maintenance'] + config.header = "# Change log\n\nAll notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](http://semver.org)." + config.add_pr_wo_labels = true + config.issues = false + config.merge_prefix = "### UNCATEGORIZED PRS; LABEL THEM ON GITHUB" + config.configure_sections = { + "Changed" => { + "prefix" => "### Changed", + "labels" => ["backwards-incompatible"], + }, + "Added" => { + "prefix" => "### Added", + "labels" => ["enhancement", "feature"], + }, + "Fixed" => { + "prefix" => "### Fixed", + "labels" => ["bug", "documentation", "bugfix"], + }, + } + end +else + desc 'Generate a Changelog from GitHub' + task :changelog do + raise < 1.15' + condition: "Gem::Version.new(RUBY_VERSION.dup) >= Gem::Version.new('2.3.0')" +EOM + end +end diff --git a/metadata.json b/metadata.json index c7ad1bc9..3ec6cb63 100644 --- a/metadata.json +++ b/metadata.json @@ -81,7 +81,7 @@ "version_requirement": ">= 7.18.0 < 9.0.0" } ], - "pdk-version": "3.3.0", + "pdk-version": "2.7.1", "template-url": "https://github.com/puppetlabs/pdk-templates#main", - "template-ref": "heads/main-0-gd3cc13f" + "template-ref": "heads/main-0-g1ca5ee4" } diff --git a/spec/default_facts.yml b/spec/default_facts.yml index 2e5a6702..40b10371 100644 --- a/spec/default_facts.yml +++ b/spec/default_facts.yml @@ -2,11 +2,10 @@ # # Facts specified here will override the values provided by rspec-puppet-facts. --- -networking: - ip: "172.16.254.254" - ip6: "FE80:0000:0000:0000:AAAA:AAAA:AAAA" - mac: "AA:AA:AA:AA:AA:AA" +ipaddress: "172.16.254.254" +ipaddress6: "FE80:0000:0000:0000:AAAA:AAAA:AAAA" is_pe: false +macaddress: "AA:AA:AA:AA:AA:AA" pe_build: 2021.4.0 -common_appdata: C:/ProgramData +common_appdata: 'C:/ProgramData' diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index ae7c1f68..6820cebe 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -25,8 +25,7 @@ next unless File.exist?(f) && File.readable?(f) && File.size?(f) begin - require 'deep_merge' - default_facts.deep_merge!(YAML.safe_load(File.read(f), permitted_classes: [], permitted_symbols: [], aliases: true)) + default_facts.merge!(YAML.safe_load(File.read(f), permitted_classes: [], permitted_symbols: [], aliases: true)) rescue StandardError => e RSpec.configuration.reporter.message "WARNING: Unable to load #{f}: #{e}" end @@ -34,7 +33,7 @@ # read default_facts and merge them over what is provided by facterdb default_facts.each do |fact, value| - add_custom_fact fact, value, merge_facts: true + add_custom_fact fact, value end RSpec.configure do |c| From 49fc43fc8a0d235a10ebeb75ffb26b6301ced003 Mon Sep 17 00:00:00 2001 From: Marty Ewings Date: Wed, 20 Nov 2024 17:01:54 +0000 Subject: [PATCH 2/3] Update .sync.yml --- .sync.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.sync.yml b/.sync.yml index 5854c643..f85b1252 100644 --- a/.sync.yml +++ b/.sync.yml @@ -51,6 +51,6 @@ Gemfile: optional: ":development": - gem: github_changelog_generator - - gem: 'octokit' + - gem: 'faraday' version: - '= 4.21.0' + '= 1.10.3' From dbb409841fb71fe18ec12e62d8346a2872d9d6bd Mon Sep 17 00:00:00 2001 From: Marty Ewings Date: Wed, 20 Nov 2024 17:10:33 +0000 Subject: [PATCH 3/3] Update Gemfile --- Gemfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile b/Gemfile index b58af97e..ff16cd76 100644 --- a/Gemfile +++ b/Gemfile @@ -35,7 +35,7 @@ group :development do gem "rubocop-rspec", '= 2.19.0', require: false gem "rb-readline", '= 0.5.5', require: false, platforms: [:mswin, :mingw, :x64_mingw] gem "github_changelog_generator", require: false - gem "octokit", '= 4.21.0', require: false + gem "faraday", '= 1.10.3', require: false end group :system_tests do gem "puppet_litmus", '~> 1.0', require: false, platforms: [:ruby, :x64_mingw]