abide_dev_utils 0.18.4 → 0.18.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,169 @@
1
+
2
+ {
3
+ "aio_agent_version": "8.10.0",
4
+ "dmi": {
5
+ "manufacturer": "innotek GmbH",
6
+ "product": {
7
+ "name": "VirtualBox",
8
+ "serial_number": "VirtualBox-8afd7ad4-bfe9-4f5a-8d30-93c42b25907d",
9
+ "uuid": "8AFD7AD4-BFE9-4F5A-8D30-93C42B25907D"
10
+ }
11
+ },
12
+ "env_windows_installdir": "C:\\Program Files\\Puppet Labs\\Puppet",
13
+ "facterversion": "4.10.0",
14
+ "fips_enabled": false,
15
+ "hypervisors": {
16
+ "virtualbox": {
17
+ "revision": "167084",
18
+ "version": "7.1.6"
19
+ }
20
+ },
21
+ "identity": {
22
+ "privileged": true,
23
+ "user": "FOO\\vagrant"
24
+ },
25
+ "is_virtual": true,
26
+ "kernel": "windows",
27
+ "kernelmajversion": "10.0",
28
+ "kernelrelease": "10.0.20348",
29
+ "kernelversion": "10.0.20348",
30
+ "memory": {
31
+ "system": {
32
+ "available": "671.45 MiB",
33
+ "available_bytes": 704065536,
34
+ "capacity": "66.92%",
35
+ "total": "1.98 GiB",
36
+ "total_bytes": 2128289792,
37
+ "used": "1.33 GiB",
38
+ "used_bytes": 1424224256
39
+ }
40
+ },
41
+ "networking": {
42
+ "dhcp": "10.0.2.2",
43
+ "domain": "example.com",
44
+ "fqdn": "foo.example.com",
45
+ "hostname": "foo",
46
+ "interfaces": {
47
+ "Ethernet": {
48
+ "bindings": [
49
+ {
50
+ "address": "10.0.2.15",
51
+ "netmask": "255.255.255.0",
52
+ "network": "10.0.2.0"
53
+ }
54
+ ],
55
+ "bindings6": [
56
+ {
57
+ "address": "fd00::46ab:507:687:5b80",
58
+ "netmask": "ffff:ffff:ffff:ffff::",
59
+ "network": "fd00::",
60
+ "scope6": "global"
61
+ },
62
+ {
63
+ "address": "fe80::aff:b25e:a03e:f84f",
64
+ "netmask": "ffff:ffff:ffff:ffff::",
65
+ "network": "fe80::",
66
+ "scope6": "link"
67
+ }
68
+ ],
69
+ "dhcp": "10.0.2.2",
70
+ "ip": "10.0.2.15",
71
+ "ip6": "fd00::46ab:507:687:5b80",
72
+ "mac": "08:00:27:07:2A:6E",
73
+ "mtu": 1500,
74
+ "netmask": "255.255.255.0",
75
+ "netmask6": "ffff:ffff:ffff:ffff::",
76
+ "network": "10.0.2.0",
77
+ "network6": "fd00::",
78
+ "scope6": "global"
79
+ }
80
+ },
81
+ "ip": "10.0.2.15",
82
+ "ip6": "fd00::46ab:507:687:5b80",
83
+ "mac": "08:00:27:07:2A:6E",
84
+ "mtu": 1500,
85
+ "netmask": "255.255.255.0",
86
+ "netmask6": "ffff:ffff:ffff:ffff::",
87
+ "network": "10.0.2.0",
88
+ "network6": "fd00::",
89
+ "primary": "Ethernet",
90
+ "scope6": "global"
91
+ },
92
+ "os": {
93
+ "architecture": "x64",
94
+ "family": "windows",
95
+ "hardware": "x86_64",
96
+ "name": "windows",
97
+ "release": {
98
+ "full": "2025",
99
+ "major": "2025"
100
+ },
101
+ "windows": {
102
+ "display_version": "24H2",
103
+ "edition_id": "ServerStandardEval",
104
+ "installation_type": "Server Core",
105
+ "product_name": "Windows Server 2025 Standard Evaluation",
106
+ "release_id": "24H2",
107
+ "system32": "C:\\Windows\\system32"
108
+ }
109
+ },
110
+ "path": "C:\\Program Files\\Puppet Labs\\Puppet\\puppet\\bin;C:\\Program Files\\Puppet Labs\\Puppet\\bin;C:\\Windows\\system32;C:\\Windows;C:\\Windows\\System32\\Wbem;C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\;C:\\Windows\\System32\\OpenSSH\\;C:\\Program Files\\OpenSSH-Win64;C:\\Users\\vagrant\\AppData\\Local\\Microsoft\\WindowsApps",
111
+ "processors": {
112
+ "cores": 2,
113
+ "count": 2,
114
+ "isa": "x64",
115
+ "models": [
116
+ "12th Gen Intel(R) Core(TM) i9-12900K"
117
+ ],
118
+ "physicalcount": 1,
119
+ "threads": 1
120
+ },
121
+ "puppetversion": "8.10.0",
122
+ "ruby": {
123
+ "platform": "x64-mingw32",
124
+ "sitedir": "C:/Program Files/Puppet Labs/Puppet/puppet/lib/ruby/site_ruby/3.2.0",
125
+ "version": "3.2.5"
126
+ },
127
+ "ssh": {
128
+ "dsa": {
129
+ "fingerprints": {
130
+ "sha1": "SSHFP 2 1 a8d082d65ba073f4b588ca1532b2afff564655a5",
131
+ "sha256": "SSHFP 2 2 d58da160af2402446a90fefa3406636720cd41086332826939d95c9e3093b052"
132
+ },
133
+ "key": "AAAAB3NzaC1kc3MAAACBAKKFEAtK0bNFrprCzPCwDTRR9kTrsuVgGhfWHH/z6cDb2MW3MiZR7FwPAMjyF8uDkOmujzx4v+T6OzqgjEm3d/AIbaBY7Ngk19RMGd6DcP6jj6356p1yQmZP/YRinSfYM6I6sYmjPopjREh7oCSw+mAtbpa6o0GZcwf8xyGU2CGvAAAAFQDSzyN8rO7yngMTJnsc5judSNv6nQAAAIAH7xfPEkE7jMV/BuVdmCsMfmHpI+KiKnyp+JjRBgz13FxfvWUu+tbCP6xJ2yeECKjk1oFfT/bsrKm0ChkZ7HssYRKcQW9CvcH6Z5ttRx9Oqm8PCM0kJpSxWm5a5dFPiHMdBCRIvJNksW7BPLCkuj/D+XzHCaDCDECzXELksPpspQAAAIBsV6OxseQ22u+48sDJJj1Jwl72cFtcxoZ7dFs/q78/xxeKHIRjNzTiaMqhBPY4V+2Sm6Zzgu2wJOQXYkEkq5F8X3BeTB0+xFkGPUXa/VexXJD71/Mc2uq0b24Z4ZqyqJfigp3PM6GzWuOUC14aS56t++ddGG690sPW1PhebPdgrw==",
134
+ "type": "ssh-dss"
135
+ },
136
+ "ecdsa": {
137
+ "fingerprints": {
138
+ "sha1": "SSHFP 3 1 92c1a6d77ee3c13a54441b60a59a646f505f1309",
139
+ "sha256": "SSHFP 3 2 6630092ecc8589ad778944e3d203de842348b151e0dd3a0457533701a7fbb383"
140
+ },
141
+ "key": "AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBJuKojHoqRInzDL4edrdYI7gbbBrhj/oSptoChw4Y62/9id2Li73+6MEPc5RjnY+d5bBu0zUBUN5bSIEa0EaRI4=",
142
+ "type": "ecdsa-sha2-nistp256"
143
+ },
144
+ "ed25519": {
145
+ "fingerprints": {
146
+ "sha1": "SSHFP 4 1 baaf376fcd4d0e07122280476eb61443fd17ab7f",
147
+ "sha256": "SSHFP 4 2 435cfd5fe8021a37548cc0e595c56c72de2c705f84992413f686c97de282d844"
148
+ },
149
+ "key": "AAAAC3NzaC1lZDI1NTE5AAAAIKRQrcC/RFnVsJO8EI0Y0okEa6cfasfwaDYNXsRKlmb6",
150
+ "type": "ssh-ed25519"
151
+ },
152
+ "rsa": {
153
+ "fingerprints": {
154
+ "sha1": "SSHFP 1 1 959d4674df454c8659a7da15a806b1892c784ce5",
155
+ "sha256": "SSHFP 1 2 95c4ce016dae223545270157b40fdb6e1d3b854464460637ba3e707316ec3c33"
156
+ },
157
+ "key": "AAAAB3NzaC1yc2EAAAADAQABAAABgQC/gpkm190gP0gU8pD15mzIRdZl22QzkOUMnODF53qcYOgprQG4xni+1IGXZUrt2JoTbFG5yj0IVz6lZ+BOuk55vZ+WStIHMvVgAwxahelwaEHbbC0F7hAqfuPtUaqGSrjvGjRlGUEMZD/TTI/3jcvhb6ps31YsWHdhqRwo7nUPAWLVwpmX9EI1XENnwj38BD9jdLbhiXqJZMNyGmbivLwoQYUPZrtNGmO44Hfxx0rZqoXk5uexp/XR7r3qM3M4aa62zQKsDLDnfjwidkIbkUNTZgc1zC4tDQfd0zfa2LDiiawKCXBs18MhzcZJ581VCgs/D8Oa+PPOs3f4Ecl93HKd8bHiJ16ZBdBvcDFa9nZTQgQqyGZa72TyxXjwsyHHIOQ8wsAScjAufnBNoVFUugjgIhF9cuo/AfcMPGhUAgw2tlD6jT5QJyYOg7YG87qGKzU4XYeVQMnLgE1esoDkSA+IWmIX0rbDFoOi7ex8qComb7Z+HCldm7uIu5lgWE3zxwE=",
158
+ "type": "ssh-rsa"
159
+ }
160
+ },
161
+ "system_uptime": {
162
+ "days": 0,
163
+ "hours": 0,
164
+ "seconds": 60,
165
+ "uptime": "0:01 hours"
166
+ },
167
+ "timezone": "Coordinated Universal Time",
168
+ "virtual": "virtualbox"
169
+ }
@@ -65,7 +65,9 @@ module AbideDevUtils
65
65
  end
