metadata-json-lint 0.0.4 → 0.0.5

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.
@@ -1,12 +1,15 @@
1
1
  require 'json'
2
2
  require 'spdx-licenses'
3
3
  require 'optparse'
4
+ require 'metadata-json-lint/semantic/version'
5
+ require 'metadata-json-lint/semantic/version_range'
4
6
 
5
7
  module MetadataJsonLint
6
8
  def run
7
9
  options = {
8
- :fail_on_warnings => true,
9
- :strict_license => true
10
+ :fail_on_warnings => true,
11
+ :strict_license => true,
12
+ :strict_dependency => false
10
13
  }
11
14
 
12
15
  OptionParser.new do |opts|
@@ -16,6 +19,10 @@ module MetadataJsonLint
16
19
  options[:strict_license] = v
17
20
  end
18
21
 
22
+ opts.on("--[no-]strict-dependency", "Strict dependency version checking") do |v|
23
+ options[:strict_dependency] = v
24
+ end
25
+
19
26
  opts.on("--[no-]fail-on-warnings", "Fail on any warnings") do |v|
20
27
  options[:fail_on_warnings] = v
21
28
  end
@@ -63,6 +70,15 @@ module MetadataJsonLint
63
70
  dep_names << dep['name']
64
71
  end
65
72
 
73
+ # Check for open endend versions in dependencies.
74
+ # https://docs.puppetlabs.com/puppet/latest/reference/modules_publishing.html#dependencies-in-metadatajson
75
+ deps.each do |dep|
76
+ if Semantic::VersionRange.parse(dep['version_requirement']).open_end?
77
+ puts "Warning: Dependency #{dep['name']} has an open ended dependency version requirement #{dep['version_requirement']}"
78
+ error_state = true if @options[:strict_dependency]
79
+ end
80
+ end
81
+
66
82
  # Deprecated fields
67
83
  # From: https://docs.puppetlabs.com/puppet/latest/reference/modules_publishing.html#write-a-metadatajson-file
68
84
 
