Skip to content

Commit b27368f

Browse files
Update PDK
1 parent 04382c9 commit b27368f

9 files changed

Lines changed: 120 additions & 84 deletions

File tree

.github/workflows/release.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ name: "Publish module"
22

33
on:
44
workflow_dispatch:
5-
5+
66
jobs:
77
release:
88
uses: "puppetlabs/cat-github-actions/.github/workflows/module_release.yml@main"

.gitignore

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,17 @@
1919
/spec/fixtures/modules/*
2020
/tmp/
2121
/vendor/
22+
/.vendor/
2223
/convert_report.txt
2324
/update_report.txt
2425
.DS_Store
2526
.project
2627
.envrc
2728
/inventory.yaml
2829
/spec/fixtures/litmus_inventory.yaml
30+
.resource_types
31+
.modules
32+
.task_cache.json
33+
.plan_cache.json
34+
.rerun.json
35+
bolt-debug.log

.pdkignore

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,20 @@
1919
/spec/fixtures/modules/*
2020
/tmp/
2121
/vendor/
22+
/.vendor/
2223
/convert_report.txt
2324
/update_report.txt
2425
.DS_Store
2526
.project
2627
.envrc
2728
/inventory.yaml
2829
/spec/fixtures/litmus_inventory.yaml
30+
.resource_types
31+
.modules
32+
.task_cache.json
33+
.plan_cache.json
34+
.rerun.json
35+
bolt-debug.log
2936
/.fixtures.yml
3037
/Gemfile
3138
/.gitattributes

.puppet-lint.rc

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,4 @@
66
--no-autoloader_layout-check
77
--no-documentation-check
88
--no-single_quote_string_with_variables-check
9-
--no-anchor_resource-check
10-
--ignore-paths=.vendor/**/*.pp,.bundle/**/*.pp,pkg/**/*.pp,spec/**/*.pp,tests/**/*.pp,types/**/*.pp,vendor/**/*.pp
9+
--ignore-paths=.vendor/**/*.pp,.bundle/**/*.pp,pkg/**/*.pp,spec/**/*.pp,tests/**/*.pp,types/**/*.pp,vendor/**/*.pp

.rubocop.yml