66
66
 
67
67
  def fact_sets
68
- @fact_sets ||= FacterDB.facterdb_fact_files.each_with_object({}) do |f, h|
68
+ external_fact_path = File.expand_path(File.join(__dir__, '../../../files/fact_sets'))
69
+ all_facts = (FacterDB.default_fact_files + FacterDB.external_fact_files(external_fact_path)).uniq
70
+ @fact_sets ||= all_facts.each_with_object({}) do |f, h|
69
71
  facter_version = File.basename(File.dirname(f))
70
72
  fact_set = h[facter_version] || FactSet.new(facter_version)
71
73
  fact_set.load_facts(f)
@@ -229,7 +231,9 @@ module AbideDevUtils
229
231
  # end
230
232
 
231
233
  def fact_sets
232
- @fact_sets ||= FacterDB.facterdb_fact_files.each_with_object([]) do |f, ary|
234
+ external_fact_path = File.expand_path(File.join(__dir__, '../../../files/fact_sets'))
235
+ all_facts = (FacterDB.default_fact_files + FacterDB.external_fact_files(external_fact_path)).uniq
236
+ @fact_sets ||= all_facts.each_with_object([]) do |f, ary|
233
237
  facter_version = File.basename(File.dirname(f))
234
238
  fact_set = ary.find { |fs| fs.facter_version == facter_version }
