puppet-community-mvp 0.0.5 → 0.0.6
Sign up to get free protection for your applications and to get access to all the features.
- 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.
|