Skip to content

Commit 37e7829

Browse files
authored
Merge pull request #814 from puppetlabs/PA-7820/main/pdk-update
Update to PDK template 3.5.1
2 parents b2ec88b + 1182780 commit 37e7829

18 files changed

+177
-124
lines changed

.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:

.sync.yml

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,12 @@ Gemfile:
2020
version: '~> 1.0'
2121
- gem: beaker-hostgenerator
2222
from_env: BEAKER_HOSTGENERATOR_VERSION
23+
version: '~> 2.0'
2324
- gem: beaker-rspec
2425
from_env: BEAKER_RSPEC_VERSION
25-
# Prevent beaker-puppet from being installed on Ruby > 3.1 until beaker-puppet supports newer Rubies (PA-6136)
2626
- gem: beaker-puppet
2727
from_env: BEAKER_PUPPET_VERSION
2828
version: '~> 4.0'
29-
condition: Gem::Requirement.create('< 3.2.0').satisfied_by?(Gem::Version.new(RUBY_VERSION.dup))
3029
- gem: beaker-module_install_helper
3130
- gem: beaker-puppet_install_helper
3231
- gem: nokogiri
@@ -41,22 +40,14 @@ Gemfile:
4140
- gem: 'orchestrator_client'
4241
version: '< 0.7.1'
4342
condition: 'ENV["GEM_BOLT"]'
44-
- gem: async
45-
version: '~> 1.30' # otherwise async 2.0.0(needs ruby >=3.1.0) is wrongly selected by bundler on jenkins while running with ruby 2.7.1
4643
":system_tests":
4744
- gem: voxpupuli-acceptance
4845
version: '~> 3'
4946

50-
appveyor.yml:
51-
delete: true
52-
.travis.yml:
53-
delete: true
5447
.github/workflows/release.yml:
5548
unmanaged: false
5649
.github/workflows/release_prep.yml:
5750
unmanaged: false
58-
.gitlab-ci.yml:
59-
delete: true
6051
spec/default_facts.yml:
6152
delete: true
6253
spec/spec_helper.rb:

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)