puppet-community-mvp 0.0.5 → 0.0.6
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 +5 -5
- data/lib/mvp/bigquery.rb +6 -5
- data/lib/mvp/forge.rb +7 -1
- data/lib/mvp/runner.rb +1 -1
- data/lib/mvp/stats.rb +27 -10
- metadata +3 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 645c5ea1f55ad14ff3a0aa0f7a41e436cb17570d647f44d00b3ae0b27aab606c
|
4
|
+
data.tar.gz: 6068f00d22ce28a045ed5361422e33f1027d4f5aaed138a7de8768f4f9deece0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 62570f5212319c8fc8fbb683230b00d5fe34c3ba8d5cda86eab7d0fd1379efe65d894c0803bc6e2db15cdebea29a07043dbb2fbbc1195fbbe6508b0ff430706e
|
7
|
+
data.tar.gz: a55c36b38b69025933e880c3ef2f9e8f0612f36e28396a328b60d4de617f11ff68cf7c76230195fa7e9c340cd780c00716d085cf38b2ef9d0f52c9481feebdb1
|
data/lib/mvp/bigquery.rb
CHANGED
@@ -80,6 +80,7 @@ class Mvp
|
|
80
80
|
s.timestamp "created_at", mode: :required
|
81
81
|
s.timestamp "updated_at", mode: :required
|
82
82
|
s.string "tasks", mode: :repeated
|
83
|
+
s.string "plans", mode: :repeated
|
83
84
|
s.string "homepage_url"
|
84
85
|
s.string "project_page"
|
85
86
|
s.string "issues_url"
|
@@ -140,6 +141,7 @@ class Mvp
|
|
140
141
|
s.timestamp "deleted_at"
|
141
142
|
s.string "deleted_for"
|
142
143
|
s.string "tasks", mode: :repeated
|
144
|
+
s.string "plans", mode: :repeated
|
143
145
|
s.string "project_page"
|
144
146
|
s.string "issues_url"
|
145
147
|
s.string "source"
|
@@ -159,11 +161,9 @@ class Mvp
|
|
159
161
|
s.boolean "puppet_99x"
|
160
162
|
s.string "dependencies", mode: :repeated
|
161
163
|
s.string "file_uri", mode: :required
|
162
|
-
s.string "file_md5"
|
164
|
+
s.string "file_md5"
|
165
|
+
s.string "file_sha256"
|
163
166
|
s.integer "file_size", mode: :required
|
164
|
-
s.string "changelog"
|
165
|
-
s.string "reference"
|
166
|
-
s.string "readme"
|
167
167
|
s.string "license"
|
168
168
|
s.string "metadata", mode: :required
|
169
169
|
end
|
@@ -214,8 +214,9 @@ class Mvp
|
|
214
214
|
response = table.insert(data)
|
215
215
|
|
216
216
|
unless response.success?
|
217
|
+
$logger.error '========================================================================='
|
217
218
|
response.insert_errors.each do |err|
|
218
|
-
$logger.
|
219
|
+
$logger.debug JSON.pretty_generate(err.row.reject {|k,v| ['metadata'].include? k})
|
219
220
|
$logger.error JSON.pretty_generate(err.errors)
|
220
221
|
end
|
221
222
|
end
|
data/lib/mvp/forge.rb
CHANGED
@@ -104,6 +104,7 @@ class Mvp
|
|
104
104
|
row['project_page'] = row['current_release']['metadata']['project_page']
|
105
105
|
row['issues_url'] = row['current_release']['metadata']['issues_url']
|
106
106
|
row['tasks'] = row['current_release']['tasks'].map{|task| task['name']} rescue []
|
107
|
+
row['plans'] = row['current_release']['plans'].map{|task| task['name']} rescue []
|
107
108
|
|
108
109
|
row['release_count'] = row['releases'].count rescue 0
|
109
110
|
row['releases'] = row['releases'].map{|r| r['version']} rescue []
|
@@ -123,9 +124,14 @@ class Mvp
|
|
123
124
|
row['project_page'] = row['metadata']['project_page']
|
124
125
|
row['issues_url'] = row['metadata']['issues_url']
|
125
126
|
row['tasks'] = row['tasks'].map{|task| task['name']} rescue []
|
127
|
+
row['plans'] = row['plans'].map{|task| task['name']} rescue []
|
126
128
|
|
127
129
|
simplify_metadata(row, row['metadata'])
|
128
|
-
|
130
|
+
|
131
|
+
# These items are just too big to store in the table
|
132
|
+
['module', 'changelog', 'readme', 'reference'].each do |column|
|
133
|
+
row.delete(column)
|
134
|
+
end
|
129
135
|
end
|
130
136
|
data
|
131
137
|
end
|
data/lib/mvp/runner.rb
CHANGED
@@ -109,7 +109,7 @@ class Mvp
|
|
109
109
|
def stats(target)
|
110
110
|
stats = Mvp::Stats.new(@options)
|
111
111
|
|
112
|
-
[:authors, :modules, :releases, :relationships, :
|
112
|
+
[:authors, :modules, :releases, :relationships, :validations].each do |thing|
|
113
113
|
next unless [:all, thing].include? target
|
114
114
|
stats.send(thing)
|
115
115
|
end
|
data/lib/mvp/stats.rb
CHANGED
@@ -19,7 +19,8 @@ class Mvp
|
|
19
19
|
|
20
20
|
def draw_graph(series, width, title = nil)
|
21
21
|
series.compact!
|
22
|
-
|
22
|
+
width = [width, series.size].min
|
23
|
+
graph = []
|
23
24
|
(bins, freqs) = series.histogram(:bin_width => width)
|
24
25
|
|
25
26
|
bins.each_with_index do |item, index|
|
@@ -44,6 +45,20 @@ class Mvp
|
|
44
45
|
days_ago(datestr)/365
|
45
46
|
end
|
46
47
|
|
48
|
+
def current_releases
|
49
|
+
return @current_releases if @current_releases
|
50
|
+
|
51
|
+
data_m = load('modules').reject {|m| m['owner'] == 'puppetlabs' }
|
52
|
+
data_r = load('releases').reject {|m| m['owner'] == 'puppetlabs' }
|
53
|
+
|
54
|
+
@current_releases = data_m.map {|mod|
|
55
|
+
name = mod['slug']
|
56
|
+
curr = mod['releases'].first
|
57
|
+
|
58
|
+
data_r.find {|r| r['slug'] == "#{name}-#{curr}" }
|
59
|
+
}.compact
|
60
|
+
end
|
61
|
+
|
47
62
|
def tally_author_info(releases, target, scope='module_count')
|
48
63
|
# update the author records with the fields we need
|
49
64
|
target.each do |author|
|
@@ -52,7 +67,7 @@ class Mvp
|
|
52
67
|
end
|
53
68
|
|
54
69
|
releases.each do |mod|
|
55
|
-
username = mod['
|
70
|
+
username = mod['owner']
|
56
71
|
score = mod['validation_score']
|
57
72
|
author = target.select{|m| m['username'] == username}.first
|
58
73
|
|
@@ -111,9 +126,10 @@ class Mvp
|
|
111
126
|
end
|
112
127
|
|
113
128
|
def modules()
|
114
|
-
data_m = load('modules').reject {|m| m['owner']
|
129
|
+
data_m = load('modules').reject {|m| m['owner'] == 'puppetlabs' }
|
115
130
|
data_a = load('authors').reject {|u| u['username'] == 'puppetlabs' or u['module_count'] == 0}
|
116
|
-
|
131
|
+
|
132
|
+
current = current_releases
|
117
133
|
|
118
134
|
tally_author_info(current, data_a, 'module_count')
|
119
135
|
|
@@ -155,7 +171,7 @@ class Mvp
|
|
155
171
|
end
|
156
172
|
|
157
173
|
def releases()
|
158
|
-
data_r = load('releases').reject {|m| m['
|
174
|
+
data_r = load('releases').reject {|m| m['owner'] == 'puppetlabs' }
|
159
175
|
data_a = load('authors').reject {|u| u['username'] == 'puppetlabs' or u['module_count'] == 0}
|
160
176
|
|
161
177
|
tally_author_info(data_r, data_a, 'release_count')
|
@@ -236,12 +252,12 @@ class Mvp
|
|
236
252
|
end
|
237
253
|
|
238
254
|
def relationships()
|
239
|
-
data_m = load('modules').reject {|m| m['owner']['username'] == 'puppetlabs' }
|
240
255
|
data_a = load('authors').reject {|u| u['username'] == 'puppetlabs' or u['module_count'] == 0}
|
241
|
-
current =
|
256
|
+
current = current_releases.dup
|
242
257
|
|
243
258
|
current.each do |mod|
|
244
|
-
|
259
|
+
mod['metadata'] = JSON.parse(mod['metadata'])
|
260
|
+
mod['metadata']['dependants'] = []
|
245
261
|
end
|
246
262
|
current.each do |mod|
|
247
263
|
mod['metadata']['dependencies'].each do |dependency|
|
@@ -257,7 +273,7 @@ class Mvp
|
|
257
273
|
count = mod['metadata']['dependants'].count
|
258
274
|
next unless count > 0
|
259
275
|
|
260
|
-
author = data_a.select{|m| m['username'] == mod['
|
276
|
+
author = data_a.select{|m| m['username'] == mod['owner']}.first
|
261
277
|
author['dependants'] << count
|
262
278
|
end
|
263
279
|
data_a.each { |a| a['average_dependants'] = average(a['dependants']) }
|
@@ -280,6 +296,7 @@ class Mvp
|
|
280
296
|
author['module_count'],
|
281
297
|
author['release_count'] ]
|
282
298
|
end
|
299
|
+
puts
|
283
300
|
end
|
284
301
|
|
285
302
|
def github()
|
@@ -328,7 +345,7 @@ class Mvp
|
|
328
345
|
end
|
329
346
|
|
330
347
|
def validations()
|
331
|
-
puts '
|
348
|
+
puts 'No validations yet'
|
332
349
|
end
|
333
350
|
|
334
351
|
def test()
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: puppet-community-mvp
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ben Ford
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-02-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: json
|
@@ -178,8 +178,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
178
178
|
- !ruby/object:Gem::Version
|
179
179
|
version: '0'
|
180
180
|
requirements: []
|
181
|
-
|
182
|
-
rubygems_version: 2.5.2.3
|
181
|
+
rubygems_version: 3.0.6
|
183
182
|
signing_key:
|
184
183
|
specification_version: 4
|
185
184
|
summary: Generate some stats about the Puppet Community.
|