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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 3f5ed8c2978cad58a0ce52346eb854b3b4e82a9a
4
- data.tar.gz: a5637f505ed5fe8c74a22f9633723b9211ad3c4a
2
+ SHA256:
3
+ metadata.gz: 645c5ea1f55ad14ff3a0aa0f7a41e436cb17570d647f44d00b3ae0b27aab606c
4
+ data.tar.gz: 6068f00d22ce28a045ed5361422e33f1027d4f5aaed138a7de8768f4f9deece0
5
5
  SHA512:
6
- metadata.gz: 3ad31ba42a0e2f96ae8254bf383e523c74890fa219cb1b27946cae7718aba76b2d3532149dc98dfc1d59b5e47c4d31c70156c96203659425b55607c6a0d948d1
7
- data.tar.gz: f8970bb1a709f807e3e5d2f45e2c74f7adbea034fc5d9293024e76f4dfb8b2e9eb59ecf636e38b12d69ce224867bbc96570f5e9ed1ddb5092783888e145ceec9
6
+ metadata.gz: 62570f5212319c8fc8fbb683230b00d5fe34c3ba8d5cda86eab7d0fd1379efe65d894c0803bc6e2db15cdebea29a07043dbb2fbbc1195fbbe6508b0ff430706e
7
+ data.tar.gz: a55c36b38b69025933e880c3ef2f9e8f0612f36e28396a328b60d4de617f11ff68cf7c76230195fa7e9c340cd780c00716d085cf38b2ef9d0f52c9481feebdb1
@@ -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", mode: :required
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.error JSON.pretty_generate(err.row)
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
@@ -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
- row.delete('module')
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
@@ -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, :github, :validations].each do |thing|
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
@@ -19,7 +19,8 @@ class Mvp
19
19
 
20
20
  def draw_graph(series, width, title = nil)
21
21
  series.compact!
22
- graph = []
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['module']['owner']['username']
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']['username'] == 'puppetlabs' }
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
- current = data_m.map {|m| m['current_release'] }
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['module']['owner']['username'] == 'puppetlabs' }
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 = data_m.map {|m| m['current_release'] }
256
+ current = current_releases.dup
242
257
 
243
258
  current.each do |mod|
244
- mod['metadata']['dependants'] = []
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['module']['owner']['username']}.first
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 'got nothing for you yet'
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.5
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: 2019-03-05 00:00:00.000000000 Z
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
- rubyforge_project:
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.