Lines changed: 35 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,14 @@
11
---
2-
require:
2+
plugins:
33
- rubocop-performance
44
- rubocop-rspec
5+
- rubocop-rspec_rails
6+
- rubocop-factory_bot
7+
- rubocop-capybara
58
AllCops:
69
NewCops: enable
710
DisplayCopNames: true
8-
TargetRubyVersion: '3.1'
11+
TargetRubyVersion: 3.1
912
Include:
1013
- "**/*.rb"
1114
Exclude:
@@ -121,6 +124,12 @@ Capybara/CurrentPathExpectation:
121124
Enabled: false
122125
Capybara/VisibilityMatcher:
123126
Enabled: false
127+
FactoryBot/AttributeDefinedStatically:
128+
Enabled: false
129+
FactoryBot/CreateList:
130+
Enabled: false
131+
FactoryBot/FactoryClassName:
132+
Enabled: false
124133
Gemspec/DuplicatedAssignment:
125134
Enabled: false
126135
Gemspec/OrderedDependencies:
@@ -295,8 +304,6 @@ Performance/UriDefaultParser:
295304
Enabled: false
296305
RSpec/Be:
297306
Enabled: false
298-
RSpec/Capybara/FeatureMethods:
299-
Enabled: false
300307
RSpec/ContainExactly:
301308
Enabled: false
302309
RSpec/ContextMethod:
@@ -305,6 +312,8 @@ RSpec/ContextWording:
305312
Enabled: false
306313
RSpec/DescribeClass:
307314
Enabled: false
315+
RSpec/Dialect:
316+
Enabled: false
308317
RSpec/EmptyHook:
309318
Enabled: false
310319
RSpec/EmptyLineAfterExample:
@@ -321,12 +330,6 @@ RSpec/ExpectChange:
321330
Enabled: false
322331
RSpec/ExpectInHook:
323332
Enabled: false
324-
RSpec/FactoryBot/AttributeDefinedStatically:
325-
Enabled: false
326-
RSpec/FactoryBot/CreateList:
327-
Enabled: false
328-
RSpec/FactoryBot/FactoryClassName:
329-
Enabled: false
330333
RSpec/HooksBeforeExamples:
331334
Enabled: false
332335
RSpec/ImplicitBlockExpectation:
@@ -501,6 +504,12 @@ Capybara/SpecificFinders:
501504
Enabled: false
502505
Capybara/SpecificMatcher:
503506
Enabled: false
507+
FactoryBot/ConsistentParenthesesStyle:
508+
Enabled: false
509+
FactoryBot/FactoryNameStyle:
510+
Enabled: false
511+
FactoryBot/SyntaxMethods:
512+
Enabled: false
504513
Gemspec/DeprecatedAttributeAssignment:
505514
Enabled: false
506515
Gemspec/DevelopmentDependencies:
@@ -529,6 +538,8 @@ Lint/DuplicateBranch:
529538
Enabled: false
530539
Lint/DuplicateMagicComment:
531540
Enabled: false
541+
Lint/DuplicateMatchPattern:
542+
Enabled: false
532543
Lint/DuplicateRegexpCharacterClassElement:
533544
Enabled: false
534545
Lint/EmptyBlock:
@@ -599,28 +610,12 @@ RSpec/DuplicatedMetadata:
599610
Enabled: false
600611
RSpec/ExcessiveDocstringSpacing:
601612
Enabled: false
602-
RSpec/FactoryBot/ConsistentParenthesesStyle:
603-
Enabled: false
604-
RSpec/FactoryBot/FactoryNameStyle:
605-
Enabled: false
606-
RSpec/FactoryBot/SyntaxMethods:
607-
Enabled: false
608613
RSpec/IdenticalEqualityAssertion:
609614
Enabled: false
610615
RSpec/NoExpectationExample:
611616
Enabled: false
612617
RSpec/PendingWithoutReason:
613618
Enabled: false
614-
RSpec/Rails/AvoidSetupHook:
615-
Enabled: false
616-
RSpec/Rails/HaveHttpStatus:
617-
Enabled: false
618-
RSpec/Rails/InferredSpecType:
619-
Enabled: false
620-
RSpec/Rails/MinitestAssertions:
621-
Enabled: false
622-
RSpec/Rails/TravelAround:
623-
Enabled: false
624619
RSpec/RedundantAround:
625620
Enabled: false
626621
RSpec/SkipBlockInsideExample:
@@ -631,6 +626,16 @@ RSpec/SubjectDeclaration:
631626
Enabled: false
632627
RSpec/VerifiedDoubleReference:
633628
Enabled: false
629+
RSpecRails/AvoidSetupHook:
630+
Enabled: false
631+
RSpecRails/HaveHttpStatus:
632+
Enabled: false
633+
RSpecRails/InferredSpecType:
634+
Enabled: false
635+
RSpecRails/MinitestAssertions:
636+
Enabled: false
637+
RSpecRails/TravelAround:
638+
Enabled: false
634639
Security/CompoundHash:
635640
Enabled: false
636641
Security/IoMethods:
@@ -645,6 +650,8 @@ Style/ComparableClamp:
645650
Enabled: false
646651
Style/ConcatArrayLiterals:
647652
Enabled: false
653+
Style/DataInheritance:
654+
Enabled: false
648655
Style/DirEmpty:
649656
Enabled: false
650657
Style/DocumentDynamicEvalDefinition:
@@ -713,6 +720,8 @@ Style/RedundantHeredocDelimiterQuotes:
713720
Enabled: false
714721
Style/RedundantInitialize:
715722
Enabled: false
723+
Style/RedundantLineContinuation:
724+
Enabled: false
716725
Style/RedundantSelfAssignmentBranch:
717726
Enabled: false
718727
Style/RedundantStringEscape:
@@ -723,5 +732,3 @@ Style/StringChars:
723732
Enabled: false
724733
Style/SwapValues:
725734
Enabled: false
726-
Style/HashSyntax:
727-
EnforcedShorthandSyntax: never

