Skip to content

Commit 1182780

Browse files
committed
(maint) Update to PDK template 3.5.1
This commit updates this module to the latest PDK template (3.5.1). The new template updates the TargetRubyVersion in .rubocop.yml to 3.1, so this commit fixes all instances of Style/HashSyntax cop violations. It also updates legacy facts from puppet_agent_spec, as legacy facts were removed in newer versions of FacterDB.
1 parent 98a4ac6 commit 1182780

17 files changed

Lines changed: 176 additions & 114 deletions

.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: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,10 @@
1+
--fail-on-warnings
12
--relative
3+
--no-80chars-check
4+
--no-140chars-check
5+
--no-class_inherits_from_params_class-check
6+
--no-autoloader_layout-check
7+
--no-documentation-check
8+
--no-single_quote_string_with_variables-check
29
--no-puppet_url_without_modules-check
10+
--ignore-paths=.vendor/**/*.pp,.bundle/**/*.pp,pkg/**/*.pp,spec/**/*.pp,tests/**/*.pp,types/**/*.pp,vendor/**/*.pp

.rubocop.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ require:
55
AllCops:
66
NewCops: enable
77
DisplayCopNames: true
8-
TargetRubyVersion: '2.6'
8+
TargetRubyVersion: 3.1
99
Include:
1010
- "**/*.rb"
1111
Exclude:

Gemfile

Lines changed: 73 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -1,56 +1,82 @@
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.6.1', require: false if Gem::Requirement.create(['>= 3.1.0', '< 3.1.3']).satisfied_by?(Gem::Version.new(RUBY_VERSION.dup))
18-
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))
19-
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))
20-
gem "deep_merge", '~> 1.2.2', require: false
21-
gem "voxpupuli-puppet-lint-plugins", '~> 5.0', require: false
22-
gem "facterdb", '~> 1.18', require: false
23-
gem "metadata-json-lint", '~> 4.0', require: false
24-
gem "rspec-puppet-facts", '~> 3.0', require: false
25-
gem "json-schema", '< 5.1.1', require: false
26-
gem "dependency_checker", '~> 1.0.0', require: false
27-
gem "parallel_tests", '= 3.12.1', require: false
28-
gem "pry", '~> 0.10', require: false
29-
gem "simplecov-console", '~> 0.9', require: false
30-
gem "puppet-debugger", '~> 1.6', require: false
31-
gem "rubocop", '~> 1.50.0', require: false
32-
gem "rubocop-performance", '= 1.16.0', require: false
33-
gem "rubocop-rspec", '= 2.19.0', require: false
34-
gem "rb-readline", '= 0.5.5', require: false, platforms: [:mswin, :mingw, :x64_mingw]
39+
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))
40+
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))
41+
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
43+
gem "voxpupuli-puppet-lint-plugins", '~> 5.0', require: false
44+
gem "facterdb", '~> 2.1', require: false if Gem::Requirement.create(['< 3.0.0']).satisfied_by?(Gem::Version.new(RUBY_VERSION.dup))
45+
gem "facterdb", '~> 3.0', require: false if Gem::Requirement.create(['>= 3.0.0']).satisfied_by?(Gem::Version.new(RUBY_VERSION.dup))
46+
gem "metadata-json-lint", '~> 4.0', require: false
47+
gem "json-schema", '< 5.1.1', require: false
48+
gem "rspec-puppet-facts", '~> 4.0', require: false if Gem::Requirement.create(['< 3.0.0']).satisfied_by?(Gem::Version.new(RUBY_VERSION.dup))
49+
gem "rspec-puppet-facts", '~> 5.0', require: false if Gem::Requirement.create(['>= 3.0.0']).satisfied_by?(Gem::Version.new(RUBY_VERSION.dup))
50+
gem "dependency_checker", '~> 1.0.0', require: false
51+
gem "parallel_tests", '= 3.12.1', require: false
52+
gem "pry", '~> 0.10', require: false
53+
gem "simplecov-console", '~> 0.9', require: false
54+
gem "puppet-debugger", '~> 1.6', require: false
55+
gem "rubocop", '~> 1.50.0', require: false
56+
gem "rubocop-performance", '= 1.16.0', require: false
57+
gem "rubocop-rspec", '= 2.19.0', require: false
58+
gem "rb-readline", '= 0.5.5', require: false, platforms: [:mswin, :mingw, :x64_mingw]
59+
gem "bigdecimal", '< 3.2.2', require: false, platforms: [:mswin, :mingw, :x64_mingw]
3560
gem "beaker", *location_for(ENV['BEAKER_VERSION'] || '~> 6.0')
3661
gem "beaker-abs", *location_for(ENV['BEAKER_ABS_VERSION'] || '~> 1.0')
37-
gem "beaker-hostgenerator", *location_for(ENV['BEAKER_HOSTGENERATOR_VERSION'] || '~> 2')
62+
gem "beaker-hostgenerator", *location_for(ENV['BEAKER_HOSTGENERATOR_VERSION'] || '~> 2.0')
3863
gem "beaker-rspec"
39-
gem "beaker-puppet", *location_for(ENV['BEAKER_PUPPET_VERSION'] || '~> 4.0') if Gem::Requirement.create('< 3.2.0').satisfied_by?(Gem::Version.new(RUBY_VERSION.dup))
40-
gem "beaker-module_install_helper", require: false
41-
gem "beaker-puppet_install_helper", require: false
42-
gem "nokogiri", require: false
43-
gem "bolt", '~> 3.0', require: false if ENV["GEM_BOLT"]
44-
gem "beaker-task_helper", '~> 1.9', require: false if ENV["GEM_BOLT"]
45-
gem "orchestrator_client", '< 0.7.1', require: false if ENV["GEM_BOLT"]
46-
gem "async", '~> 1.30', require: false
64+
gem "beaker-puppet", *location_for(ENV['BEAKER_PUPPET_VERSION'] || '~> 4.0')
65+
gem "beaker-module_install_helper", require: false
66+
gem "beaker-puppet_install_helper", require: false
67+
gem "nokogiri", require: false
68+
gem "bolt", '~> 3.0', require: false if ENV["GEM_BOLT"]
69+
gem "beaker-task_helper", '~> 1.9', require: false if ENV["GEM_BOLT"]
70+
gem "orchestrator_client", '< 0.7.1', require: false if ENV["GEM_BOLT"]
4771
end
4872
group :development, :release_prep do
4973
gem "puppet-strings", '~> 4.0', require: false
5074
gem "puppetlabs_spec_helper", '~> 8.0', require: false
5175
gem "puppet-blacksmith", '~> 7.0', require: false
5276
end
5377
group :system_tests do
78+
gem "puppet_litmus", '~> 2.0', require: false, platforms: [:ruby, :x64_mingw] if !ENV['PUPPET_FORGE_TOKEN'].to_s.empty?
79+
gem "puppet_litmus", '~> 1.0', require: false, platforms: [:ruby, :x64_mingw] if ENV['PUPPET_FORGE_TOKEN'].to_s.empty?
5480
gem "CFPropertyList", '< 3.0.7', require: false, platforms: [:mswin, :mingw, :x64_mingw]
5581
gem "serverspec", '~> 2.41', require: false
5682
gem "voxpupuli-acceptance", '~> 3', require: false
@@ -61,31 +87,27 @@ puppet_version = ENV.fetch('PUPPET_GEM_VERSION', nil)
6187
facter_version = ENV.fetch('FACTER_GEM_VERSION', nil)
6288
hiera_version = ENV.fetch('HIERA_GEM_VERSION', nil)
6389

