puppet-check 1.3.1 → 1.3.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +7 -2
- data/README.md +50 -13
- data/lib/puppet-check/cli.rb +1 -1
- data/lib/puppet-check/data_parser.rb +17 -2
- data/lib/puppet-check/rspec_puppet_support.rb +6 -2
- data/lib/puppet-check/ruby_parser.rb +2 -3
- data/spec/fixtures/hieradata/style.yaml +1 -0
- data/spec/fixtures/metadata.json +1 -1
- data/spec/fixtures/metadata_style_two/metadata.json +1 -1
- data/spec/puppet-check/data_parser_spec.rb +2 -2
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0c73e077873c45fd337c09547f436ad7c0176f1f
|
4
|
+
data.tar.gz: a40a24c8f2e710c7d0e57bff54738003ae9ad7de
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bbf1b361bd6e6ae303e3e242aea111774beb1234b4a9affa45fbaa178af7b3c0ccb4315babab6d937b24a95b025bc339a469aeeefe232b954bd1aaf4d633b535
|
7
|
+
data.tar.gz: 2c537882049dadf1924de9021f0957932f7142a307f1f343598924474d4d11bae034bde0b2e1e1ce5e2fb01ed65a45d1b6025bf8861affaba8462955b1530838
|
data/CHANGELOG.md
CHANGED
@@ -1,12 +1,17 @@
|
|
1
1
|
### 1.4.0 (Roadmap)
|
2
2
|
- optional dep octocatalog-diff interface (minor)
|
3
|
-
- minimum Puppet version increased from 3.4 to 3.7 (minor)
|
4
3
|
- rakefile interface with puppet-lint, rubocop, reek (minor)
|
5
4
|
- rspec puppet stubbing (minor)
|
6
5
|
- acceptance testing with vagrant/docker+serverspec (minor)
|
7
6
|
- improved json and yaml output formats support (file arrays become file hashes and output results further handles formatting) (minor; this would be a big refactoring effort)
|
8
7
|
- split syntax and style checks to separate methods for style (patch)
|
9
|
-
|
8
|
+
|
9
|
+
### 1.3.2 (Roadmap)
|
10
|
+
- For the Puppet Forge method of downloading external module dependencies as spec fixtures, the module is now updated if it is already present. Previously, a fresh forced install was always attempted.
|
11
|
+
- A good `spec_helper` for RSpec Puppet is now generated if one is missing. This is instead of the buggy one that `rspec-puppet-init` generates.
|
12
|
+
- Fix blocking of hieradata checks on `hiera.yaml`.
|
13
|
+
- A check was added for '---' appearing more than once in YAML hieradata as Hiera attempts to parse these additional lines as data.
|
14
|
+
- Additional `metadata.json` warnings for `version_requirement` nested key.
|
10
15
|
|
11
16
|
### 1.3.1
|
12
17
|
- For the git and mercurial methods of downloading external module dependencies as spec fixtures, the module is now updated if it is already present and previously retrieved with git or mercurial respectively. Previously, a fresh clone was always attempted.
|
data/README.md
CHANGED
@@ -5,6 +5,7 @@
|
|
5
5
|
- [Usage](#usage)
|
6
6
|
- [CLI](#cli)
|
7
7
|
- [Rake](#rake)
|
8
|
+
- [API](#api)
|
8
9
|
- [Docker](#docker)
|
9
10
|
- [Vagrant](#vagrant)
|
10
11
|
- [Exit Codes](#exit-codes)
|
@@ -45,10 +46,11 @@ BEGIN {throw :good}; i => am : a '' ruby.file { with } &bad syntax
|
|
45
46
|
block sequence entries are not allowed in this context at line 2 column 4
|
46
47
|
|
47
48
|
-- hieradata/syntax.json:
|
48
|
-
|
49
|
+
743: unexpected token at '{
|
49
50
|
|
50
51
|
-- metadata_syntax/metadata.json:
|
51
|
-
Required field 'version' not found
|
52
|
+
Required field 'version' not found.
|
53
|
+
Field 'requirements' is not an array of hashes.
|
52
54
|
Duplicate dependencies on puppetlabs/nothing.
|
53
55
|
Deprecated field 'checksum' found.
|
54
56
|
Summary exceeds 144 characters.
|
@@ -60,13 +62,13 @@ Summary exceeds 144 characters.
|
|
60
62
|
|
61
63
|
The following files have warnings:
|
62
64
|
-- manifests/style_lint.pp:
|
63
|
-
double quoted string containing no variables
|
64
|
-
indentation of => is not properly aligned
|
65
|
+
2:8: double quoted string containing no variables
|
66
|
+
2:5: indentation of => is not properly aligned (expected in column 8, but found it in column 5)
|
65
67
|
|
66
68
|
-- manifests/style_parser.pp:
|
67
69
|
Unrecognized escape sequence '\[' at 2:77
|
68
70
|
Unrecognized escape sequence '\]' at 2:77
|
69
|
-
double quoted string containing no variables
|
71
|
+
2:45: double quoted string containing no variables
|
70
72
|
|
71
73
|
-- lib/style.rb:
|
72
74
|
1:1: W: Useless assignment to variable - `hash`.
|
@@ -83,10 +85,19 @@ double quoted string containing no variables at line 2, column 45
|
|
83
85
|
-- hieradata/style.yaml:
|
84
86
|
Value(s) missing in key 'value'.
|
85
87
|
Value(s) missing in key 'and'.
|
88
|
+
The string --- appears more than once in this data and Hiera will fail to parse it correctly.
|
86
89
|
|
87
90
|
-- metadata_style/metadata.json:
|
91
|
+
Recommended field 'operatingsystem_support' not found.
|
92
|
+
'pe' is missing an upper bound.
|
88
93
|
License identifier 'Imaginary' is not in the SPDX list: http://spdx.org/licenses/
|
89
94
|
|
95
|
+
-- metadata_style_two/metadata.json:
|
96
|
+
Recommended field 'operatingsystem' not found.
|
97
|
+
Recommended field 'operatingsystemrelease' not found.
|
98
|
+
'puppetlabs/one' has non-semantic versioning in its 'version_requirement' key.
|
99
|
+
'puppetlabs/two' is missing an upper bound.
|
100
|
+
|
90
101
|
-- librarian_style/Puppetfile:
|
91
102
|
2:3: C: Align the parameters of a method call if they span more than one line.
|
92
103
|
5:13: C: Use the new Ruby 1.9 hash syntax.
|
@@ -94,9 +105,12 @@ License identifier 'Imaginary' is not in the SPDX list: http://spdx.org/licenses
|
|
94
105
|
The following files have no errors or warnings:
|
95
106
|
-- manifests/good.pp
|
96
107
|
-- templates/good.epp
|
108
|
+
-- spec/facter/facter_spec.rb
|
97
109
|
-- lib/good.rb
|
110
|
+
-- templates/no_method_error.erb
|
98
111
|
-- templates/good.erb
|
99
112
|
-- hieradata/good.yaml
|
113
|
+
-- metadata.json
|
100
114
|
-- hieradata/good.json
|
101
115
|
-- metadata_good/metadata.json
|
102
116
|
-- librarian_good/Puppetfile
|
@@ -116,10 +130,10 @@ The following files have unrecognized formats and therefore were not processed:
|
|
116
130
|
- Puppetlabs Spec Helper does not update external module dependencies in a stateful/persistent workspace and fails gracefully instead.
|
117
131
|
- Puppetlabs Spec Helper requires extra configuration items to setup self-module RSpec testing.
|
118
132
|
|
119
|
-
It is worth nothing that there is no current development objective for Puppet Check to achieve the same advanced level of robustness for spec testing that Puppetlabs Spec Helper enables. If you are performing standard spec testing on your Puppet code and data, then Puppet Check's spec testing is a fantastic
|
133
|
+
It is worth nothing that there is no current development objective for Puppet Check to achieve the same advanced level of robustness for spec testing that Puppetlabs Spec Helper enables. If you are performing standard spec testing on your Puppet code and data, then Puppet Check's spec testing is a fantastic lighter and faster alternative to Puppetlabs Spec Helper. If you require advanced and intricate capabilities in your spec testing (e.g. direct interfacing to the `Puppet::Parser::Scope` API), then you will likely prefer Puppetlabs Spec Helper's spec testing in conjunction with Puppet Check's file validation.
|
120
134
|
|
121
135
|
## Usage
|
122
|
-
Puppet Check requires `ruby >= 2.0.0`, `puppet >= 3.4`, and `puppet-lint >= 2.0.0`. All other dependencies should be fine with various versions. Puppet Check can be used
|
136
|
+
Puppet Check requires `ruby >= 2.0.0`, `puppet >= 3.4`, and `puppet-lint >= 2.0.0`. All other dependencies should be fine with various versions. Puppet Check can be used with a CLI, Rake tasks, or API, from your system, rbenv, rvm, Docker, or Vagrant. Please note all interfaces (API by default, but can be modified) will ignore any directories named `fixtures` or specified paths with that directory during file checks and spec tests.
|
123
137
|
|
124
138
|
#### Reek
|
125
139
|
Reek dropped support for Ruby 2.0 when it went to 4.0. Since dependencies by Ruby version are allowed in Gemfiles but not gemspecs, this means that PuppetCheck installed with `bundler` will automatically pick up the correct version of Reek for your Ruby version and install it. If you are installing PuppetCheck via `gem`, then you can install reek normally with `gem` with Ruby >= 2.1, but you will need to specify `gem install reek -v 3.11` if you are using Ruby 2.0.
|
@@ -174,7 +188,7 @@ The spec tests will be executed against everything that matches the pattern `**/
|
|
174
188
|
|
175
189
|
Please note it is perfectly acceptable to only execute standard RSpec tests in your modules and not use the extended RSpec Puppet matchers. If no Puppet module directories are identified during directory parsing, then no RSpec Puppet related actions (including those described below) will be performed.
|
176
190
|
|
177
|
-
Prior to executing the spec tests, Puppet Check will parse everything in the current path and identify all `spec` directories not within `fixtures` directories. It will then execute RSpec Puppet setup actions inside all directories one level above that contain a `manifests` directory. This is assumed to be a Puppet module directory. These setup actions include creating all of the necessary directories inside of `spec/fixtures`, creating a blank `site.pp` if it is missing, symlinking everything from the module that is needed into fixtures (automatically replaces functionality of self module symlink in `.fixtures.yaml` from Puppetlabs Spec Helper), and creates the `spec_helper.rb` if it is missing. Note these setup actions can replace `rspec-puppet-init` from RSpec Puppet and currently are both faster and more
|
191
|
+
Prior to executing the spec tests, Puppet Check will parse everything in the current path and identify all `spec` directories not within `fixtures` directories. It will then execute RSpec Puppet setup actions inside all directories one level above that contain a `manifests` directory. This is assumed to be a Puppet module directory. These setup actions include creating all of the necessary directories inside of `spec/fixtures`, creating a blank `site.pp` if it is missing, symlinking everything from the module that is needed into fixtures (automatically replaces functionality of self module symlink in `.fixtures.yaml` from Puppetlabs Spec Helper), and creates the `spec_helper.rb` if it is missing. Note these setup actions can replace `rspec-puppet-init` from RSpec Puppet and currently are both faster and more accurate.
|
178
192
|
|
179
193
|
Puppet Check will also automatically download specified external module dependencies for and during RSpec Puppet testing. Currently `git`, `puppet forge`, and `hg` commands are supported. They can be implemented in the following way in your modules' `metadata.json`:
|
180
194
|
|
@@ -221,6 +235,29 @@ The spec tests will be executed against everything that matches the pattern `**/
|
|
221
235
|
|
222
236
|
Please note this is merely a frontend to Beaker and that Beaker itself has a self-contained scope compared to all the other tools Puppet Check interfaces with and utilizes. This means if you want to add Beaker-RSpec, Serverspec, etc., or perform advanced configurations, those would be all be performed within Beaker itself. This task merely provides an interface to integrate Beaker in with your other testing infrastructure.
|
223
237
|
|
238
|
+
### API
|
239
|
+
|
240
|
+
If you are performing your Puppet testing from within a Ruby script or your own custom Rakefile tasks, and want to execute Puppet Check intrinsically from the Ruby script or Rakefile, then you can call its API in the following simple way:
|
241
|
+
|
242
|
+
```ruby
|
243
|
+
# file checks
|
244
|
+
require 'puppet-check'
|
245
|
+
|
246
|
+
PuppetCheck.future_parser = true # default false
|
247
|
+
PuppetCheck.style_check = true # default false
|
248
|
+
PuppetCheck.output_format = 'yaml' # also 'json'; default 'text'
|
249
|
+
PuppetCheck.puppetlint_args = ['--puppetlint-arg-one', '--puppetlint-arg-two'] # default []
|
250
|
+
PuppetCheck.rubocop_args = ['--except', 'rubocop-arg-one,rubocop-arg-two'] # default []
|
251
|
+
|
252
|
+
PuppetCheck.new.run([dirs, files])
|
253
|
+
|
254
|
+
# rspec checks (as part of a RSpec::Core::RakeTask.new block with |task|)
|
255
|
+
require 'puppet-check/rspec_puppet_support'
|
256
|
+
|
257
|
+
RSpecPuppetSupport.run
|
258
|
+
task.pattern = Dir.glob('**/{classes,defines,facter,functions,hosts,puppet,unit,types}/**/*_spec.rb').reject { |dir| dir =~ /fixtures/ }
|
259
|
+
```
|
260
|
+
|
224
261
|
### Docker
|
225
262
|
|
226
263
|
You can also use Puppet Check inside of Docker for quick, portable, and disposable testing. Below is an example Dockerfile for this purpose:
|
@@ -231,7 +268,7 @@ FROM ubuntu:16.04
|
|
231
268
|
# you need ruby and any other extra dependencies that come from packages; in this example we install git to use it for downloading external module dependencies
|
232
269
|
RUN apt-get update && apt-get install ruby git -y
|
233
270
|
# you need puppet-check and any other extra dependencies that come from gems; in this example we install reek because the ruby ABI is 2.3 and then rspec-puppet and rake for extra testing
|
234
|
-
RUN gem install --no-
|
271
|
+
RUN gem install --no-document puppet-check reek rspec-puppet rake
|
235
272
|
# this is needed for the ruby json parser to not flip out on fresh os installs for some reason (change encoding value as necessary)
|
236
273
|
ENV LANG en_US.UTF-8
|
237
274
|
# create the directory for your module, directory environment, etc. and change directory into it
|
@@ -251,15 +288,15 @@ As an alternative to Docker, you can also use Vagrant for quick and disposable t
|
|
251
288
|
```ruby
|
252
289
|
Vagrant.configure(2) do |config|
|
253
290
|
# a reliable and small box at the moment
|
254
|
-
config.vm.box = 'fedora/
|
291
|
+
config.vm.box = 'fedora/24-cloud-base'
|
255
292
|
|
256
293
|
config.vm.provision 'shell', inline: <<-SHELL
|
257
|
-
# cd to '
|
258
|
-
cd
|
294
|
+
# cd to '/vagrant'
|
295
|
+
cd /vagrant
|
259
296
|
# you need ruby and any other extra dependencies that come from packages; in this example we install git to use it for downloading external module dependencies
|
260
297
|
sudo dnf install ruby rubygems git -y
|
261
298
|
# you need puppet-check and any other extra dependencies that come from gems; in this example we install reek because the ruby ABI is 2.2 and then rspec-puppet and rake for extra testing
|
262
|
-
sudo gem install --no-
|
299
|
+
sudo gem install --no-document puppet-check reek rspec-puppet rake
|
263
300
|
# this is needed for the ruby json parser to not flip out on fresh os installs for some reason (change encoding value as necessary)
|
264
301
|
export LANG='en_US.UTF-8'
|
265
302
|
# execute your tests; in this example we are executing the full suite of tests
|
data/lib/puppet-check/cli.rb
CHANGED
@@ -16,7 +16,10 @@ class DataParser
|
|
16
16
|
warnings = []
|
17
17
|
|
18
18
|
# perform some rudimentary hiera checks if data exists and is hieradata
|
19
|
-
warnings = hiera(parsed) unless (parsed.class.to_s == 'NilClass') || (file == 'hiera.yaml')
|
19
|
+
warnings = hiera(parsed) unless (parsed.class.to_s == 'NilClass') || (File.basename(file) == 'hiera.yaml')
|
20
|
+
|
21
|
+
# check that '---' does not show up more than once in the hieradata
|
22
|
+
warnings.push('The string --- appears more than once in this data and Hiera will fail to parse it correctly.') if File.read(file).scan(/---/).count >= 2
|
20
23
|
|
21
24
|
next PuppetCheck.warning_files.push("#{file}:\n#{warnings.join("\n")}") unless warnings.empty?
|
22
25
|
PuppetCheck.clean_files.push(file.to_s)
|
@@ -100,9 +103,19 @@ class DataParser
|
|
100
103
|
|
101
104
|
# check for requirement and dependency upper bounds
|
102
105
|
%w(requirements dependencies).each do |key|
|
106
|
+
# skip if key is missing or not an array
|
103
107
|
next if parsed[key].empty?
|
108
|
+
next warnings.push("#{key}'s value is not an array.") unless parsed[key].is_a? Array
|
104
109
|
parsed[key].each do |req_dep|
|
105
|
-
|
110
|
+
# warn and skip if key is missing
|
111
|
+
next warnings.push("'#{req_dep['name']}' is missing a 'version_requirement' key.") if req_dep['version_requirement'].class.to_s == 'NilClass'
|
112
|
+
# warn and skip if no upper bound
|
113
|
+
next warnings.push("'#{req_dep['name']}' is missing an upper bound.") unless req_dep['version_requirement'].include?('<')
|
114
|
+
|
115
|
+
# check for semantic versioning
|
116
|
+
if key == 'dependencies'
|
117
|
+
warnings.push("'#{req_dep['name']}' has non-semantic versioning in its 'version_requirement' key.") unless req_dep['version_requirement'] =~ /\d\.\d\.\d.*\d\.\d\.\d/
|
118
|
+
end
|
106
119
|
end
|
107
120
|
end
|
108
121
|
|
@@ -124,12 +137,14 @@ class DataParser
|
|
124
137
|
# checks hieradata
|
125
138
|
def self.hiera(data)
|
126
139
|
warnings = []
|
140
|
+
|
127
141
|
data.each do |key, value|
|
128
142
|
# check for nil values in the data (nil keys are fine)
|
129
143
|
if (value.is_a?(Hash) && value.values.any?(&:nil?)) || (value.class.to_s == 'NilClass')
|
130
144
|
warnings.push("Value(s) missing in key '#{key}'.")
|
131
145
|
end
|
132
146
|
end
|
147
|
+
|
133
148
|
warnings
|
134
149
|
end
|
135
150
|
end
|
@@ -45,7 +45,7 @@ class RSpecPuppetSupport
|
|
45
45
|
|
46
46
|
# create spec_helper if missing
|
47
47
|
return if File.file?('spec/spec_helper.rb')
|
48
|
-
File.open('spec/spec_helper.rb', 'w') { |file| file.puts "require 'rspec-puppet
|
48
|
+
File.open('spec/spec_helper.rb', 'w') { |file| file.puts "require 'rspec-puppet'\n\nfixture_path = File.expand_path(File.join(__FILE__, '..', 'fixtures'))\n\nRSpec.configure do |c|\n c.module_path = File.join(fixture_path, 'modules')\n c.manifest_dir = File.join(fixture_path, 'manifests')\n c.manifest = File.join(File.dirname(File.expand_path(__FILE__)), 'fixtures', 'manifests', 'site.pp')\n c.environmentpath = File.join(Dir.pwd, 'spec')\nend" }
|
49
49
|
end
|
50
50
|
|
51
51
|
# setup the module dependencies for rspec-puppet testing
|
@@ -81,7 +81,11 @@ class RSpecPuppetSupport
|
|
81
81
|
|
82
82
|
# download external module dependency with forge
|
83
83
|
def self.forge(forge_name, args = '')
|
84
|
-
|
84
|
+
if File.directory?("spec/fixtures/modules/#{forge_name}")
|
85
|
+
system("puppet module upgrade --modulepath spec/fixtures/modules/ #{args} #{forge_name}")
|
86
|
+
else
|
87
|
+
system("puppet module install --modulepath spec/fixtures/modules/ #{args} #{forge_name}")
|
88
|
+
end
|
85
89
|
end
|
86
90
|
|
87
91
|
# download external module dependency with hg
|
@@ -43,9 +43,8 @@ class RubyParser
|
|
43
43
|
# check ruby template syntax
|
44
44
|
begin
|
45
45
|
# need to eventually have this associated with a different binding during each iteration
|
46
|
-
# warnings = Util.capture_stderr { ERB.new(File.read(file), nil, '-').result(RubyParser.new.binding) }
|
47
46
|
warnings = Utils.capture_stderr { ERB.new(File.read(file), nil, '-').result }
|
48
|
-
|
47
|
+
# ERB.new(File.read(file), nil, '-').result(RubyParser.new.bind)
|
49
48
|
rescue NameError, TypeError
|
50
49
|
# empty out warnings since it would contain an error if this pass triggers
|
51
50
|
warnings = ''
|
@@ -86,7 +85,7 @@ class RubyParser
|
|
86
85
|
end
|
87
86
|
|
88
87
|
# potentially for unique erb bindings
|
89
|
-
def
|
88
|
+
def bind
|
90
89
|
binding
|
91
90
|
end
|
92
91
|
end
|
data/spec/fixtures/metadata.json
CHANGED
@@ -20,7 +20,7 @@
|
|
20
20
|
],
|
21
21
|
"description": "Standard Library for Puppet Modules",
|
22
22
|
"dependencies": [
|
23
|
-
{ "name": "puppetlabs/one", "version_requirement": ">= 3.2.0
|
23
|
+
{ "name": "puppetlabs/one", "version_requirement": ">= 3.2.0 <= 5.0" },
|
24
24
|
{ "name": "puppetlabs/two", "version_requirement": ">= 0.0.4" }
|
25
25
|
]
|
26
26
|
}
|
@@ -18,7 +18,7 @@ describe DataParser do
|
|
18
18
|
it 'puts a good yaml file with potential hiera issues in the warning files array' do
|
19
19
|
DataParser.yaml([fixtures_dir + 'hieradata/style.yaml'])
|
20
20
|
expect(PuppetCheck.error_files).to eql([])
|
21
|
-
expect(PuppetCheck.warning_files[0]).to match(%r{^#{fixtures_dir}hieradata/style.yaml:\nValue\(s\) missing in key.*\nValue\(s\) missing in key})
|
21
|
+
expect(PuppetCheck.warning_files[0]).to match(%r{^#{fixtures_dir}hieradata/style.yaml:\nValue\(s\) missing in key.*\nValue\(s\) missing in key.*\nThe string --- appears more than once in this data and Hiera will fail to parse it correctly})
|
22
22
|
expect(PuppetCheck.clean_files).to eql([])
|
23
23
|
end
|
24
24
|
it 'puts a good yaml file in the clean files array' do
|
@@ -51,7 +51,7 @@ describe DataParser do
|
|
51
51
|
it 'puts another bad style metadata json file in the warning files array' do
|
52
52
|
DataParser.json([fixtures_dir + 'metadata_style_two/metadata.json'])
|
53
53
|
expect(PuppetCheck.error_files).to eql([])
|
54
|
-
expect(PuppetCheck.warning_files[0]).to match(%r{^#{fixtures_dir}metadata_style_two/metadata.json:\n.*operatingsystem.*\n.*operatingsystemrelease.*\n'puppetlabs/two' is missing an upper bound})
|
54
|
+
expect(PuppetCheck.warning_files[0]).to match(%r{^#{fixtures_dir}metadata_style_two/metadata.json:\n.*operatingsystem.*\n.*operatingsystemrelease.*\n'puppetlabs/one' has non-semantic versioning.*\n'puppetlabs/two' is missing an upper bound})
|
55
55
|
expect(PuppetCheck.clean_files).to eql([])
|
56
56
|
end
|
57
57
|
it 'puts a good json file in the clean files array' do
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: puppet-check
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.3.
|
4
|
+
version: 1.3.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matt Schuchard
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-01-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: puppet
|
@@ -95,7 +95,7 @@ dependencies:
|
|
95
95
|
version: '9'
|
96
96
|
- - "<"
|
97
97
|
- !ruby/object:Gem::Version
|
98
|
-
version: '
|
98
|
+
version: '13'
|
99
99
|
type: :development
|
100
100
|
prerelease: false
|
101
101
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -105,7 +105,7 @@ dependencies:
|
|
105
105
|
version: '9'
|
106
106
|
- - "<"
|
107
107
|
- !ruby/object:Gem::Version
|
108
|
-
version: '
|
108
|
+
version: '13'
|
109
109
|
description: Puppet Check is a gem that provides a comprehensive, streamlined, and
|
110
110
|
efficient analysis of the syntax, style, and validity of your entire Puppet code
|
111
111
|
and data.
|