.vscode/extensions.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"recommendations": [
33
"puppet.puppet-vscode",
4-
"rebornix.Ruby"
4+
"Shopify.ruby-lsp"
55
]
66
}

Gemfile

Lines changed: 64 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -1,94 +1,109 @@
1-
source ENV['GEM_SOURCE'] || 'https://rubygems.org'
1+
# frozen_string_literal: true
22

3-
def location_for(place_or_version, fake_version = nil)
4-
git_url_regex = %r{\A(?<url>(https?|git)[:@][^#]*)(#(?<branch>.*))?}
5-
file_url_regex = %r{\Afile:\/\/(?<path>.*)}
3+
# For puppetcore, set GEM_SOURCE_PUPPETCORE = 'https://rubygems-puppetcore.puppet.com'
4+
gemsource_default = ENV['GEM_SOURCE'] || 'https://rubygems.org'
5+
gemsource_puppetcore = if ENV['PUPPET_FORGE_TOKEN']
6+
'https://rubygems-puppetcore.puppet.com'
7+
else
8+
ENV['GEM_SOURCE_PUPPETCORE'] || gemsource_default
9+
end
10+
source gemsource_default
11+
12+
def location_for(place_or_constraint, fake_constraint = nil, opts = {})
13+
git_url_regex = /\A(?<url>(?:https?|git)[:@][^#]*)(?:#(?<branch>.*))?/
14+
file_url_regex = %r{\Afile://(?<path>.*)}
15+
16+
if place_or_constraint && (git_url = place_or_constraint.match(git_url_regex))
17+
# Git source → ignore :source, keep fake_constraint
18+
[fake_constraint, { git: git_url[:url], branch: git_url[:branch], require: false }].compact
19+
20+
elsif place_or_constraint && (file_url = place_or_constraint.match(file_url_regex))
21+
# File source → ignore :source, keep fake_constraint or default >= 0
22+
[fake_constraint || '>= 0', { path: File.expand_path(file_url[:path]), require: false }]
623

7-
if place_or_version && (git_url = place_or_version.match(git_url_regex))
8-
[fake_version, { git: git_url[:url], branch: git_url[:branch], require: false }].compact
9-
elsif place_or_version && (file_url = place_or_version.match(file_url_regex))
10-
['>= 0', { path: File.expand_path(file_url[:path]), require: false }]
1124
else
12-
[place_or_version, { require: false }]
25+
# Plain version constraint → merge opts (including :source if provided)
26+
[place_or_constraint, { require: false }.merge(opts)]
27+
end
28+
end
29+
30+
# Print debug information if DEBUG_GEMS or VERBOSE is set
31+
def print_gem_statement_for(gems)
32+
puts 'DEBUG: Gem definitions that will be generated:'
33+
gems.each do |gem_name, gem_params|
34+
puts "DEBUG: gem #{([gem_name.inspect] + gem_params.map(&:inspect)).join(', ')}"
1335
end
1436
end
1537

1638
group :development do
17-
gem "json", '= 2.1.0', require: false if Gem::Requirement.create(['>= 2.5.0', '< 2.7.0']).satisfied_by?(Gem::Version.new(RUBY_VERSION.dup))
18-
gem "json", '= 2.3.0', require: false if Gem::Requirement.create(['>= 2.7.0', '< 3.0.0']).satisfied_by?(Gem::Version.new(RUBY_VERSION.dup))
19-
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))
2039
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))
2140
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))
2241
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))
42+
gem "deep_merge", '~> 1.2.2', require: false
2343
gem "voxpupuli-puppet-lint-plugins", '~> 5.0', require: false
24-
gem "facterdb", '~> 1.18', require: false if Gem::Requirement.create(['< 3.0.0']).satisfied_by?(Gem::Version.new(RUBY_VERSION.dup))
44+
gem "facterdb", '~> 2.1', require: false if Gem::Requirement.create(['< 3.0.0']).satisfied_by?(Gem::Version.new(RUBY_VERSION.dup))
2545
gem "facterdb", '~> 3.0', require: false if Gem::Requirement.create(['>= 3.0.0']).satisfied_by?(Gem::Version.new(RUBY_VERSION.dup))
26-
gem "metadata-json-lint", '~> 3.0', require: false
46+
gem "metadata-json-lint", '~> 4.0', require: false
2747
gem "json-schema", '< 5.1.1', require: false
28-
gem "rspec-puppet-facts", '~> 2.0', require: false if Gem::Requirement.create(['< 3.0.0']).satisfied_by?(Gem::Version.new(RUBY_VERSION.dup))
48+
gem "rspec-puppet-facts", '~> 4.0', require: false if Gem::Requirement.create(['< 3.0.0']).satisfied_by?(Gem::Version.new(RUBY_VERSION.dup))
2949
gem "rspec-puppet-facts", '~> 5.0', require: false if Gem::Requirement.create(['>= 3.0.0']).satisfied_by?(Gem::Version.new(RUBY_VERSION.dup))
30-
gem "codecov", '~> 0.2', require: false
3150
gem "dependency_checker", '~> 1.0.0', require: false
3251
gem "parallel_tests", '= 3.12.1', require: false
3352
gem "pry", '~> 0.10', require: false
34-
gem "simplecov-console", '~> 0.5', require: false
53+
gem "simplecov-console", '~> 0.9', require: false
3554
gem "puppet-debugger", '~> 1.6', require: false
36-
gem "rubocop", '= 1.48.1', require: false
37-
gem "rubocop-performance", '= 1.16.0', require: false
38-
gem "rubocop-rspec", '= 2.19.0', require: false
39-
gem "puppet-strings", '~> 4.0', require: false
40-
gem "rb-readline", '= 0.5.5', require: false, platforms: [:mswin, :mingw, :x64_mingw]
55+
gem "rubocop", '~> 1.73.0', require: false
56+
gem "rubocop-performance", '~> 1.24.0', require: false
57+
gem "rubocop-rspec", '~> 3.5.0', require: false
58+
gem "rubocop-rspec_rails", '~> 2.31.0', require: false
59+
gem "rubocop-factory_bot", '~> 2.27.0', require: false
60+
gem "rubocop-capybara", '~> 2.22.0', require: false
61+
gem "rb-readline", '= 0.5.5', require: false, platforms: [:windows]
62+
gem "bigdecimal", '< 3.2.2', require: false, platforms: [:windows]
4163
gem "ruby-pwsh", require: false
4264
gem "mocha", '< 1.2.0', require: false
4365
end
44-
group :system_tests do
45-
gem "puppet_litmus", '~> 2.0', require: false, platforms: [:ruby, :x64_mingw] if !ENV['PUPPET_FORGE_TOKEN'].to_s.empty?
46-
gem "puppet_litmus", '~> 1.0', require: false, platforms: [:ruby, :x64_mingw] if ENV['PUPPET_FORGE_TOKEN'].to_s.empty?
47-
gem "serverspec", '~> 2.41', require: false
48-
gem "rspec-retry", require: false
49-
end
5066
group :development, :release_prep do
5167
gem "puppet-strings", '~> 4.0', require: false
5268
gem "puppetlabs_spec_helper", '~> 8.0', require: false
5369
gem "puppet-blacksmith", '~> 7.0', require: false
5470
end
55-
56-
puppet_version = ENV['PUPPET_GEM_VERSION']
57-
facter_version = ENV['FACTER_GEM_VERSION']
58-
hiera_version = ENV['HIERA_GEM_VERSION']
71+
group :system_tests do
72+
gem "puppet_litmus", '~> 2.0', require: false, platforms: [:ruby, :windows] if !ENV['PUPPET_FORGE_TOKEN'].to_s.empty?
73+
gem "puppet_litmus", '~> 1.0', require: false, platforms: [:ruby, :windows] if ENV['PUPPET_FORGE_TOKEN'].to_s.empty?
74+
gem "CFPropertyList", '< 3.0.7', require: false if RUBY_PLATFORM.include?('darwin')
75+
gem "serverspec", '~> 2.41', require: false
76+
gem "rspec-retry", require: false
77+
end
5978