235
239
  fact_set ||= FactSet.new(facter_version)
@@ -283,7 +287,7 @@ module AbideDevUtils
283
287
  rescue SystemStackError
284
288
  locals = {
285
289
  prev_ver_map: @previous_major_version_map,
286
- current_version: current_version,
290
+ current_version: current_version
287
291
  }
288
292
  raise "Failed to find output while recursing versions. Locals: #{locals}"
289
293
  end
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'pathname'
4
- require 'metadata-json-lint'
4
+ require 'metadata_json_lint'
5
5
  require 'puppet-lint'
6
6
  require 'json'
7
7
 
@@ -118,14 +118,22 @@ module AbideDevUtils
118
118
  end
119
119
 
120
120
  ver_req = MetadataJsonLint::VersionRequirement.new(dependency['version_requirement'])
121
- return [nil, metadata_dep_open_ended(dependency['name'], dependency['version_requirement'])] if ver_req.open_ended?
122
- return [nil, metadata_dep_mixed_syntax(dependency['name'], dependency['version_requirement'])] if ver_req.mixed_syntax?
121
+ if ver_req.open_ended?
122
+ return [nil,
123
+ metadata_dep_open_ended(dependency['name'], dependency['version_requirement'])]
124
+ end
125
+ if ver_req.mixed_syntax?
126
+ return [nil,
127
+ metadata_dep_mixed_syntax(dependency['name'],
128
+ dependency['version_requirement'])]
129
+ end
123
130
 
