metadata-json-lint 1.2.1 → 1.2.2

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
  SHA1:
3
- metadata.gz: 2f363e6245ce619ab7b466ed22c81b5777a63266
4
- data.tar.gz: 78003ad2f645237859a2a3a79c1ad6bafbba25d9
3
+ metadata.gz: e405de9a698335b307d33abbf151c898a9cde8ff
4
+ data.tar.gz: 6d63faf1798bbe981406d5792a06845d5ecee2f7
5
5
  SHA512:
6
- metadata.gz: 313273da7c521fbd0ddc64241576ea316341c0830ff5783f7507c547b20379d7db3e639f5e95983f6ccb635167f742808b91ea67e35a990291e61603191d336d
7
- data.tar.gz: a2d3690009e395396de889258d89e5a5dcd207179051ebdecc8de0e9e410e212995ce00e2e202fcb3fd12be3f01f027cd6e0f721083d4f119182a405d4a9873f
6
+ metadata.gz: 7871b687d36c40ee1519866af02a3fbf603e20b3fe163599ef9b153d235f1db4a58ffbfd06cee090048ec943d2c6afd1da12af72de24eda00aac90323db47b0a
7
+ data.tar.gz: 59c178ba9192e930789cb239304e81223eb781501f75a2cc2ae49dde805d933ce86e76cd94d7640bff5519c3d983dc95f8e2e090dfc6556d7c91ed2bb70edf76
data/.gitignore CHANGED
@@ -3,4 +3,4 @@
3
3
  Gemfile.lock
4
4
  /.bundle
5
5
  /vendor
