openvox 8.19.2 → 8.20.0

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: aee9652d6d305f148340ca0549075b14115f8ae4fd72d26b08f4f6de52cfaf7f
4
- data.tar.gz: cebf9cccc4374f6e8b71376e48604658ff79a6ba1f19aa899b945bec05d6f798
3
+ metadata.gz: 91c67366f80e0f90b53567de5eea991ba6d36d5fa59af42d65a6975c619f119e
4
+ data.tar.gz: 2c8b8e00d4f6d2d468888e6126ee9bcc5db0f18748164e1c7cf2545cdd27de51
5
5
  SHA512:
6
- metadata.gz: ffa447bea4a9a6cc450b901f6b799a36769318621d7f554f301118388ae417673a08fb048808f01a61cc4d0fec23d7fc58cb2cd833230b8a5548070afe61492b
7
- data.tar.gz: 7435e8c3fdce5f5ca1015f30e13239dadd6caa1c4508ebacbd98a956259dd953c5be6f3b9982ea5460dc806942b43abd602f414c6fd767650bb66cc48baf9ae8
6
+ metadata.gz: 315686060fd5c3fd1a3df8c7163c5cf737ddd16e2a922175b0dc2901e6bd4763fad7315cbccc06fff944485cfbab6f3d232160e04b72898cdec10076cfbe3474
7
+ data.tar.gz: 1a5eecd081bc2d6ed326620a01b128056d2336002e0015b0627b0c7789a07be0f25ccc57e03db9f3ffbb35a7ee9e7b55f777bf42acdd03c511211ca11b27ac57
data/CHANGELOG.md CHANGED
@@ -2,36 +2,53 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file.
4
4
 
5
- ## [8.19.2](https://github.com/openvoxproject/puppet/tree/8.19.2) (2025-06-06)
5
+ ## [8.20.0](https://github.com/openvoxproject/openvox/tree/8.20.0) (2025-06-27)
6
6
 
