Skip to content

Commit 0c2881b

Browse files
Merge pull request #1265 from puppetlabs/CAT-2345
(CAT-2345) Prepare module for Puppetcore / Drop Support for Puppet 7
2 parents 509b06a + 3b97d1b commit 0c2881b

File tree

12 files changed

+67
-116
lines changed

12 files changed

+67
-116
lines changed

.github/workflows/ci.yml

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,11 @@ on:
99
jobs:
1010
Spec:
1111
uses: "puppetlabs/cat-github-actions/.github/workflows/module_ci.yml@main"
12-
with:
13-
runs_on: "ubuntu-24.04"
1412
secrets: "inherit"
1513

1614
Acceptance:
1715
needs: Spec
1816
uses: "puppetlabs/cat-github-actions/.github/workflows/module_acceptance.yml@main"
1917
with:
20-
runs_on: "ubuntu-24.04"
18+
flags: "--nightly --platform-exclude centos-7 --platform-exclude oraclelinux-7 --platform-exclude scientific-7"
2119
secrets: "inherit"

.github/workflows/nightly.yml

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,12 @@ on:
88
jobs:
99
Spec:
1010
uses: "puppetlabs/cat-github-actions/.github/workflows/module_ci.yml@main"
11-
with:
12-
runs_on: "ubuntu-24.04"
1311
secrets: "inherit"
1412

1513
Acceptance:
1614
needs: Spec
1715
uses: "puppetlabs/cat-github-actions/.github/workflows/module_acceptance.yml@main"
1816
with:
19-
runs_on: "ubuntu-24.04"
17+
flags: "--nightly --platform-exclude centos-7 --platform-exclude oraclelinux-7 --platform-exclude scientific-7"
2018
secrets: "inherit"
2119

.puppet-lint.rc

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,9 @@
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
9+
--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:

.rubocop_todo.yml

Lines changed: 2 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -1,56 +1,11 @@
11
# This configuration was generated by
22
# `rubocop --auto-gen-config`
3-
# on 2023-08-29 15:26:08 UTC using RuboCop version 1.48.1.
3+
# on 2025-07-01 09:21:38 UTC using RuboCop version 1.50.2.
44
# The point is for the user to remove these configuration records
55
# one by one as the offenses are removed from the code base.
66
# Note that changes in the inspected code, or installation of new
77
# versions of RuboCop, may require this file to be generated again.
88

9-
# Offense count: 20
10-
# Configuration parameters: AllowedMethods, AllowedPatterns, CountRepeatedAttributes.
11-
Metrics/AbcSize:
12-
Max: 270
13-
14-
# Offense count: 2
15-
# Configuration parameters: CountComments, CountAsOne, AllowedMethods, AllowedPatterns, inherit_mode.
16-
# AllowedMethods: refine
17-
Metrics/BlockLength:
18-
Max: 127
19-
20-
# Offense count: 3
21-
# Configuration parameters: CountComments, CountAsOne.
22-
Metrics/ClassLength:
23-
Max: 776
24-
25-
# Offense count: 17
26-
# Configuration parameters: AllowedMethods, AllowedPatterns.
27-
Metrics/CyclomaticComplexity:
28-
Max: 122
29-
30-
# Offense count: 20
31-
# Configuration parameters: CountComments, CountAsOne, AllowedMethods, AllowedPatterns.
32-
Metrics/MethodLength:
33-
Max: 135
34-
35-
# Offense count: 12
36-
# Configuration parameters: AllowedMethods, AllowedPatterns.
37-
Metrics/PerceivedComplexity:
38-
Max: 122
39-
40-
# Offense count: 18
41-
# Configuration parameters: IgnoredMetadata.
42-
RSpec/DescribeClass:
43-
Enabled: false
44-
45-
# Offense count: 9
46-
# Configuration parameters: CountAsOne.
47-
RSpec/ExampleLength:
48-
Max: 8
49-
50-
# Offense count: 41
51-
RSpec/MultipleExpectations:
52-
Max: 2
53-
549
# Offense count: 38
5510
# Configuration parameters: EnforcedStyle, IgnoreSharedExamples.
5611
# SupportedStyles: always, named_only
@@ -60,31 +15,9 @@ RSpec/NamedSubject:
6015
- 'spec/unit/classes/firewall_linux_debian_spec.rb'
6116
- 'spec/unit/classes/firewall_linux_redhat_spec.rb'
6217

