diff --git a/.editorconfig b/.editorconfig
index 6e1faa73bc99322651d37b03aabb24a693f1f0e7..c181ad31d2557e198b98026b2f7a4d8a9055ef02 100644
--- a/.editorconfig
+++ b/.editorconfig
@@ -31,9 +31,14 @@ indent_size = 4
 [Makefile]
 indent_style = tab
 
-; The JSON files contain newlines inconsistently
-[*.json]
-insert_final_newline = ignore
-
 [*.{ps1,psm1}]
 indent_size = 4
+
+# Ignore paths
+[{LICENSE,REFERENCE.md}]
+charset = unset
+end_of_line = unset
+insert_final_newline = unset
+trim_trailing_whitespace = unset
+indent_style = unset
+indent_size = unset
diff --git a/.puppet-lint.rc b/.puppet-lint.rc
index cc96ece0513d69709b87af611173e2a6e4532f62..b0d8b004861bfb1b209c556727fc2500bd2b83c1 100644
--- a/.puppet-lint.rc
+++ b/.puppet-lint.rc
@@ -1 +1,4 @@
 --relative
+--no-80chars-check
+--no-lookup_in_parameter-check
+--ignore-paths=.vendor/**/*.pp,.bundle/**/*.pp,pkg/**/*.pp,spec/**/*.pp,tests/**/*.pp,types/**/*.pp,vendor/**/*.pp
diff --git a/.vscode/extensions.json b/.vscode/extensions.json
index 902e5f8b8d95d3c0c2c4db3579ce41dd628eb230..655b72c0dfe38c824d8a39414d7b1d68fd6b5e32 100644
--- a/.vscode/extensions.json
+++ b/.vscode/extensions.json
@@ -1,10 +1,9 @@
 {
   "recommendations": [
     "puppet.puppet-vscode",
-    "rebornix.Ruby",
     "ms-vscode.powershell",
     "EditorConfig.EditorConfig",
-    "glenbuktenica.unicode-substitutions"
+    "glenbuktenica.unicode-substitutions",
     "Shopify.ruby-lsp"
   ]
 }
diff --git a/Gemfile b/Gemfile
index b8e48cea7de5209ba0b8b793b3f3f7eef2d1e00d..8c63f50b4db071a6cd6e0db6be6f8aeccad2b9ca 100644
--- a/Gemfile
+++ b/Gemfile
@@ -22,9 +22,12 @@ group :development do
   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 "facterdb", '~> 2.1',                      require: false if Gem::Requirement.create(['< 3.0.0']).satisfied_by?(Gem::Version.new(RUBY_VERSION.dup))
+  gem "facterdb", '~> 3.0',                      require: false if Gem::Requirement.create(['>= 3.0.0']).satisfied_by?(Gem::Version.new(RUBY_VERSION.dup))
   gem "metadata-json-lint", '~> 4.0',            require: false
-  gem "rspec-puppet-facts", '~> 4.0',            require: false
+  gem "json-schema", '< 5.1.1',                  require: false
+  gem "rspec-puppet-facts", '~> 4.0',            require: false if Gem::Requirement.create(['< 3.0.0']).satisfied_by?(Gem::Version.new(RUBY_VERSION.dup))
+  gem "rspec-puppet-facts", '~> 5.0',            require: false if Gem::Requirement.create(['>= 3.0.0']).satisfied_by?(Gem::Version.new(RUBY_VERSION.dup))
   gem "dependency_checker", '~> 1.0.0',          require: false
   gem "parallel_tests", '= 3.12.1',              require: false
   gem "pry", '~> 0.10',                          require: false
@@ -34,13 +37,13 @@ group :development do
   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 "puppet-resource_api",                     require: false
   gem "webmock",                                 require: false
 end
 group :development, :release_prep do
   gem "puppet-strings", '~> 4.0',         require: false
-  gem "puppetlabs_spec_helper", '~> 7.0', require: false
+  gem "puppetlabs_spec_helper", '~> 8.0', require: false
+  gem "puppet-blacksmith", '~> 7.0',      require: false
 end
 group :system_tests do
   gem "puppet_litmus", '~> 1.0',   require: false, platforms: [:ruby, :x64_mingw]
diff --git a/Rakefile b/Rakefile
index 77590fe6f84e2a49cabfb16175ff7ef3706dcd74..cdbb93f2f7b6089e25120ceac46a346a63ebc5ad 100644
--- a/Rakefile
+++ b/Rakefile
@@ -7,3 +7,8 @@ require 'puppet-syntax/tasks/puppet-syntax'
 require 'puppet-strings/tasks' if Gem.loaded_specs.key? 'puppet-strings'
 
 PuppetLint.configuration.send('disable_relative')
+PuppetLint.configuration.send('disable_80chars')
+PuppetLint.configuration.send('disable_lookup_in_parameter')
+PuppetLint.configuration.fail_on_warnings = false
+PuppetLint.configuration.ignore_paths = [".vendor/**/*.pp", ".bundle/**/*.pp", "pkg/**/*.pp", "spec/**/*.pp", "tests/**/*.pp", "types/**/*.pp", "vendor/**/*.pp"]
+
diff --git a/metadata.json b/metadata.json
index 13283a70ec8b7d5c053c0c3c89825b8e4014a4d0..7dd70862d02013a0c8478b223442b68e4ffa45ed 100644
--- a/metadata.json
+++ b/metadata.json
@@ -30,7 +30,7 @@
       "version_requirement": ">= 7.24 < 9.0.0"
     }
   ],
-  "pdk-version": "3.3.0",
+  "pdk-version": "3.4.0",
   "template-url": "https://gitlab.it.liu.se/puppet-infra/pdk-templates.git#liu",
-  "template-ref": "heads/liu-0-g5dd7d7f"
+  "template-ref": "heads/liu-0-g967906f"
 }