64-
# If PUPPET_FORGE_TOKEN is set then use authenticated source for both puppet and facter, since facter is a transitive dependency of puppet
65-
# Otherwise, do as before and use location_for to fetch gems from the default source
66-
if !ENV['PUPPET_FORGE_TOKEN'].to_s.empty?
67-
gems['puppet'] = ['~> 8.11', { require: false, source: 'https://rubygems-puppetcore.puppet.com' }]
68-
gems['facter'] = ['~> 4.11', { require: false, source: 'https://rubygems-puppetcore.puppet.com' }]
69-
else
70-
gems['puppet'] = location_for(puppet_version)
71-
gems['facter'] = location_for(facter_version) if facter_version
72-
end
73-
74-
gems['hiera'] = location_for(hiera_version) if hiera_version
90+
gems['puppet'] = location_for(puppet_version, nil, { source: gemsource_puppetcore })
91+
gems['facter'] = location_for(facter_version, nil, { source: gemsource_puppetcore })
92+
gems['hiera'] = location_for(hiera_version, nil, {}) if hiera_version
7593

94+
# Generate the gem definitions
95+
print_gem_statement_for(gems) if ENV['DEBUG']
7696
gems.each do |gem_name, gem_params|
7797
gem gem_name, *gem_params
7898
end
7999

80100
# Evaluate Gemfile.local and ~/.gemfile if they exist
81101
extra_gemfiles = [
82102
"#{__FILE__}.local",
83-
File.join(Dir.home, '.gemfile'),
103+
File.join(Dir.home, '.gemfile')
84104
]
85105