63-
# Offense count: 38
64-
# Configuration parameters: AllowedGroups.
65-
RSpec/NestedGroups:
66-
Max: 5
67-
68-
# Offense count: 43
69-
# Configuration parameters: AllowedPatterns.
70-
# AllowedPatterns: ^expect_, ^assert_
71-
RSpec/NoExpectationExample:
72-
Exclude:
73-
- 'spec/acceptance/class_spec.rb'
74-
- 'spec/acceptance/firewall_attributes_exceptions_spec.rb'
75-
- 'spec/acceptance/firewall_attributes_ipv6_exceptions_spec.rb'
76-
- 'spec/acceptance/firewallchain_spec.rb'
77-
- 'spec/acceptance/rules_spec.rb'
78-
- 'spec/acceptance/standard_usage_spec.rb'
79-
80-
# Offense count: 83
18+
# Offense count: 85
8119
# Configuration parameters: AllowedVariables.
8220
Style/GlobalVars:
8321
Exclude:
8422
- 'lib/puppet/provider/firewall/firewall.rb'
8523
- 'lib/puppet/provider/firewallchain/firewallchain.rb'
86-
87-
# Offense count: 1
88-
Style/MixinUsage:
89-
Exclude:
90-
- 'spec/spec_helper.rb'

Gemfile

Lines changed: 23 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -14,51 +14,56 @@ def location_for(place_or_version, fake_version = nil)
1414
end
1515

1616
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))
2017
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))
2118
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))
2219
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))
2320
gem "deep_merge", '~> 1.2.2', require: false
2421
gem "voxpupuli-puppet-lint-plugins", '~> 5.0', require: false
25-
gem "facterdb", '~> 1.18', require: false
22+
gem "facterdb", '~> 2.1', require: false if Gem::Requirement.create(['< 3.0.0']).satisfied_by?(Gem::Version.new(RUBY_VERSION.dup))
23+
gem "facterdb", '~> 3.0', require: false if Gem::Requirement.create(['>= 3.0.0']).satisfied_by?(Gem::Version.new(RUBY_VERSION.dup))
2624
gem "metadata-json-lint", '~> 4.0', require: false
27-
gem "rspec-puppet-facts", '~> 2.0', require: false
25+
gem "json-schema", '< 5.1.1', require: false
26+
gem "rspec-puppet-facts", '~> 4.0', require: false if Gem::Requirement.create(['< 3.0.0']).satisfied_by?(Gem::Version.new(RUBY_VERSION.dup))
27+
gem "rspec-puppet-facts", '~> 5.0', require: false if Gem::Requirement.create(['>= 3.0.0']).satisfied_by?(Gem::Version.new(RUBY_VERSION.dup))
2828
gem "dependency_checker", '~> 1.0.0', require: false
2929
gem "parallel_tests", '= 3.12.1', require: false
3030
gem "pry", '~> 0.10', require: false
3131
gem "simplecov-console", '~> 0.9', require: false
32-
gem "puppet-debugger", '~> 1.0', require: false
32+
gem "puppet-debugger", '~> 1.6', require: false
3333
gem "rubocop", '~> 1.50.0', require: false
3434
gem "rubocop-performance", '= 1.16.0', require: false
3535
gem "rubocop-rspec", '= 2.19.0', require: false
3636
gem "rb-readline", '= 0.5.5', require: false, platforms: [:mswin, :mingw, :x64_mingw]
37-
gem "rexml", '>= 3.3.9', require: false
37+
gem "bigdecimal", '< 3.2.2', require: false, platforms: [:mswin, :mingw, :x64_mingw]
3838
gem "puppet-resource_api", require: false
3939
end
4040
group :development, :release_prep do
4141
gem "puppet-strings", '~> 4.0', require: false
42-
gem "puppetlabs_spec_helper", '~> 7.0', require: false
42+
gem "puppetlabs_spec_helper", '~> 8.0', require: false
43+
gem "puppet-blacksmith", '~> 7.0', require: false
4344
end
4445
group :system_tests do
45-
gem "puppet_litmus", '~> 1.0', require: false, platforms: [:ruby, :x64_mingw]
46+
gem "puppet_litmus", '~> 2.0', require: false, platforms: [:ruby, :x64_mingw] if !ENV['PUPPET_FORGE_TOKEN'].to_s.empty?
47+
gem "puppet_litmus", '~> 1.0', require: false, platforms: [:ruby, :x64_mingw] if ENV['PUPPET_FORGE_TOKEN'].to_s.empty?
4648
gem "CFPropertyList", '< 3.0.7', require: false, platforms: [:mswin, :mingw, :x64_mingw]
4749
gem "serverspec", '~> 2.41', require: false
4850
end
4951

50-
puppet_version = ENV['PUPPET_GEM_VERSION']
51-
facter_version = ENV['FACTER_GEM_VERSION']
52-
hiera_version = ENV['HIERA_GEM_VERSION']
53-
5452
gems = {}
53+
puppet_version = ENV.fetch('PUPPET_GEM_VERSION', nil)
54+
facter_version = ENV.fetch('FACTER_GEM_VERSION', nil)
55+
hiera_version = ENV.fetch('HIERA_GEM_VERSION', nil)
5556

