openvox 8.19.1 → 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: 393429eb8445bc0e280542c9bd747ce97f7a1b1b16a84ef42140654c3b1710ff
4
- data.tar.gz: 6621208b7dfa7380892bbe7b284767bb4eadff73bd153f0d7b1bc08373b6bcf7
3
+ metadata.gz: 91c67366f80e0f90b53567de5eea991ba6d36d5fa59af42d65a6975c619f119e
4
+ data.tar.gz: 2c8b8e00d4f6d2d468888e6126ee9bcc5db0f18748164e1c7cf2545cdd27de51
5
5
  SHA512:
6
- metadata.gz: 770869516841f47615a37dedb73be8d2f062785bdd50d984c24974d88089e8be6d1f3a0a058044a32dbfcbf02c5df623f7218d6b0de368122fe2a805cd534cf5
7
- data.tar.gz: 281a9f8079cc0c1b815092aa5f254b1b553d2470ecda0b76402e7c96aaf1b71b21fb82a587f427a9cd8b57238d6e4cd8b684a0f6251135f83254eac3201e7bd9
6
+ metadata.gz: 315686060fd5c3fd1a3df8c7163c5cf737ddd16e2a922175b0dc2901e6bd4763fad7315cbccc06fff944485cfbab6f3d232160e04b72898cdec10076cfbe3474
7
+ data.tar.gz: 1a5eecd081bc2d6ed326620a01b128056d2336002e0015b0627b0c7789a07be0f25ccc57e03db9f3ffbb35a7ee9e7b55f777bf42acdd03c511211ca11b27ac57
data/CHANGELOG.md CHANGED
@@ -2,25 +2,53 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file.
4
4
 
5
- ## [8.19.1](https://github.com/openvoxproject/puppet/tree/8.19.1) (2025-06-03)
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.0...8.19.1)
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)
25
+
26
+ **Fixed bugs:**
27
+
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))
32
+
33
+ ## [8.19.1](https://github.com/openvoxproject/openvox/tree/8.19.1) (2025-06-03)
34
+
35
+ [Full Changelog](https://github.com/openvoxproject/openvox/compare/8.19.0...8.19.1)
8
36
 
9
37
  **Fixed bugs:**
10
38
 
11
- - 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))
12
40
 
13
- ## [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)
14
42
 
15
- [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)
16
44
 
17
45
  **Implemented enhancements:**
18
46
 
19
- - 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))
20
48
 
21
49
  **Fixed bugs:**
22
50
 
23
- - 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))
24
52
 
25
53
 
26
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
 
@@ -43,11 +43,11 @@ group(:test) do
43
43
  # 1.16.0 - 1.16.2 are broken on Windows
44
44
  gem 'ffi', '>= 1.15.5', '< 1.17.0', '!= 1.16.0', '!= 1.16.1', '!= 1.16.2', require: false
45
45
  gem "json-schema", '>= 2', '< 6', require: false
46
- gem "racc", "1.5.2", require: false
47
46
  gem "rake", *location_for(ENV['RAKE_LOCATION'] || '~> 13.0')
48
47
  gem "rspec", "~> 3.1", require: false
49
48
  gem "rspec-expectations", ["~> 3.9", "!= 3.9.3"]
50
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
51
51
  gem 'vcr', '~> 6.1', require: false
52
52
  gem 'webmock', '~> 3.0', require: false
53
53
  gem 'webrick', '~> 1.7', require: false
@@ -69,7 +69,6 @@ group(:development, optional: true) do
69
69
  end
70
70
 
71
71
  group(:packaging) do
72
- gem 'github_changelog_generator'
73
72
  gem 'packaging', *location_for(ENV['PACKAGING_LOCATION'] || '~> 0.99')
74
73
  end
75
74
 
@@ -80,6 +79,11 @@ group(:documentation, optional: true) do
80
79
  gem 'pandoc-ruby', require: false, platforms: [:ruby]
81
80
  end
82
81
 
82
+ group :release, optional: true do
83
+ gem 'faraday-retry', require: false
84
+ gem 'github_changelog_generator', require: false
85
+ end
86
+
83
87
  if File.exist? "#{__FILE__}.local"