7
- [Full Changelog](https://github.com/openvoxproject/puppet/compare/8.19.1...8.19.2)
7
+ [Full Changelog](https://github.com/openvoxproject/openvox/compare/8.19.2...8.20.0)
8
+
9
+ **Implemented enhancements:**
10
+
11
+ - Switch from facter to openfact [\#142](https://github.com/OpenVoxProject/openvox/pull/142) ([smortex](https://github.com/smortex))
12
+ - \(PUP-12083\) Update soft limit warning for fact value & name length [\#137](https://github.com/OpenVoxProject/openvox/pull/137) ([bastelfreak](https://github.com/bastelfreak))
13
+
14
+ **Fixed bugs:**
15
+
16
+ - Maintain consistent JSON formatting [\#132](https://github.com/OpenVoxProject/openvox/pull/132) ([bastelfreak](https://github.com/bastelfreak))
17
+
18
+ **Merged pull requests:**
19
+
20
+ - cleanup gem metadata after Perforce-\>OpenVoxProject migration [\#140](https://github.com/OpenVoxProject/openvox/pull/140) ([smortex](https://github.com/smortex))
21
+
22
+ ## [8.19.2](https://github.com/openvoxproject/openvox/tree/8.19.2) (2025-06-06)
23
+
24
+ [Full Changelog](https://github.com/openvoxproject/openvox/compare/8.19.1...8.19.2)
8
25
 
9
26
  **Fixed bugs:**
10
27
 
11
- - server\_facts: Switch implementation-\>serverimplementation [\#107](https://github.com/OpenVoxProject/puppet/pull/107) ([binford2k](https://github.com/binford2k))
12
- - Reflect Ruby 3.4 stack trace changes [\#100](https://github.com/OpenVoxProject/puppet/pull/100) ([ekohl](https://github.com/ekohl))
13
- - Add base64 as gem dependencies for Ruby 3.4 [\#98](https://github.com/OpenVoxProject/puppet/pull/98) ([ekohl](https://github.com/ekohl))
14
- - Add racc gem dependency [\#89](https://github.com/OpenVoxProject/puppet/pull/89) ([ekohl](https://github.com/ekohl))
28
+ - server\_facts: Switch implementation-\>serverimplementation [\#107](https://github.com/OpenVoxProject/openvox/pull/107) ([binford2k](https://github.com/binford2k))
29
+ - Reflect Ruby 3.4 stack trace changes [\#100](https://github.com/OpenVoxProject/openvox/pull/100) ([ekohl](https://github.com/ekohl))
30
+ - Add base64 as gem dependencies for Ruby 3.4 [\#98](https://github.com/OpenVoxProject/openvox/pull/98) ([ekohl](https://github.com/ekohl))
31
+ - Add racc gem dependency [\#89](https://github.com/OpenVoxProject/openvox/pull/89) ([ekohl](https://github.com/ekohl))
15
32
 
16
- ## [8.19.1](https://github.com/openvoxproject/puppet/tree/8.19.1) (2025-06-03)
33
+ ## [8.19.1](https://github.com/openvoxproject/openvox/tree/8.19.1) (2025-06-03)
17
34
 
18
- [Full Changelog](https://github.com/openvoxproject/puppet/compare/8.19.0...8.19.1)
35
+ [Full Changelog](https://github.com/openvoxproject/openvox/compare/8.19.0...8.19.1)
19
36
 
20
37
  **Fixed bugs:**
21
38
 
22
- - Fix invalid gemspec in AIO package [\#91](https://github.com/OpenVoxProject/puppet/pull/91) ([smortex](https://github.com/smortex))
39
+ - Fix invalid gemspec in AIO package [\#91](https://github.com/OpenVoxProject/openvox/pull/91) ([smortex](https://github.com/smortex))
23
40
 
24
- ## [8.19.0](https://github.com/openvoxproject/puppet/tree/8.19.0) (2025-05-30)
41
+ ## [8.19.0](https://github.com/openvoxproject/openvox/tree/8.19.0) (2025-05-30)
25
42
 
26
- [Full Changelog](https://github.com/openvoxproject/puppet/compare/8.18.1...8.19.0)
43
+ [Full Changelog](https://github.com/openvoxproject/openvox/compare/8.18.1...8.19.0)
27
44
 
28
45
  **Implemented enhancements:**
29
46
 
30
- - Add `implementation` fact to agent and server. [\#63](https://github.com/OpenVoxProject/puppet/pull/63) ([ffrank](https://github.com/ffrank))
47
+ - Add `implementation` fact to agent and server. [\#63](https://github.com/OpenVoxProject/openvox/pull/63) ([ffrank](https://github.com/ffrank))
31
48
 
32
49
  **Fixed bugs:**
33
50
 
34
- - Replace `erase` with `remove`, since it's no longer supported with DNF5 [\#68](https://github.com/OpenVoxProject/puppet/pull/68) ([Stricken1670](https://github.com/Stricken1670))
51
+ - Replace `erase` with `remove`, since it's no longer supported with DNF5 [\#68](https://github.com/OpenVoxProject/openvox/pull/68) ([Stricken1670](https://github.com/Stricken1670))
35
52
 
36
53
 
37
54
 
data/Gemfile CHANGED
@@ -13,10 +13,10 @@ def location_for(place, fake_version = nil)
13
13
  end
14
14
 
15
15
  # Make sure these gem requirements are in sync with the gempspec. Specifically,
16
- # the runtime_dependencies in puppet.gemspec match the runtime dependencies here
17
- # (like facter, semantic_puppet, and puppet-resource_api)
16
+ # the runtime_dependencies in openvox.gemspec match the runtime dependencies here
17
+ # (like openfact, semantic_puppet, and puppet-resource_api)
18
18
 
19
- gem "facter", *location_for(ENV['FACTER_LOCATION'] || ["~> 4.3"])
19
+ gem "openfact", *location_for(ENV['OPENFACT_LOCATION'] || ["~> 5.0"])
20
20
  gem "semantic_puppet", *location_for(ENV['SEMANTIC_PUPPET_LOCATION'] || ["~> 1.0"])
21
21
  gem "puppet-resource_api", *location_for(ENV['RESOURCE_API_LOCATION'] || ["~> 1.5"])
22
22
 
@@ -47,6 +47,7 @@ group(:test) do
47
47
  gem "rspec", "~> 3.1", require: false
48
48
  gem "rspec-expectations", ["~> 3.9", "!= 3.9.3"]
49
49
  gem "rspec-its", "~> 1.1", require: false
50
+ gem 'rspec-mocks', '< 3.13.3', require: false # breaking change afterwards: https://github.com/rspec/rspec-mocks/pull/1596
50
51
  gem 'vcr', '~> 6.1', require: false
51
52
  gem 'webmock', '~> 3.0', require: false
52
53
  gem 'webrick', '~> 1.7', require: false
data/README.md CHANGED
@@ -36,9 +36,9 @@ rest of the [developer documents](docs/index.md).
36
36
 
37
37
  ## Licensing
38
38
 
39
- See [LICENSE](LICENSE) file. OpenVox is licensed by Vox Pupuli as a community maintained
40
- implementation of Puppet. Vox Pupuli can be contacted at: voxpupuli@groups.io.
41
- Puppet itself is licensed by Puppet, Inc. under the Apache license. Puppet, Inc. can be contacted at: info@puppet.com
39
+ See [LICENSE](LICENSE) file. OpenVox is licensed by the OpenVox Project as a community maintained
40
+ implementation of Puppet. The OpenVox Project can be contacted at: openvox@voxpupuli.org.
41
+ Puppet itself is licensed by Puppet, Inc. under the Apache license. Puppet, Inc. can be contacted at: info@puppet.com.
42
42
 
43
43
  ## Support
44
44
 
data/Rakefile CHANGED
@@ -59,7 +59,7 @@ end
59
59
  namespace :pl_ci do
60
60
  desc 'Build puppet gems'
61
61
  task :gem_build, [:gemspec] do |t, args|
62
- args.with_defaults(gemspec: 'puppet.gemspec')
62
+ args.with_defaults(gemspec: 'openvox.gemspec')
63
63
  stdout, stderr, status = Open3.capture3(<<~END)
64
64
  gem build #{args.gemspec} --platform x86-mingw32 && \
65
65
  gem build #{args.gemspec} --platform x64-mingw32 && \
@@ -79,11 +79,11 @@ namespace :pl_ci do
79
79
  # this is taken from `rake package:nightly_gem`
80
80
  extended_dot_version = %x{git describe --tags --dirty --abbrev=7}.chomp.tr('-', '.')
81
81
 
82
- # we must create tempfile in the same directory as puppetg.gemspec, since
82
+ # we must create tempfile in the same directory as openvox.gemspec, since
83
83
  # it uses __dir__ to determine which files to include
84
84
  require 'tempfile'
85
85
  Tempfile.create('gemspec', __dir__) do |dst|
86
- File.open('puppet.gemspec', 'r') do |src|
86
+ File.open('openvox.gemspec', 'r') do |src|
87
87
  src.readlines.each do |line|
88
88
  if line.match?(/version\s*=\s*['"][0-9.]+['"]/)
89
89
  line = "spec.version = '#{extended_dot_version}'"
@@ -158,7 +158,7 @@ begin
158
158
  All notable changes to this project will be documented in this file.
159
159
  HEADER
160
160
  config.user = "openvoxproject"
161
- config.project = "puppet"
161
+ config.project = "openvox"
162
162
  config.exclude_labels = %w[dependencies duplicate question invalid wontfix wont-fix modulesync skip-changelog]
163
163
  config.since_tag = "8.18.1"
164
164
  config.future_release = Puppet::PUPPETVERSION
@@ -169,3 +169,6 @@ rescue LoadError
169
169
  abort("Run `bundle install --with release` to install the `github_changelog_generator` gem.")
170
170
  end
171
171
  end
172
+
173
+ desc 'Prepare for a release'
174
+ task 'release:prepare' => [:changelog]
@@ -135,36 +135,37 @@ class Puppet::Configurer
135
135
  Puppet.warning _("The current total number of fact values: %{size} exceeds the fact values limit: %{max_size}") % { size: size, max_size: max_number }
136
136
  end
137
137
 
138
- def warn_fact_name_length(name, max_length)
139
- Puppet.warning _("Fact %{name} with length: '%{length}' exceeds the length limit: %{limit}") % { name: name, length: name.to_s.bytesize, limit: max_length }
138
+ def warn_fact_name_length(name, max_length, fact_name_length)
139
+ Puppet.warning _("Fact %{name} with length: %{length} exceeds the fact name length limit: %{limit}") % { name: name, length: fact_name_length, limit: max_length }
140
140
  end
141
141
 
142
142
  def warn_number_of_top_level_facts(size, max_number)
143
143
  Puppet.warning _("The current number of top level facts: %{size} exceeds the top facts limit: %{max_size}") % { size: size, max_size: max_number }
144
144
  end
145
145
 
146
- def warn_fact_value_length(value, max_length)
147
- Puppet.warning _("Fact value '%{value}' with the value length: '%{length}' exceeds the value length limit: %{max_length}") % { value: value, length: value.to_s.bytesize, max_length: max_length }
146
+ def warn_fact_value_length(name, value, max_length)
147
+ Puppet.warning _("Fact %{name} with value %{value} with the value length: %{length} exceeds the value length limit: %{max_length}") % { name: name, value: value, length: value.to_s.bytesize, max_length: max_length }
148
148
  end
149
149
 
150
150
  def warn_fact_payload_size(payload, max_size)
151
- Puppet.warning _("Payload with the current size of: '%{payload}' exceeds the payload size limit: %{max_size}") % { payload: payload, max_size: max_size }
151
+ Puppet.warning _("Payload with the current size of: %{payload} exceeds the payload size limit: %{max_size}") % { payload: payload, max_size: max_size }
152
152
  end
153
153
 
154
- def check_fact_name_length(name, number_of_dots)
154
+ def check_fact_name_length(fact_path, number_of_dots)
155
155
  max_length = Puppet[:fact_name_length_soft_limit]
156
156
  return if max_length.zero?
157
157
 
158
+ name_without_dots = fact_path.join()
158
159
  # rough byte size estimations of fact path as a postgresql btree index
159
- size_as_btree_index = 8 + (number_of_dots * 2) + name.to_s.bytesize
160
- warn_fact_name_length(name, max_length) if size_as_btree_index > max_length
160
+ size_as_btree_index = 8 + (number_of_dots * 2) + name_without_dots.to_s.bytesize
161
+ warn_fact_name_length(fact_path.join('.'), max_length, size_as_btree_index) if size_as_btree_index > max_length
161
162
  end
162
163
 
163
- def check_fact_values_length(values)
164
+ def check_fact_values_length(name, values)
164
165
  max_length = Puppet[:fact_value_length_soft_limit]
165
166
  return if max_length.zero?
166
167
 
167
- warn_fact_value_length(values, max_length) if values.to_s.bytesize > max_length
168
+ warn_fact_value_length(name, values, max_length) if values.to_s.bytesize > max_length
168
169
  end
169
170
 
170
171
  def check_top_level_number_limit(size)
@@ -204,8 +205,8 @@ class Puppet::Configurer
204
205
  path.pop
205
206
  end
206
207
  else
207
- check_fact_name_length(path.join(), path.size)
208
- check_fact_values_length(object)
208
+ check_fact_name_length(path, path.size)
209
+ check_fact_values_length(path.join('.'), object)
209
210
  @number_of_facts += 1
210
211
  end
211
212
  end
@@ -167,7 +167,15 @@ Puppet::Indirector::Face.define(:facts, '0.0.1') do
167
167
 
168
168
  case result
169
169
  when Array, Hash
170
- Puppet::Util::Json.dump(result, :pretty => true)
170
+ # JSON < 2.8.0 would pretty print empty arrays and hashes with newlines
171
+ # Maintain that behavior for our users for now
172
+ if result.is_a?(Array) && result.empty?
173
+ "[\n\n]"
174
+ elsif result.is_a?(Hash) && result.empty?
175
+ "{\n}"
176
+ else
177
+ Puppet::Util::Json.dump(result, :pretty => true)
178
+ end
171
179
  else # one of VALID_TYPES above
172
180
  result
173
181
  end
@@ -8,7 +8,7 @@
8
8
  # Raketasks and such to set the version based on the output of `git describe`
9
9
 
10
10
  module Puppet
11
- PUPPETVERSION = '8.19.2'
11
+ PUPPETVERSION = '8.20.0'
12
12
  IMPLEMENTATION = 'openvox'
13
13
 
14
14
  ##
data/tasks/vox.rake ADDED
@@ -0,0 +1,23 @@
1
+ namespace :vox do
2
+ desc 'Update the version in preparation for a release'
3
+ task 'version:bump:full', [:version] do |_, args|
4
+ abort 'You must provide a tag.' if args[:version].nil? || args[:version].empty?
5
+ version = args[:version]
6
+ abort "#{version} does not appear to be a valid version string in x.y.z format" unless Gem::Version.correct?(version)
7
+
8
+ # Update lib/puppet/version.rb and openvox.gemspec
9
+ puts "Setting version to #{version}"
10
+
11
+ data = File.read('lib/puppet/version.rb')
12
+ new_data = data.sub(/PUPPETVERSION = '\d+\.\d+\.\d+(\.rc\d+)?'/, "PUPPETVERSION = '#{version}'")
13
+ warn 'Failed to update version in lib/puppet/version.rb' if data == new_data
14
+
15
+ File.write('lib/puppet/version.rb', new_data)
16
+
17
+ data = File.read('openvox.gemspec')
18
+ new_data = data.sub(/spec.version = "\d+\.\d+\.\d+(\.rc\d+)?"/, "spec.version = \"#{version}\"")
19
+ warn 'Failed to update version in openvox.gemspec' if data == new_data
20
+
21
+ File.write('openvox.gemspec', new_data)
22
+ end
23
+ end
metadata CHANGED
@@ -1,10 +1,10 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: openvox
3
3
  version: !ruby/object:Gem::Version
4
- version: 8.19.2
4
+ version: 8.20.0
5
5
  platform: ruby
6
6
  authors:
7
- - Vox Pupuli
7
+ - OpenVox Project
8
8
  bindir: bin
9
9
  cert_chain: []
10
10
  date: 2012-08-17 00:00:00.000000000 Z
@@ -18,7 +18,7 @@ dependencies:
18
18
  version: '0.1'
19
19
  - - "<"
20
20
  - !ruby/object:Gem::Version
21
- version: '0.3'
21
+ version: '0.4'
22
22
  type: :runtime
23
23
  prerelease: false
24
24
  version_requirements: !ruby/object:Gem::Requirement
@@ -28,7 +28,7 @@ dependencies:
28
28
  version: '0.1'
29
29
  - - "<"
30
30
  - !ruby/object:Gem::Version
31
- version: '0.3'
31
+ version: '0.4'
32
32
  - !ruby/object:Gem::Dependency
33
33
  name: benchmark
34
34
  requirement: !ruby/object:Gem::Requirement
@@ -77,26 +77,6 @@ dependencies:
77
77
  - - "~>"
78
78
  - !ruby/object:Gem::Version
79
79
  version: '1.0'
80
- - !ruby/object:Gem::Dependency
81
- name: facter
82
- requirement: !ruby/object:Gem::Requirement
83
- requirements:
84
- - - ">="
85
- - !ruby/object:Gem::Version
86
- version: 4.3.0
87
- - - "<"
88
- - !ruby/object:Gem::Version
89
- version: '5'
90
- type: :runtime
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - ">="
95
- - !ruby/object:Gem::Version
96
- version: 4.3.0
97
- - - "<"
98
- - !ruby/object:Gem::Version
99
- version: '5'
100
80
  - !ruby/object:Gem::Dependency
101
81
  name: fast_gettext
102
82
  requirement: !ruby/object:Gem::Requirement
@@ -159,6 +139,20 @@ dependencies:
159
139
  - - "~>"
160
140
  - !ruby/object:Gem::Version
161
141
  version: '1.13'
142
+ - !ruby/object:Gem::Dependency
143
+ name: openfact
144
+ requirement: !ruby/object:Gem::Requirement
145
+ requirements:
146
+ - - "~>"
147
+ - !ruby/object:Gem::Version
148
+ version: '5.0'
149
+ type: :runtime
150
+ prerelease: false
151
+ version_requirements: !ruby/object:Gem::Requirement
152
+ requirements:
153
+ - - "~>"
154
+ - !ruby/object:Gem::Version
155
+ version: '5.0'
162
156
  - !ruby/object:Gem::Dependency
163
157
  name: ostruct
164
158
  requirement: !ruby/object:Gem::Requirement
@@ -232,7 +226,7 @@ dependencies:
232
226
  description: |
233
227
  OpenVox is a community implementation of Puppet, an automated administrative engine for your Linux, Unix, and Windows systems, performs administrative tasks
234
228
  (such as adding users, installing packages, and updating server configurations) based on a centralized specification.
235
- email: openvox@voxpupuli.org.
229
+ email: openvox@voxpupuli.org
236
230
  executables:
237
231
  - puppet
238
232
  extensions: []
@@ -1339,7 +1333,7 @@ files:
1339
1333
  - man/man8/puppet-script.8
1340
1334
  - man/man8/puppet-ssl.8
1341
1335
  - man/man8/puppet.8
1342
- - tasks/tag.rake
1336
+ - tasks/vox.rake
1343
1337
  homepage: https://github.com/OpenVoxProject/puppet
1344
1338
  licenses:
1345
1339
  - Apache-2.0
data/tasks/tag.rake DELETED
@@ -1,34 +0,0 @@
1
- namespace :vox do
2
- desc 'Update version, create tag, and push to origin'
3
- task :tag, [:tag] do |_, args|
4
- abort 'You must provide a tag.' if args[:tag].nil? || args[:tag].empty?
5
- version = args[:tag]
6
- abort "#{version} does not appear to be a valid version string in x.y.z format" unless Gem::Version.correct?(version)
7
-
8
- # Update lib/puppet/version.rb and puppet.gemspec
9
- puts "Setting version to #{version}"
10
- data = File.read('lib/puppet/version.rb')
11
- data = data.sub(/PUPPETVERSION = '\d+\.\d+\.\d+'/, "PUPPETVERSION = '#{version}'")
12
- File.write('lib/puppet/version.rb', data)
13
- data = File.read('puppet.gemspec')
14
- data = data.sub(/spec.version = "\d+\.\d+\.\d+"/, "spec.version = \"#{version}\"")
15
- File.write('puppet.gemspec', data)
16
- run_command("git add lib/puppet/version.rb && git add puppet.gemspec && git commit -m 'Set version to #{version}'")
17
-
18
- # Run git command to get short SHA and one line description of the commit on HEAD
19
- branch = run_command('git rev-parse --abbrev-ref HEAD')
20
- sha = run_command('git rev-parse --short HEAD')
21
- msg = run_command('git log -n 1 --pretty=%B')
22
-
23
- puts "Branch: #{branch}"
24
- puts "SHA: #{sha}"
25
- puts "Commit: #{msg}"
26
-
27
- run_command("git tag -a #{version} -m '#{version}'")
28
-
29
- unless !ENV['NOPUSH'].nil?
30
- puts "Pushing to origin"
31
- run_command("git push origin && git push origin #{version}")
32
- end
33
- end
34
- end