56-
gems['puppet'] = location_for(puppet_version)
57-
58-
# If facter or hiera versions have been specified via the environment
59-
# variables
57+
# If PUPPET_FORGE_TOKEN is set then use authenticated source for both puppet and facter, since facter is a transitive dependency of puppet
58+
# Otherwise, do as before and use location_for to fetch gems from the default source
59+
if !ENV['PUPPET_FORGE_TOKEN'].to_s.empty?
60+
gems['puppet'] = ['~> 8.11', { require: false, source: 'https://rubygems-puppetcore.puppet.com' }]
61+
gems['facter'] = ['~> 4.11', { require: false, source: 'https://rubygems-puppetcore.puppet.com' }]
62+
else
63+
gems['puppet'] = location_for(puppet_version)
64+
gems['facter'] = location_for(facter_version) if facter_version
65+
end
6066

61-
gems['facter'] = location_for(facter_version) if facter_version
6267
gems['hiera'] = location_for(hiera_version) if hiera_version
6368

6469
gems.each do |gem_name, gem_params|

Rakefile

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,12 @@ require 'puppet-syntax/tasks/puppet-syntax'
77
require 'puppet-strings/tasks' if Gem.loaded_specs.key? 'puppet-strings'
88

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

metadata.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -81,10 +81,10 @@
8181
"requirements": [
8282
{
8383
"name": "puppet",
84-
"version_requirement": ">= 7.0.0 < 9.0.0"
84+
"version_requirement": ">= 8.0.0 < 9.0.0"
8585
}
8686
],
8787
"template-url": "https://github.com/puppetlabs/pdk-templates.git#main",
88-
"template-ref": "tags/3.2.0.4-0-g5d17ec1",
89-
"pdk-version": "3.2.0"
88+
"template-ref": "heads/main-0-ga1e4056",
89+
"pdk-version": "3.5.0 (ga43db72)"
9090
}

spec/spec_helper_local.rb

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -44,14 +44,14 @@
4444
end
4545
end
4646

47-
shared_context 'when Debian 10' do
48-
let(:facts) { on_supported_os['debian-10-x86_64'] }
49-
end
50-
5147
shared_context 'when Debian 11' do
5248
let(:facts) { on_supported_os['debian-11-x86_64'] }
5349
end
5450

51+
shared_context 'when Debian 12' do
52+
let(:facts) { on_supported_os['debian-12-x86_64'] }
53+
end
54+
5555
shared_context 'when Debian Unstable' do
5656
let(:facts) do
5757
{

spec/unit/classes/firewall_linux_debian_spec.rb

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33
require 'spec_helper'
44

55
describe 'firewall::linux::debian', type: :class do
6-
context 'with Debian 10' do
7-
include_examples 'when Debian 10'
6+
context 'with Debian 11' do
7+
include_examples 'when Debian 11'
88

99
it {
1010
expect(subject).to contain_package('iptables-persistent').with(
@@ -21,10 +21,10 @@
2121
}
2222
end
2323

24-
context 'with Debian 10, enable => false' do
24+
context 'with Debian 11, enable => false' do
2525
let(:params) { { enable: 'false' } }
2626

27-
include_examples 'when Debian 10'
27+
include_examples 'when Debian 11'
2828

2929
it {
3030
expect(subject).to contain_service('netfilter-persistent').with(
@@ -33,10 +33,10 @@
3333
}
3434
end
3535

36-
context 'with Debian 10, ensure => stopped' do
36+
context 'with Debian 11, ensure => stopped' do
3737
let(:params) { { ensure: 'stopped' } }
3838

39-
include_examples 'when Debian 10'
39+
include_examples 'when Debian 11'
4040

4141
it {
4242
expect(subject).to contain_service('netfilter-persistent').with(
@@ -45,8 +45,8 @@
4545
}
4646
end
4747

48-
context 'with Debian 11' do
49-
include_examples 'when Debian 11'
48+
context 'with Debian 12' do
49+
include_examples 'when Debian 12'
5050

5151
it {
5252
expect(subject).to contain_package('iptables-persistent').with(
@@ -63,10 +63,10 @@
6363
}
6464
end
6565

66-
context 'with Debian 11, enable => false' do
66+
context 'with Debian 12, enable => false' do
6767
let(:params) { { enable: 'false' } }
6868

69-
include_examples 'when Debian 11'
69+
include_examples 'when Debian 12'
7070

7171
it {
7272
expect(subject).to contain_service('netfilter-persistent').with(
@@ -75,10 +75,10 @@
7575
}
7676
end
7777

78-
context 'with Debian 11, ensure => stopped' do
78+
context 'with Debian 12, ensure => stopped' do
7979
let(:params) { { ensure: 'stopped' } }
8080

81-
include_examples 'when Debian 11'
81+
include_examples 'when Debian 12'
8282

8383
it {
8484
expect(subject).to contain_service('netfilter-persistent').with(

0 commit comments

Comments
 (0)