6079
gems = {}
61-
80+
bolt_version = ENV.fetch('BOLT_GEM_VERSION', nil)
6281
puppet_version = ENV.fetch('PUPPET_GEM_VERSION', nil)
6382
facter_version = ENV.fetch('FACTER_GEM_VERSION', nil)
6483
hiera_version = ENV.fetch('HIERA_GEM_VERSION', nil)
6584

66-
# If facter or hiera versions have been specified via the environment
67-
# variables
68-
# If PUPPET_FORGE_TOKEN is set then use authenticated source for both puppet and facter, since facter is a transitive dependency of puppet
69-
# Otherwise, do as before and use location_for to fetch gems from the default source
70-
if !ENV['PUPPET_FORGE_TOKEN'].to_s.empty?
71-
gems['puppet'] = ['~> 8.11', { require: false, source: 'https://rubygems-puppetcore.puppet.com' }]
72-
gems['facter'] = ['~> 4.11', { require: false, source: 'https://rubygems-puppetcore.puppet.com' }]
73-
else
74-
gems['puppet'] = location_for(puppet_version)
75-
gems['facter'] = location_for(facter_version) if facter_version
76-
end
77-
gems['hiera'] = location_for(hiera_version) if hiera_version
85+
gems['bolt'] = location_for(bolt_version, nil, { source: gemsource_puppetcore })
86+
gems['puppet'] = location_for(puppet_version, nil, { source: gemsource_puppetcore })
87+
gems['facter'] = location_for(facter_version, nil, { source: gemsource_puppetcore })
88+
gems['hiera'] = location_for(hiera_version, nil, {}) if hiera_version
7889