6
- tests/*/last_output
6
+ tests/*/last_*output
@@ -0,0 +1,44 @@
1
+ # Change Log
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](http://keepachangelog.com/)
6
+ and this project adheres to [Semantic Versioning](http://semver.org/).
7
+
8
+ ## 1.2.2
9
+
10
+ ### Fixed
11
+ * Fix `metadata_lint` rake task exiting on success, not continuing ([#70](https://github.com/voxpupuli/metadata-json-lint/issues/70))
12
+ * Fix failure on incorrect license warning when `--no-strict-license` used ([#69](https://github.com/voxpupuli/metadata-json-lint/issues/69))
13
+
14
+ ## 1.2.1
15
+
16
+ ### Fixed
17
+ * Fix missing lib/ files in published gem
18
+
19
+ ## 1.2.0
20
+
21
+ ### Added
22
+ * Add `--format`/`-f` option to support a JSON output format
23
+ * Add warning for mixed version range syntax, supported only in Puppet 5
24
+
25
+ ### Changed
26
+ * The default text format mode now outputs more structured messages
27
+ * README has been edited and clarity improved
28
+
29
+ ### Fixed
30
+ * Fix non-zero exit code caused by some checks
31
+
32
+ ## 1.1.0
33
+
34
+ ### Added
35
+ * Ensure module `tags` are correctly specified as an array ([#44](https://github.com/voxpupuli/metadata-json-lint/issues/44))
36
+ * Ensure `requirements` doesn't list the deprecated `pe` key ([#46](https://github.com/voxpupuli/metadata-json-lint/issues/46))
37
+ * Ensure `dependencies` aren't listed with `version_range` keys ([#47](https://github.com/voxpupuli/metadata-json-lint/issues/47))
38
+ * Support strictness configuration via Ruby API, for use in rake tasks definitions
39
+ * Show default strictness option values in `--help` output
40
+
41
+ ### Fixed
42
+ * Fix unclear error message when metadata.json does not exist
43
+ * Fix gem publishing date
44
+ * Various test improvements, ensuring failures are caught accurately and precisely
@@ -5,5 +5,7 @@ require 'json'
5
5
 
6
6
  desc 'Run metadata-json-lint'
7
7
  task :metadata_lint do
8
- MetadataJsonLint.parse('metadata.json') if File.exist?('metadata.json')
8
+ if File.exist?('metadata.json')
9
+ abort unless MetadataJsonLint.parse('metadata.json')
10
+ end
9
11
  end
@@ -51,7 +51,7 @@ module MetadataJsonLint
51
51
  ARGV[0]
52
52
  end
53
53
 
54
- MetadataJsonLint.parse(mj)
54
+ exit(MetadataJsonLint.parse(mj) ? 0 : 1)
55
55
  end
56
56
  module_function :run
57
57
 
@@ -108,10 +108,9 @@ module MetadataJsonLint
108
108
  # Shoulds/recommendations
109
109
  # From: https://docs.puppetlabs.com/puppet/latest/reference/modules_publishing.html#write-a-metadatajson-file
110
110
  #
111
- if !parsed['license'].nil? && !SpdxLicenses.exist?(parsed['license']) && parsed['license'] != 'proprietary'
111
+ if options[:strict_license] && !parsed['license'].nil? && !SpdxLicenses.exist?(parsed['license']) && parsed['license'] != 'proprietary'
112
112
  msg = "License identifier #{parsed['license']} is not in the SPDX list: http://spdx.org/licenses/"
113
-
114
- options[:strict_license] == true ? error(:license, msg) : warn(:license, msg)
113
+ warn(:license, msg)
115
114
  end
116
115
 
117
116
  if !parsed['tags'].nil? && !parsed['tags'].is_a?(Array)
@@ -131,11 +130,11 @@ module MetadataJsonLint
131
130
  end
132
131
 
133
132
  if !@errors.empty? || (!@warnings.empty? && (options[:fail_on_warnings] == true))
134
- exit(1)
133
+ return false
135
134
  end
136
135
  end
137
136
 
138
- exit(0)
137
+ true
139
138
  end
140
139
  module_function :parse
141
140
 
@@ -2,7 +2,7 @@ require 'date'
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = 'metadata-json-lint'
5
- s.version = '1.2.1'
5
+ s.version = '1.2.2'
6
6
  s.date = Date.today.to_s
7
7
  s.summary = 'metadata-json-lint /path/to/metadata.json'
8
8
  s.description = 'Utility to verify Puppet metadata.json files'
@@ -69,7 +69,7 @@
69
69
  },
70
70
  {
71
71
  "name": "puppetlabs/firewall",
72
- "version_requirement": ">= 0.0.4"
72
+ "version_requirement": ">= 0.0.4 <1.0.0"
73
73
  },
74
74
  {
75
75
  "name": "puppetlabs/apt",
@@ -1 +1 @@
1
- "errors":\[{"check":"license","msg":"License identifier Unknown-1.0 is not in the SPDX list: http://spdx.org/licenses/"}\]
1
+ "warnings":\[{"check":"license","msg":"License identifier Unknown-1.0 is not in the SPDX list: http://spdx.org/licenses/"}\]
@@ -69,7 +69,7 @@
69
69
  },
70
70
  {
71
71
  "name": "puppetlabs/firewall",
72
- "version_requirement": ">= 0.0.4"
72
+ "version_requirement": ">= 0.0.4 <1.0.0"
73
73
  },
74
74
  {
75
75
  "name": "puppetlabs/apt",
@@ -0,0 +1,7 @@
1
+ $LOAD_PATH.unshift(File.expand_path('../../../lib', __FILE__))
2
+ require 'metadata-json-lint/rake_task'
3
+
4
+ task :test => %i[metadata_lint success]
5
+ task :success do
6
+ puts 'Successfully linted'
7
+ end
@@ -0,0 +1,91 @@
1
+ {
2
+ "name": "puppetlabs-postgresql",
3
+ "version": "3.4.1",
4
+ "author": "Inkling/Puppet Labs",
5
+ "summary": "PostgreSQL defined resource types",
6
+ "license": "Apache-2.0",
7
+ "source": "git://github.com/puppetlabs/puppet-postgresql.git",
8
+ "project_page": "https://github.com/puppetlabs/puppet-postgresql",
9
+ "issues_url": "https://github.com/puppetlabs/puppet-postgresql/issues",
10
+ "operatingsystem_support": [
11
+ {
12
+ "operatingsystem": "RedHat",
13
+ "operatingsystemrelease": [
14
+ "5",
15
+ "6",
16
+ "7"
17
+ ]
18
+ },
19
+ {
20
+ "operatingsystem": "CentOS",
21
+ "operatingsystemrelease": [
22
+ "5",
23
+ "6",
24
+ "7"
25
+ ]
26
+ },
27
+ {
28
+ "operatingsystem": "OracleLinux",
29
+ "operatingsystemrelease": [
30
+ "5",
31
+ "6",
32
+ "7"
33
+ ]
34
+ },
35
+ {
36
+ "operatingsystem": "Scientific",
37
+ "operatingsystemrelease": [
38
+ "5",
39
+ "6",
40
+ "7"
41
+ ]
42
+ },
43
+ {
44
+ "operatingsystem": "Debian",
45
+ "operatingsystemrelease": [
46
+ "6",
47
+ "7"
48
+ ]
49
+ },
50
+ {
51
+ "operatingsystem": "Ubuntu",
52
+ "operatingsystemrelease": [
53
+ "10.04",
54
+ "12.04",
55
+ "14.04"
56
+ ]
57
+ }
58
+ ],
59
+ "requirements": [
60
+ {
61
+ "name": "puppet",
62
+ "version_requirement": "3.x"
63
+ }
64
+ ],
65
+ "dependencies": [
66
+ {
67
+ "name": "puppetlabs/stdlib",
68
+ "version_requirement": "1.2.3"
69
+ },
70
+ {
71
+ "name": "puppetlabs/apt",
72
+ "version_requirement": "< 1.2.3"
73
+ },
74
+ {
75
+ "name": "puppetlabs/puppetdb",
76
+ "version_requirement": "<= 1.2.3"
77
+ },
78
+ {
79
+ "name": "puppetlabs/vcsrepo",
80
+ "version_requirement": ">= 1.0.0 < 2.0.0"
81
+ },
82
+ {
83
+ "name": "puppetlabs/rabbitmq",
84
+ "version_requirement": "1.x"
85
+ },
86
+ {
87
+ "name": "puppetlabs/motd",
88
+ "version_requirement": "1.2.x"
89
+ }
90
+ ]
91
+ }
@@ -66,7 +66,7 @@ test_rake() {
66
66
  local RESULT=-1;
67
67
 
68
68
  cd $name;
69
- bundle exec rake $rake_task >/dev/null 2>&1
69
+ bundle exec rake $rake_task >last_rake_output 2>&1
70
70
  RESULT=$?
71
71
  if [ $RESULT -ne $expect ]; then
72
72
  fail "Failing Test '${name}' (rake: ${rake_task})"
@@ -98,8 +98,10 @@ test "duplicate-dep" $SUCCESS --no-fail-on-warnings
98
98
 
99
99
  # Run a broken one, expect FAILURE
100
100
  test "bad_license" $FAILURE
101
- # Run with --no-strict-license, expect SUCCESS
102
- test "bad_license" $SUCCESS --no-strict-license --no-fail-on-warnings
101
+ # Run with --no-strict-license only, expect SUCCESS
102
+ test "bad_license" $SUCCESS --no-strict-license
103
+ # Run with --no-fail-on-warnings, expect SUCCESS
104
+ test "bad_license" $SUCCESS --no-fail-on-warnings
103
105
 
104
106
  # Run a broken one, expect FAILURE
105
107
  test "long_summary" $FAILURE
@@ -154,4 +156,10 @@ test_rake "rake_global_options" $SUCCESS
154
156
  # Test multiple lints with different options
155
157
  test_rake "rake_multiple_json_options" $SUCCESS metadata_lint_multi
156
158
 
159
+ # Test successful lint followed by further tasks
160
+ test_rake "rake_chaining" $SUCCESS test
161
+ if ! grep -qx "Successfully linted" rake_chaining/last_rake_output; then
162
+ fail "Failing Test 'rake_chaining' failed to run second rake task"
163
+ fi
164
+
157
165
  exit $STATUS
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: metadata-json-lint
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.1
4
+ version: 1.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vox Pupuli
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-06-01 00:00:00.000000000 Z
11
+ date: 2017-06-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: spdx-licenses
@@ -112,6 +112,7 @@ files:
112
112
  - ".rubocop.yml"
113
113
  - ".rubocop_todo.yml"
114
114
  - ".travis.yml"
115
+ - CHANGELOG.md
115
116
  - Gemfile
116
117
  - LICENSE
117
118
  - README.md
@@ -165,6 +166,8 @@ files:
165
166
  - tests/perfect/metadata.json
166
167
  - tests/proprietary/Rakefile
167
168
  - tests/proprietary/metadata.json
169
+ - tests/rake_chaining/Rakefile
170
+ - tests/rake_chaining/metadata.json
168
171
  - tests/rake_global_options/Rakefile
169
172
  - tests/rake_global_options/expected
170
173
  - tests/rake_global_options/metadata.json
@@ -249,6 +252,8 @@ test_files:
249
252
  - tests/perfect/metadata.json
250
253
  - tests/proprietary/Rakefile
251
254
  - tests/proprietary/metadata.json
255
+ - tests/rake_chaining/Rakefile
256
+ - tests/rake_chaining/metadata.json
252
257
  - tests/rake_global_options/Rakefile
253
258
  - tests/rake_global_options/expected
254
259
  - tests/rake_global_options/metadata.json