84
88
  eval(File.read("#{__FILE__}.local"), binding)
85
89
  end
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,13 +158,17 @@ 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
165
+ config.exclude_tags_regex = /\A7\./
165
166
  end
166
167
  rescue LoadError
167
168
  task :changelog do
168
- abort("Run `bundle install --with packaging` to install the `github_changelog_generator` gem.")
169
+ abort("Run `bundle install --with release` to install the `github_changelog_generator` gem.")
169
170
  end
170
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
@@ -58,7 +58,7 @@ Puppet.features.add(:manages_symlinks) do
58
58
  require 'ffi'
59
59
  extend FFI::Library
60
60
 
61
- def self.is_implemented # rubocop:disable Naming/PredicateName
61
+ def self.is_implemented # rubocop:disable Naming/PredicatePrefix
62
62
  ffi_lib :kernel32
63
63
  attach_function :CreateSymbolicLinkW, [:lpwstr, :lpwstr, :dword], :boolean
64
64
 
@@ -107,7 +107,7 @@ Puppet::Functions.create_function(:defined, Puppet::Functions::InternalFunction)
107
107
  required_repeated_param 'Variant[String, Type[CatalogEntry], Type[Type[CatalogEntry]]]', :vals
108
108
  end
109
109
 
110
- def is_defined(scope, *vals) # rubocop:disable Naming/PredicateName
110
+ def is_defined(scope, *vals) # rubocop:disable Naming/PredicatePrefix
111
111
  vals.any? do |val|
112
112
  case val
113
113
  when String
@@ -5,7 +5,7 @@ class Puppet::Node::ServerFacts
5
5
  server_facts = {}
6
6
 
7
7
  # Add implementation information
8
- server_facts["implementation"] = Puppet.implementation
8
+ server_facts["serverimplementation"] = Puppet.implementation
9
9
 
10
10
  # Add our server Puppet Enterprise version, if available.
11
11
  pe_version_file = '/opt/puppetlabs/server/pe_version'
@@ -93,7 +93,7 @@ class Puppet::Parameter
93
93
  end
94
94
  end
95
95
 
96
- # rubocop:disable Naming/PredicateName
96
+ # rubocop:disable Naming/PredicatePrefix
97
97
  def sensitive(value = nil, &block)
98
98
  if block
99
99
  define_method(:is_sensitive, &block)
@@ -101,7 +101,7 @@ class Puppet::Parameter
101
101
  define_method(:is_sensitive) do value end
102
102
  end
103
103
  end
104
- # rubocop:enable Naming/PredicateName
104
+ # rubocop:enable Naming/PredicatePrefix
105
105
 
106
106
  # Produces a documentation string.
107
107
  # If an enumeration of _valid values_ has been defined, it is appended to the documentation
@@ -34,7 +34,7 @@ module Puppet
34
34
  hash_to_key_value_s(should_value)
35
35
  end
36
36
 
37
- def is_to_s(current_value) # rubocop:disable Naming/PredicateName
37
+ def is_to_s(current_value) # rubocop:disable Naming/PredicatePrefix
38
38
  hash_to_key_value_s(current_value)
39
39
  end
40
40
 
@@ -8,7 +8,7 @@ module Puppet
8
8
  # For an ordered list see {Puppet::Property::OrderedList}.
9
9
  #
10
10
  class List < Property
11
- def is_to_s(currentvalue) # rubocop:disable Naming/PredicateName
11
+ def is_to_s(currentvalue) # rubocop:disable Naming/PredicatePrefix
12
12
  currentvalue == :absent ? super(currentvalue) : currentvalue.join(delimiter)
13
13
  end
14
14
 
@@ -403,7 +403,7 @@ class Puppet::Property < Puppet::Parameter
403
403
  # are not already in suitable form.
404
404
  # @param value [Object] the value to format as a string
405
405
  # @return [String] a pretty printing string
406
- def is_to_s(value) # rubocop:disable Naming/PredicateName
406
+ def is_to_s(value) # rubocop:disable Naming/PredicatePrefix
407
407
  self.class.format_value_for_display(value)