86106
extra_gemfiles.each do |gemfile|
87-
if File.file?(gemfile) && File.readable?(gemfile)
88-
eval(File.read(gemfile), binding)
89-
end
107+
next unless File.file?(gemfile) && File.readable?(gemfile)
108+
109+
# rubocop:disable Security/Eval
110+
eval(File.read(gemfile), binding)
111+
# rubocop:enable Security/Eval
90112
end
91113
# vim: syntax=ruby

Rakefile

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,13 @@ require 'puppet-strings/tasks' if Gem.loaded_specs.key? 'puppet-strings'
88
require 'voxpupuli/acceptance/rake' if Gem.loaded_specs.key? 'voxpupuli-acceptance'
99

1010
PuppetLint.configuration.send('disable_relative')
11+
PuppetLint.configuration.send('disable_80chars')
12+
PuppetLint.configuration.send('disable_140chars')
13+
PuppetLint.configuration.send('disable_class_inherits_from_params_class')
14+
PuppetLint.configuration.send('disable_autoloader_layout')
15+
PuppetLint.configuration.send('disable_documentation')
16+
PuppetLint.configuration.send('disable_single_quote_string_with_variables')
1117
PuppetLint.configuration.send('disable_puppet_url_without_modules')
18+
PuppetLint.configuration.fail_on_warnings = true
19+
PuppetLint.configuration.ignore_paths = [".vendor/**/*.pp", ".bundle/**/*.pp", "pkg/**/*.pp", "spec/**/*.pp", "tests/**/*.pp", "types/**/*.pp", "vendor/**/*.pp"]
20+

metadata.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@
8282
"version_requirement": ">= 7.0.0 < 9.0.0"
8383
}
8484
],
85-
"pdk-version": "3.2.0",
86-
"template-url": "https://github.com/puppetlabs/pdk-templates#3.2.0",
87-
"template-ref": "tags/3.2.0-0-gb257ef1"
85+
"pdk-version": "3.5.1",
86+
"template-url": "https://github.com/puppetlabs/pdk-templates#3.5.1",
87+
"template-ref": "tags/3.5.1-0-g9d5b193"
8888
}

spec/classes/puppet_agent_osfamily_darwin_spec.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434
}
3535

3636
describe 'supported environment' do
37-
let(:params) { { package_version: package_version } }
37+
let(:params) { { package_version: } }
3838

3939
context 'when running a supported macOS' do
4040
['osx-11-x86_64', 'osx-12-x86_64'].each do |tag|

spec/classes/puppet_agent_osfamily_debian_spec.rb

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
package_version = '1.10.100'
2424
let(:params) do
2525
{
26-
package_version: package_version
26+
package_version:
2727
}
2828
end
2929
let(:facts) { facts }
@@ -48,7 +48,7 @@
4848
let(:params) do
4949
{
5050
manage_repo: true,
51-
package_version: package_version
51+
package_version:
5252
}
5353
end
5454

@@ -74,7 +74,7 @@
7474
let(:params) do
7575
{
7676
manage_repo: false,
77-
package_version: package_version
77+
package_version:
7878
}
7979
end
8080

@@ -94,7 +94,7 @@
9494
let(:params) do
9595
{
9696
manage_repo: true,
97-
package_version: package_version
97+
package_version:
9898
}
9999
end
100100

@@ -118,7 +118,7 @@
118118
let(:params) do
119119
{
120120
manage_repo: false,
121-
package_version: package_version
121+
package_version:
122122
}
123123
end
124124

@@ -133,7 +133,7 @@
133133
let(:params) do
134134
{
135135
manage_repo: true,
136-
package_version: package_version
136+
package_version:
137137
}
138138
end
139139

@@ -166,7 +166,7 @@
166166
let(:params) do
167167
{
168168
manage_repo: true,
169-
package_version: package_version,
169+
package_version:,
170170
source: 'https://fake-apt-mirror.com'
171171
}
172172
end
@@ -188,7 +188,7 @@
188188
let(:params) do
189189
{
190190
manage_repo: false,
191-
package_version: package_version
191+
package_version:
192192
}
193193
end
194194

@@ -207,7 +207,7 @@
207207
let(:params) do
208208
{
209209
manage_repo: true,
210-
package_version: package_version,
210+
package_version:,
211211
collection: 'puppet5',
212212
}
213213
end
@@ -229,7 +229,7 @@
229229
let(:params) do
230230
{
231231
manage_repo: true,
232-
package_version: package_version,
232+
package_version:,
233233
collection: 'puppet5',
234234
apt_source: 'https://fake-apt-mirror.com/'
235235
}
@@ -252,7 +252,7 @@
252252
let(:params) do
253253
{
254254
manage_repo: false,
255-
package_version: package_version
255+
package_version:
256256
}
257257
end
258258

0 commit comments

Comments
 (0)