124
131
  [nil, nil]
125
132
  end
126
133
 
127
134
  def metadata_dep_open_ended(name, version_req)
128
- metadata_err(:dependencies, "Dependency #{name} has an open ended dependency version requirement #{version_req}")
135
+ metadata_err(:dependencies,
136
+ "Dependency #{name} has an open ended dependency version requirement #{version_req}")
129
137
  end
130
138
 
131
139
  def metadata_dep_mixed_syntax(name, version_req)
@@ -135,7 +143,8 @@ module AbideDevUtils
135
143
  end
136
144
 
137
145
  def metadata_dep_version_range(name)
138
- metadata_err(:dependencies, "Dependency #{name} has a 'version_range' attribute which is no longer used by the forge.")
146
+ metadata_err(:dependencies,
147
+ "Dependency #{name} has a 'version_range' attribute which is no longer used by the forge.")
139
148
  end
140
149
 
141
150
  def metadata_err(check, msg)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module AbideDevUtils
4
- VERSION = "0.18.4"
4
+ VERSION = "0.18.6"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: abide_dev_utils
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.18.4
4
+ version: 0.18.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - abide-team
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-10-15 00:00:00.000000000 Z
11
+ date: 2026-05-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri
@@ -38,20 +38,6 @@ dependencies:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '3.0'
41
- - !ruby/object:Gem::Dependency
42
- name: puppet
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - ">="
46
- - !ruby/object:Gem::Version
47
- version: 7.0.0
48
- type: :runtime
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - ">="
53
- - !ruby/object:Gem::Version
54
- version: 7.0.0
55
41
  - !ruby/object:Gem::Dependency
56
42
  name: puppet-strings
57
43
  requirement: !ruby/object:Gem::Requirement
@@ -136,20 +122,34 @@ dependencies:
136
122
  - - "~>"
137
123
  - !ruby/object:Gem::Version
138
124
  version: '1.0'
125
+ - !ruby/object:Gem::Dependency
126
+ name: puppet-lint
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - "~>"
130
+ - !ruby/object:Gem::Version
131
+ version: '4.0'
132
+ type: :runtime
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - "~>"
137
+ - !ruby/object:Gem::Version
138
+ version: '4.0'
139
139
  - !ruby/object:Gem::Dependency
140
140
  name: facterdb
141
141
  requirement: !ruby/object:Gem::Requirement
142
142
  requirements:
143
143
  - - "~>"
144
144
  - !ruby/object:Gem::Version
145
- version: 2.1.0
145
+ version: 4.1.0
146
146
  type: :runtime
147
147
  prerelease: false
148
148
  version_requirements: !ruby/object:Gem::Requirement
149
149
  requirements:
150
150
  - - "~>"
151
151
  - !ruby/object:Gem::Version
152
- version: 2.1.0
152
+ version: 4.1.0
153
153
  - !ruby/object:Gem::Dependency
154
154
  name: metadata-json-lint
155
155
  requirement: !ruby/object:Gem::Requirement
@@ -362,6 +362,7 @@ files:
362
362
  - ".rubocop.yml"
363
363
  - ".rubocop_todo.yml"
364
364
  - CHANGELOG.md
365
+ - CLAUDE.md
365
366
  - CODEOWNERS
366
367
  - Gemfile
367
368
  - Gemfile.lock
@@ -372,7 +373,10 @@ files:
372
373
  - bin/abide.rb
373
374
  - bin/console
374
375
  - bin/setup
376
+ - docs/ARCHITECTURE.md
375
377
  - exe/abide
378
+ - files/fact_sets/redhat-10-x86_64.facts
379
+ - files/fact_sets/windows-2025-x86_64.facts
376
380
  - lib/abide_dev_utils.rb
377
381
  - lib/abide_dev_utils/cli.rb
378
382
  - lib/abide_dev_utils/cli/abstract.rb
@@ -486,7 +490,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
486
490
  - !ruby/object:Gem::Version
487
491
  version: '0'
488
492
  requirements: []
489
- rubygems_version: 3.5.18
493
+ rubygems_version: 3.5.22
490
494
  signing_key:
491
495
  specification_version: 4
492
496
  summary: Helper utilities for developing compliance Puppet code