408
408
  end
409
409
 
@@ -199,7 +199,7 @@ class Puppet::Provider
199
199
  # @note the name ´has_command´ looks odd in an API context, but makes more sense when seen in the internal
200
200
  # DSL context where a Provider is declaratively defined.
201
201
  # @api public
202
- # rubocop:disable Naming/PredicateName
202
+ # rubocop:disable Naming/PredicatePrefix
203
203
  def self.has_command(name, path, &block)
204
204
  name = name.intern
205
205
  command = CommandDefiner.define(name, path, self, &block)
@@ -211,7 +211,7 @@ class Puppet::Provider
211
211
  return command.execute(*args)
212
212
  end
213
213
  end
214
- # rubocop:enable Naming/PredicateName
214
+ # rubocop:enable Naming/PredicatePrefix
215
215
 
216
216
  # Internal helper class when creating commands - undocumented.
217
217
  # @api private
@@ -232,7 +232,7 @@ class Puppet::Provider
232
232
  @custom_environment = {}
233
233
  end
234
234
 
235
- def is_optional # rubocop:disable Naming/PredicateName
235
+ def is_optional # rubocop:disable Naming/PredicatePrefix
236
236
  @optional = true
237
237
  end
238
238
 
@@ -39,7 +39,7 @@ module Puppet
39
39
  end
40
40
 
41
41
  # We want to print names, not numbers
42
- def is_to_s(currentvalue) # rubocop:disable Naming/PredicateName
42
+ def is_to_s(currentvalue) # rubocop:disable Naming/PredicatePrefix
43
43
  super(provider.gid2name(currentvalue) || currentvalue)
44
44
  end
45
45
 
@@ -179,7 +179,7 @@ module Puppet
179
179
  "'#{should_value.rjust(4, '0')}'"
180
180
  end
181
181
 
182
- def is_to_s(currentvalue) # rubocop:disable Naming/PredicateName
182
+ def is_to_s(currentvalue) # rubocop:disable Naming/PredicatePrefix
183
183
  if currentvalue == :absent
184
184
  # This can occur during audits---if a file is transitioning from
185
185
  # present to absent the mode will have a value of `:absent`.
@@ -41,7 +41,7 @@ module Puppet
41
41
  end
42
42
 
43
43
  # We want to print names, not numbers
44
- def is_to_s(currentvalue) # rubocop:disable Naming/PredicateName
44
+ def is_to_s(currentvalue) # rubocop:disable Naming/PredicatePrefix
45
45
  super(provider.uid2name(currentvalue) || currentvalue)
46
46
  end
47
47
 
@@ -102,7 +102,7 @@ module Puppet
102
102
  super(current)
103
103
  end
104
104
 
105
- def is_to_s(currentvalue) # rubocop:disable Naming/PredicateName
105
+ def is_to_s(currentvalue) # rubocop:disable Naming/PredicatePrefix
106
106
  if provider.respond_to?(:members_to_s)
107
107
  currentvalue = '' if currentvalue.nil?
108
108
  currentvalue = currentvalue.is_a?(Array) ? currentvalue : currentvalue.split(',')
@@ -396,7 +396,7 @@ module Puppet
396
396
  end
397
397
  end
398
398
 
399
- def is_to_s(currentvalue) # rubocop:disable Naming/PredicateName
399
+ def is_to_s(currentvalue) # rubocop:disable Naming/PredicatePrefix
400
400
  if provider.respond_to?(:package_settings_is_to_s)
401
401
  provider.package_settings_is_to_s(should, currentvalue)
402
402
  else
data/lib/puppet/util.rb CHANGED
@@ -523,7 +523,11 @@ module Util
523
523
 
524
524
  module_function :thinmark
525
525
 
526
- PUPPET_STACK_INSERTION_FRAME = /.*puppet_stack\.rb.*in.*`stack'/
526
+ PUPPET_STACK_INSERTION_FRAME = if RUBY_VERSION >= '3.4'
527
+ /.*puppet_stack\.rb.*in.*'Puppet::Pops::PuppetStack\.stack'/
528
+ else
529
+ /.*puppet_stack\.rb.*in.*`stack'/
530
+ end
527
531
 