90+
# Generate the gem definitions
91+
print_gem_statement_for(gems) if ENV['DEBUG']
7992
gems.each do |gem_name, gem_params|
8093
gem gem_name, *gem_params
8194
end
8295

8396
# Evaluate Gemfile.local and ~/.gemfile if they exist
8497
extra_gemfiles = [
8598
"#{__FILE__}.local",
86-
File.join(Dir.home, '.gemfile'),
99+
File.join(Dir.home, '.gemfile')
87100
]
88101

89102
extra_gemfiles.each do |gemfile|
90-
if File.file?(gemfile) && File.readable?(gemfile)
91-
eval(File.read(gemfile), binding)
92-
end
103+
next unless File.file?(gemfile) && File.readable?(gemfile)
104+
105+
# rubocop:disable Security/Eval
106+
eval(File.read(gemfile), binding)
107+
# rubocop:enable Security/Eval
93108
end
94109
# vim: syntax=ruby

Rakefile

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ require 'puppet_litmus/rake_tasks' if Gem.loaded_specs.key? 'puppet_litmus'
55
require 'puppetlabs_spec_helper/rake_tasks'
66
require 'puppet-syntax/tasks/puppet-syntax'
77
require 'puppet-strings/tasks' if Gem.loaded_specs.key? 'puppet-strings'
8+
9+
PuppetLint.configuration.send('disable_relative')
810
PuppetLint.configuration.send('disable_80chars')
911
PuppetLint.configuration.send('disable_140chars')
1012
PuppetLint.configuration.send('disable_class_inherits_from_params_class')
@@ -14,4 +16,3 @@ PuppetLint.configuration.send('disable_single_quote_string_with_variables')
1416
PuppetLint.configuration.fail_on_warnings = true
1517
PuppetLint.configuration.ignore_paths = [".vendor/**/*.pp", ".bundle/**/*.pp", "pkg/**/*.pp", "spec/**/*.pp", "tests/**/*.pp", "types/**/*.pp", "vendor/**/*.pp"]
1618

17-
PuppetLint.configuration.send('disable_relative')

metadata.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@
6464
"version_requirement": ">= 8.0.0 < 9.0.0"
6565
}
6666
],
67-
"pdk-version": "3.5.0 (ga43db72)",
67+
"pdk-version": "3.6.1",
6868
"template-url": "https://github.com/puppetlabs/pdk-templates.git#main",
69-
"template-ref": "heads/main-0-g11c0f3d"
69+
"template-ref": "tags/3.6.1.2-0-g30cf4f7"
7070
}

0 commit comments

Comments
 (0)