@@ -0,0 +1,17 @@
1
+ Gem::Specification.new do |s|
2
+ s.name = 'metadata-json-lint'
3
+ s.version = '0.0.5'
4
+ s.date = '2015-01-08'
5
+ s.summary = "metadata-json-lint /path/to/metadata.json"
6
+ s.description = "Utility to verify Puppet metadata.json files"
7
+ s.authors = ["Spencer Krum", "HP Development Corporation LP"]
8
+ s.email = 'nibz@spencerkrum.com'
9
+ s.files = `git ls-files`.split($\)
10
+ s.executables << 'metadata-json-lint'
11
+ s.homepage = 'http://github.com/nibalizer/metadata-json-lint'
12
+ s.license = 'Apache-2.0'
13
+
14
+ s.add_runtime_dependency 'spdx-licenses', '~> 1.0'
15
+ s.add_runtime_dependency 'semantic', '~> 1.0'
16
+ s.add_runtime_dependency 'json'
17
+ end
@@ -0,0 +1,87 @@
1
+ {
2
+ "name": "puppetlabs-postgresql",
3
+ "version": "3.4.1",
4
+ "author": "Inkling/Puppet Labs",
5
+ "summary": "PostgreSQL defined resource types",
6
+ "license": "Unknown-1.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": "pe",
62
+ "version_requirement": ">= 3.2.0 < 3.4.0"
63
+ },
64
+ {
65
+ "name": "puppet",
66
+ "version_requirement": "3.x"
67
+ }
68
+ ],
69
+ "dependencies": [
70
+ {
71
+ "name": "puppetlabs/stdlib",
72
+ "version_requirement": "4.x"
73
+ },
74
+ {
75
+ "name": "puppetlabs/firewall",
76
+ "version_requirement": ">= 0.0.4"
77
+ },
78
+ {
79
+ "name": "puppetlabs/apt",
80
+ "version_requirement": ">=1.1.0 <2.0.0"
81
+ },
82
+ {
83
+ "name": "puppetlabs/concat",
84
+ "version_requirement": ">= 1.1.0 <2.0.0"
85
+ }
86
+ ]
87
+ }
@@ -0,0 +1,87 @@
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": "pe",
62
+ "version_requirement": ">= 3.2.0 < 3.4.0"
63
+ },
64
+ {
65
+ "name": "puppet",
66
+ "version_requirement": "3.x"
67
+ }
68
+ ],
69
+ "dependencies": [
70
+ {
71
+ "name": "puppetlabs/stdlib",
72
+ "version_requirement": "4.x"
73
+ },
74
+ {
75
+ "name": "puppetlabs/firewall",
76
+ "version_requirement": ">= 0.0.4"
77
+ },
78
+ {
79
+ "name": "puppetlabs/apt",
80
+ "version_requirement": ">=1.1.0 <2.0.0"
81
+ },
82
+ {
83
+ "name": "puppetlabs/concat",
84
+ "version_requirement": ">= 1.1.0 <2.0.0"
85
+ }
86
+ ]
87
+ }
@@ -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": "pe",
62
+ "version_requirement": ">= 3.2.0 < 3.4.0"
63
+ },
64
+ {
65
+ "name": "puppet",
66
+ "version_requirement": "3.x"
67
+ }
68
+ ],
69
+ "dependencies": [
70
+ {
71
+ "name": "puppetlabs/stdlib",
72
+ "version_requirement": "4.x"
73
+ },
74
+ {
75
+ "name": "puppetlabs/stdlib",
76
+ "version_requirement": "4.x"
77
+ },
78
+ {
79
+ "name": "puppetlabs/firewall",
80
+ "version_requirement": ">= 0.0.4"
81
+ },
82
+ {
83
+ "name": "puppetlabs/apt",
84
+ "version_requirement": ">=1.1.0 <2.0.0"
85
+ },
86
+ {
87
+ "name": "puppetlabs/concat",
88
+ "version_requirement": ">= 1.1.0 <2.0.0"
89
+ }
90
+ ]
91
+ }
@@ -0,0 +1,86 @@
1
+ {
2
+ "name": "puppetlabs-postgresql",
3
+ "version": "3.4.1",
4
+ "author": "Inkling/Puppet Labs",
5
+ "types": "stuff",
6
+ "source": "git://github.com/puppetlabs/puppet-postgresql.git",
7
+ "project_page": "https://github.com/puppetlabs/puppet-postgresql",
8
+ "issues_url": "https://github.com/puppetlabs/puppet-postgresql/issues",
9
+ "operatingsystem_support": [
10
+ {
11
+ "operatingsystem": "RedHat",
12
+ "operatingsystemrelease": [
13
+ "5",
14
+ "6",
15
+ "7"
16
+ ]
17
+ },
18
+ {
19
+ "operatingsystem": "CentOS",
20
+ "operatingsystemrelease": [
21
+ "5",
22
+ "6",
23
+ "7"
24
+ ]
25
+ },
26
+ {
27
+ "operatingsystem": "OracleLinux",
28
+ "operatingsystemrelease": [
29
+ "5",
30
+ "6",
31
+ "7"
32
+ ]
33
+ },
34
+ {
35
+ "operatingsystem": "Scientific",
36
+ "operatingsystemrelease": [
37
+ "5",
38
+ "6",
39
+ "7"
40
+ ]
41
+ },
42
+ {
43
+ "operatingsystem": "Debian",
44
+ "operatingsystemrelease": [
45
+ "6",
46
+ "7"
47
+ ]
48
+ },
49
+ {
50
+ "operatingsystem": "Ubuntu",
51
+ "operatingsystemrelease": [
52
+ "10.04",
53
+ "12.04",
54
+ "14.04"
55
+ ]
56
+ }
57
+ ],
58
+ "requirements": [
59
+ {
60
+ "name": "pe",
61
+ "version_requirement": ">= 3.2.0 < 3.4.0"
62
+ },
63
+ {
64
+ "name": "puppet",
65
+ "version_requirement": "3.x"
66
+ }
67
+ ],
68
+ "dependencies": [
69
+ {
70
+ "name": "puppetlabs/stdlib",
71
+ "version_requirement": "4.x"
72
+ },
73
+ {
74
+ "name": "puppetlabs/firewall",
75
+ "version_requirement": ">= 0.0.4"
76
+ },
77
+ {
78
+ "name": "puppetlabs/apt",
79
+ "version_requirement": ">=1.1.0 <2.0.0"
80
+ },
81
+ {
82
+ "name": "puppetlabs/concat",
83
+ "version_requirement": ">= 1.1.0 <2.0.0"
84
+ }
85
+ ]
86
+ }
@@ -0,0 +1,86 @@
1
+ {
2
+ "version": "3.4.1",
3
+ "author": "Inkling/Puppet Labs",
4
+ "summary": "PostgreSQL defined resource types",
5
+ "license": "Apache-2.0",
6
+ "source": "git://github.com/puppetlabs/puppet-postgresql.git",
7
+ "project_page": "https://github.com/puppetlabs/puppet-postgresql",
8
+ "issues_url": "https://github.com/puppetlabs/puppet-postgresql/issues",
9
+ "operatingsystem_support": [
10
+ {
11
+ "operatingsystem": "RedHat",
12
+ "operatingsystemrelease": [
13
+ "5",
14
+ "6",
15
+ "7"
16
+ ]
17
+ },
18
+ {
19
+ "operatingsystem": "CentOS",
20
+ "operatingsystemrelease": [
21
+ "5",
22
+ "6",
23
+ "7"
24
+ ]
25
+ },
26
+ {
27
+ "operatingsystem": "OracleLinux",
28
+ "operatingsystemrelease": [
29
+ "5",
30
+ "6",
31
+ "7"
32
+ ]
33
+ },
34
+ {
35
+ "operatingsystem": "Scientific",
36
+ "operatingsystemrelease": [
37
+ "5",
38
+ "6",
39
+ "7"
40
+ ]
41
+ },
42
+ {
43
+ "operatingsystem": "Debian",
44
+ "operatingsystemrelease": [
45
+ "6",
46
+ "7"
47
+ ]
48
+ },
49
+ {
50
+ "operatingsystem": "Ubuntu",
51
+ "operatingsystemrelease": [
52
+ "10.04",
53
+ "12.04",
54
+ "14.04"
55
+ ]
56
+ }
57
+ ],
58
+ "requirements": [
59
+ {
60
+ "name": "pe",
61
+ "version_requirement": ">= 3.2.0 < 3.4.0"
62
+ },
63
+ {
64
+ "name": "puppet",
65
+ "version_requirement": "3.x"
66
+ }
67
+ ],
68
+ "dependencies": [
69
+ {
70
+ "name": "puppetlabs/stdlib",
71
+ "version_requirement": "4.x"
72
+ },
73
+ {
74
+ "name": "puppetlabs/firewall",
75
+ "version_requirement": ">= 0.0.4"
76
+ },
77
+ {
78
+ "name": "puppetlabs/apt",
79
+ "version_requirement": ">=1.1.0 <2.0.0"
80
+ },
81
+ {
82
+ "name": "puppetlabs/concat",
83
+ "version_requirement": ">= 1.1.0 <2.0.0"
84
+ }
85
+ ]
86
+ }