528
532
  # utility method to get the current call stack and format it to a human-readable string (which some IDEs/editors
529
533
  # will recognize as links to the line numbers in the trace)
@@ -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.1'
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,30 +1,56 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: openvox
3
3
  version: !ruby/object:Gem::Version
4
- version: 8.19.1
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
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
- name: concurrent-ruby
13
+ name: base64
14
14
  requirement: !ruby/object:Gem::Requirement
15
15
  requirements:
16
- - - "~>"
16
+ - - ">="
17
17
  - !ruby/object:Gem::Version
18
- version: '1.0'
18
+ version: '0.1'
19
+ - - "<"
20
+ - !ruby/object:Gem::Version
21
+ version: '0.4'
19
22
  type: :runtime
20
23
  prerelease: false
21
24
  version_requirements: !ruby/object:Gem::Requirement
22
25
  requirements:
23
- - - "~>"
26
+ - - ">="
24
27
  - !ruby/object:Gem::Version
25
- version: '1.0'
28
+ version: '0.1'
29
+ - - "<"
30
+ - !ruby/object:Gem::Version
31
+ version: '0.4'
26
32
  - !ruby/object:Gem::Dependency
27
- name: deep_merge
33
+ name: benchmark
34
+ requirement: !ruby/object:Gem::Requirement
35
+ requirements:
36
+ - - ">="
37
+ - !ruby/object:Gem::Version
38
+ version: '0.3'
39
+ - - "<"
40
+ - !ruby/object:Gem::Version
41
+ version: '0.5'
42
+ type: :runtime
43
+ prerelease: false
44
+ version_requirements: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - ">="
47
+ - !ruby/object:Gem::Version
48
+ version: '0.3'
49
+ - - "<"
50
+ - !ruby/object:Gem::Version
51
+ version: '0.5'
52
+ - !ruby/object:Gem::Dependency
53
+ name: concurrent-ruby
28
54
  requirement: !ruby/object:Gem::Requirement
29
55
  requirements:
30
56
  - - "~>"
@@ -38,25 +64,19 @@ dependencies:
38
64
  - !ruby/object:Gem::Version
39
65
  version: '1.0'
40
66
  - !ruby/object:Gem::Dependency
41
- name: facter
67
+ name: deep_merge
42
68
  requirement: !ruby/object:Gem::Requirement
43
69
  requirements:
44
- - - ">="
45
- - !ruby/object:Gem::Version
46
- version: 4.3.0
47
- - - "<"
70
+ - - "~>"
48
71
  - !ruby/object:Gem::Version
49
- version: '5'
72
+ version: '1.0'
50
73
  type: :runtime
51
74
  prerelease: false
52
75
  version_requirements: !ruby/object:Gem::Requirement
53
76
  requirements:
54
- - - ">="
55
- - !ruby/object:Gem::Version
56
- version: 4.3.0
57
- - - "<"
77
+ - - "~>"
58
78
  - !ruby/object:Gem::Version
59
- version: '5'
79
+ version: '1.0'
60
80
  - !ruby/object:Gem::Dependency
61
81
  name: fast_gettext
62
82
  requirement: !ruby/object:Gem::Requirement
@@ -120,85 +140,93 @@ dependencies:
120
140
  - !ruby/object:Gem::Version
121
141
  version: '1.13'
122
142
  - !ruby/object:Gem::Dependency
123
- name: puppet-resource_api
143
+ name: openfact
124
144
  requirement: !ruby/object:Gem::Requirement
125
145
  requirements:
126
146
  - - "~>"
127
147
  - !ruby/object:Gem::Version
128
- version: '1.5'
148
+ version: '5.0'
129
149
  type: :runtime
130
150
  prerelease: false
131
151
  version_requirements: !ruby/object:Gem::Requirement
132
152
  requirements:
133
153
  - - "~>"
134
154
  - !ruby/object:Gem::Version
135
- version: '1.5'
155
+ version: '5.0'
136
156
  - !ruby/object:Gem::Dependency
137
- name: scanf
157
+ name: ostruct
138
158
  requirement: !ruby/object:Gem::Requirement
139
159
  requirements:
140
160
  - - "~>"
141
161
  - !ruby/object:Gem::Version
142
- version: '1.0'
162
+ version: 0.6.0
143
163
  type: :runtime
144
164
  prerelease: false
145
165
  version_requirements: !ruby/object:Gem::Requirement
146
166
  requirements:
147
167
  - - "~>"
148
168
  - !ruby/object:Gem::Version
149
- version: '1.0'
169
+ version: 0.6.0
150
170
  - !ruby/object:Gem::Dependency
151
- name: semantic_puppet
171
+ name: puppet-resource_api
152
172
  requirement: !ruby/object:Gem::Requirement
153
173
  requirements:
154
174
  - - "~>"
155
175
  - !ruby/object:Gem::Version
156
- version: '1.0'
176
+ version: '1.5'
157
177
  type: :runtime
158
178
  prerelease: false
159
179
  version_requirements: !ruby/object:Gem::Requirement
160
180
  requirements:
161
181
  - - "~>"
162
182
  - !ruby/object:Gem::Version
163
- version: '1.0'
183
+ version: '1.5'
164
184
  - !ruby/object:Gem::Dependency
165
- name: ostruct
185
+ name: racc
166
186
  requirement: !ruby/object:Gem::Requirement
167
187
  requirements:
168
188
  - - "~>"
169
189
  - !ruby/object:Gem::Version
170
- version: 0.6.0
190
+ version: '1.5'
171
191
  type: :runtime
172
192
  prerelease: false
173
193
  version_requirements: !ruby/object:Gem::Requirement
174
194
  requirements:
175
195
  - - "~>"
176
196
  - !ruby/object:Gem::Version
177
- version: 0.6.0
197
+ version: '1.5'
178
198
  - !ruby/object:Gem::Dependency
179
- name: benchmark
199
+ name: scanf
180
200
  requirement: !ruby/object:Gem::Requirement
181
201
  requirements:
182
- - - ">="
183
- - !ruby/object:Gem::Version
184
- version: '0.3'
185
- - - "<"
202
+ - - "~>"
186
203
  - !ruby/object:Gem::Version
187
- version: '0.5'
204
+ version: '1.0'
188
205
  type: :runtime
189
206
  prerelease: false
190
207
  version_requirements: !ruby/object:Gem::Requirement
191
208
  requirements:
192
- - - ">="
209
+ - - "~>"
193
210
  - !ruby/object:Gem::Version
194
- version: '0.3'
195
- - - "<"
211
+ version: '1.0'
212
+ - !ruby/object:Gem::Dependency
213
+ name: semantic_puppet
214
+ requirement: !ruby/object:Gem::Requirement
215
+ requirements:
216
+ - - "~>"
196
217
  - !ruby/object:Gem::Version
197
- version: '0.5'
218
+ version: '1.0'
219
+ type: :runtime
220
+ prerelease: false
221
+ version_requirements: !ruby/object:Gem::Requirement
222
+ requirements:
223
+ - - "~>"
224
+ - !ruby/object:Gem::Version
225
+ version: '1.0'
198
226
  description: |
199
227
  OpenVox is a community implementation of Puppet, an automated administrative engine for your Linux, Unix, and Windows systems, performs administrative tasks
200
228
  (such as adding users, installing packages, and updating server configurations) based on a centralized specification.
201
- email: openvox@voxpupuli.org.
229
+ email: openvox@voxpupuli.org
202
230
  executables:
203
231
  - puppet
204
232
  extensions: []
@@ -1305,7 +1333,7 @@ files:
1305
1333
  - man/man8/puppet-script.8
1306
1334
  - man/man8/puppet-ssl.8
1307
1335
  - man/man8/puppet.8
1308
- - tasks/tag.rake
1336
+ - tasks/vox.rake
1309
1337
  homepage: https://github.com/OpenVoxProject/puppet
1310
1338
  licenses:
1311
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