berkshelf 6.0.1 → 6.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (48) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +8 -3
  3. data/Gemfile +1 -28
  4. data/Gemfile.lock +27 -94
  5. data/Rakefile +10 -0
  6. data/appveyor.yml +2 -2
  7. data/berkshelf.gemspec +2 -1
  8. data/features/commands/install.feature +21 -0
  9. data/features/step_definitions/berksfile_steps.rb +1 -1
  10. data/features/step_definitions/environment_steps.rb +1 -1
  11. data/features/step_definitions/json_steps.rb +2 -2
  12. data/features/support/env.rb +0 -2
  13. data/lib/berkshelf/berksfile.rb +1 -1
  14. data/lib/berkshelf/chef_repo_universe.rb +45 -0
  15. data/lib/berkshelf/cli.rb +1 -2
  16. data/lib/berkshelf/community_rest.rb +6 -37
  17. data/lib/berkshelf/config.rb +3 -0
  18. data/lib/berkshelf/downloader.rb +2 -2
  19. data/lib/berkshelf/formatters/human.rb +3 -1
  20. data/lib/berkshelf/installer.rb +14 -6
  21. data/lib/berkshelf/locations/git.rb +0 -2
  22. data/lib/berkshelf/mixin/git.rb +4 -3
  23. data/lib/berkshelf/shell_out.rb +17 -0
  24. data/lib/berkshelf/source.rb +30 -17
  25. data/lib/berkshelf/source_uri.rb +1 -1
  26. data/lib/berkshelf/ssl_policies.rb +1 -1
  27. data/lib/berkshelf/streaming_file_adapter.rb +22 -0
  28. data/lib/berkshelf/version.rb +1 -1
  29. data/lib/berkshelf/visualizer.rb +3 -3
  30. data/spec/fixtures/complex-cookbook-path/cookbooks/app/metadata.rb +2 -0
  31. data/spec/fixtures/complex-cookbook-path/cookbooks/jenkins-config/metadata.rb +4 -0
  32. data/spec/fixtures/complex-cookbook-path/cookbooks/jenkins/metadata.rb +2 -0
  33. data/spec/support/git.rb +18 -17
  34. data/spec/support/kitchen.rb +0 -14
  35. data/spec/unit/berkshelf/chef_repo_universe_spec.rb +37 -0
  36. data/spec/unit/berkshelf/config_spec.rb +46 -0
  37. data/spec/unit/berkshelf/cookbook_generator_spec.rb +0 -8
  38. data/spec/unit/berkshelf/downloader_spec.rb +12 -9
  39. data/spec/unit/berkshelf/init_generator_spec.rb +0 -1
  40. data/spec/unit/berkshelf/locations/git_spec.rb +2 -2
  41. data/spec/unit/berkshelf/resolver/graph_spec.rb +3 -2
  42. data/spec/unit/berkshelf/source_spec.rb +55 -44
  43. data/spec/unit/berkshelf/ssl_policies_spec.rb +3 -2
  44. data/spec/unit/berkshelf/uploader_spec.rb +1 -0
  45. data/spec/unit/berkshelf/visualizer_spec.rb +1 -1
  46. metadata +30 -7
  47. data/Guardfile +0 -18
  48. data/lib/berkshelf/commands/test_command.rb +0 -13
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d617756f57bd00473621c9bf8f95912ff28b264e
4
- data.tar.gz: a2f9697345df907bc82be9953a1f16ffa7cd3bef
3
+ metadata.gz: cb46a7f69b8ffe285a82a5d5c2f3c50a8c0675fe
4
+ data.tar.gz: cdffca6593306424fcc6b610ec9461432aecfd30
5
5
  SHA512:
6
- metadata.gz: 7aebefd6e55c3560d177d3416c04feb0aaeb81612508461d9c46c796deb535bf8ddc0f3aec35762dc1a5c1752987a79c4e69fb76d4dd86dc9bae9263741e0c8d
7
- data.tar.gz: 9a5e5bdd6350206ca16bbba643fc328399ae1104a2b476edbc4fadfda2176cd5ff3a366e8b443a28dcd22b9d632ba7f208da08435c7f0b72b1c1d2ed3e61e7a0
6
+ metadata.gz: 861440210543c39944ddb44aaab1aa47ca3fa3cdf4de430d66b5e15945ecc08aef4a151b08a444bf1ed94752f6383b4cf8e7775b1110d2d18bef327a78f1c540
7
+ data.tar.gz: 96d9786d0c9c023954200ee7a3cc4b13febb96bf261f270bde5e4801e90af1befcd853cedc3d2e58543f45c982b13cb3610dff0a7bda8593e1a46f6a8cded031
@@ -27,11 +27,10 @@ notifications:
27
27
  branches:
28
28
  only:
29
29
  - master
30
- #bundler_args: --without guard changelog --jobs 7
31
30
  before_install:
32
31
  - gem update --system
33
32
  - gem install bundler
34
- install: travis_wait bundle install --without guard changelog --jobs 7 --retry=3
33
+ install: travis_wait bundle install --without changelog --jobs 7 --retry=3
35
34
  before_script:
36
35
  - echo "StrictHostKeyChecking no" > ~/.ssh/config
37
36
  - git config --global user.email "ci@berkshelf.com"
@@ -43,7 +42,13 @@ matrix:
43
42
  - rvm: ruby-head
44
43
  - rvm: 2.4.1
45
44
  before_install:
46
- rm Gemfile.lock
45
+ - gem update --system
46
+ - gem install bundler
47
+ - rm Gemfile.lock
48
+ - rvm: 2.3.3
49
+ env:
50
+ CHEFSTYLE: 1
51
+ script: bundle exec rake style
47
52
  - rvm: 2.4.1
48
53
  before_install:
49
54
  # Failures in the berkshelf-api gemspec were happening with bundler 1.8
data/Gemfile CHANGED
@@ -6,33 +6,6 @@ group :changelog do
6
6
  gem "github_changelog_generator"
7
7
  end
8
8
 
9
- group :guard do
10
- gem "coolline"
11
- gem "guard"
12
- gem "guard-cucumber"
13
- gem "guard-rspec"
14
-
15
- require "rbconfig"
16
-
17
- install_if -> { RbConfig::CONFIG["target_os"] =~ /darwin/i } do
18
- gem "growl", require: false
19
- gem "rb-fsevent", require: false
20
-
21
- install_if -> { `uname`.strip == "Darwin" && `sw_vers -productVersion`.strip >= "10.8" } do
22
- gem "terminal-notifier-guard", "~> 1.5.3", require: false
23
- end rescue Errno::ENOENT
24
- end
25
- install_if -> {RbConfig::CONFIG["target_os"] =~ /linux/i } do
26
- gem "libnotify", "~> 0.8.0", require: false
27
- gem "rb-inotify", require: false
28
- end
29
- install_if -> { RbConfig::CONFIG["target_os"] =~ /mswin|mingw/i } do
30
- gem "rb-notifu", ">= 0.0.4", require: false
31
- gem "wdm", require: false
32
- gem "win32console", require: false
33
- end
34
- end
35
-
36
9
  group :build do
37
10
  gem "rake", ">= 10.1"
38
11
  end
@@ -46,11 +19,11 @@ group :development do
46
19
  gem "fuubar", ">= 2.0"
47
20
  gem "rspec", ">= 3.0"
48
21
  gem "rspec-its", ">= 1.2"
49
- gem "test-kitchen", ">= 1.2"
50
22
  gem "webmock", ">= 1.11"
51
23
  gem "yard", ">= 0.8"
52
24
  gem "http", ">= 0.9.8"
53
25
  gem "activesupport", "~> 4.0" # pinning for ruby 2.1.x
26
+ gem "chefstyle"
54
27
  end
55
28
 
56
29
  group :test do
@@ -20,17 +20,18 @@ GIT
20
20
  PATH
21
21
  remote: .
22
22
  specs:
23
- berkshelf (6.0.1)
23
+ berkshelf (6.1.0)
24
24
  addressable (~> 2.3, >= 2.3.4)
25
25
  berkshelf-api-client (>= 2.0.2, < 4.0)
26
26
  buff-config (~> 2.0)
27
27
  buff-extensions (~> 2.0)
28
- buff-shell_out (~> 1.0)
29
28
  cleanroom (~> 1.0)
29
+ concurrent-ruby (~> 1.0)
30
30
  faraday (~> 0.9)
31
31
  httpclient (~> 2.7)
32
32
  minitar (~> 0.5, >= 0.5.4)
33
33
  mixlib-archive (~> 0.4)
34
+ mixlib-shellout (~> 2.0)
34
35
  octokit (~> 4.0)
35
36
  retryable (~> 2.0)
36
37
  ridley (~> 5.0)
@@ -49,7 +50,6 @@ GEM
49
50
  public_suffix (~> 2.0, >= 2.0.2)
50
51
  archive (0.0.6)
51
52
  ffi (~> 1.9.3)
52
- artifactory (2.8.1)
53
53
  aruba (0.14.2)
54
54
  childprocess (~> 0.5.6)
55
55
  contracts (~> 0.9)
@@ -57,6 +57,7 @@ GEM
57
57
  ffi (~> 1.9.10)
58
58
  rspec-expectations (>= 2.99)
59
59
  thor (~> 0.19)
60
+ ast (2.3.0)
60
61
  axiom-types (0.1.1)
61
62
  descendants_tracker (~> 0.0.4)
62
63
  ice_nine (~> 0.11.0)
@@ -79,7 +80,7 @@ GEM
79
80
  celluloid-io (0.16.2)
80
81
  celluloid (>= 0.16.0)
81
82
  nio4r (>= 1.1.0)
82
- chef-config (13.0.118)
83
+ chef-config (13.1.31)
83
84
  addressable
84
85
  fuzzyurl
85
86
  mixlib-config (~> 2.0)
@@ -90,15 +91,15 @@ GEM
90
91
  mixlib-log (~> 1.3)
91
92
  rack (~> 2.0)
92
93
  uuidtools (~> 2.1)
94
+ chefstyle (0.5.0)
95
+ rubocop (= 0.47.1)
93
96
  childprocess (0.5.9)
94
97
  ffi (~> 1.0, >= 1.0.11)
95
98
  cleanroom (1.0.0)
96
- coderay (1.1.1)
97
99
  coercible (1.0.0)
98
100
  descendants_tracker (~> 0.0.1)
101
+ concurrent-ruby (1.0.5)
99
102
  contracts (0.16.0)
100
- coolline (0.5.0)
101
- unicode_utils (~> 1.4)
102
103
  crack (0.4.3)
103
104
  safe_yaml (~> 1.0.0)
104
105
  cucumber (2.4.0)
@@ -123,14 +124,13 @@ GEM
123
124
  unf (>= 0.0.5, < 1.0.0)
124
125
  equalizer (0.0.11)
125
126
  erubis (2.7.0)
126
- faraday (0.9.2)
127
+ faraday (0.12.1)
127
128
  multipart-post (>= 1.2, < 3)
128
129
  faraday-http-cache (2.0.0)
129
130
  faraday (~> 0.8)
130
131
  ffi (1.9.18)
131
132
  ffi-yajl (2.3.0)
132
133
  libyajl2 (~> 1.2)
133
- formatador (0.2.5)
134
134
  fuubar (2.2.0)
135
135
  rspec-core (~> 3.0)
136
136
  ruby-progressbar (~> 1.4)
@@ -157,28 +157,9 @@ GEM
157
157
  grape-msgpack (0.2.0)
158
158
  grape (>= 0.16.1)
159
159
  msgpack (>= 0.7.4)
160
- growl (1.0.3)
161
- guard (2.14.1)
162
- formatador (>= 0.2.4)
163
- listen (>= 2.7, < 4.0)
164
- lumberjack (~> 1.0)
165
- nenv (~> 0.1)
166
- notiffany (~> 0.0)
167
- pry (>= 0.9.12)
168
- shellany (~> 0.0)
169
- thor (>= 0.18.1)
170
- guard-compat (1.2.1)
171
- guard-cucumber (2.1.2)
172
- cucumber (~> 2.0)
173
- guard-compat (~> 1.0)
174
- nenv (~> 0.1)
175
- guard-rspec (4.7.3)
176
- guard (~> 2.1)
177
- guard-compat (~> 1.1)
178
- rspec (>= 2.99.0, < 4.0)
179
160
  hashdiff (0.3.4)
180
161
  hashie (3.5.5)
181
- hitimes (1.2.4)
162
+ hitimes (1.2.5)
182
163
  http (2.2.2)
183
164
  addressable (~> 2.3)
184
165
  http-cookie (~> 1.0)
@@ -186,21 +167,13 @@ GEM
186
167
  http_parser.rb (~> 0.6.0)
187
168
  http-cookie (1.0.3)
188
169
  domain_name (~> 0.5)
189
- http-form_data (1.0.2)
170
+ http-form_data (1.0.3)
190
171
  http_parser.rb (0.6.0)
191
172
  httpclient (2.8.3)
192
- i18n (0.8.1)
173
+ i18n (0.8.4)
193
174
  ice_nine (0.11.2)
194
175
  json (2.1.0)
195
- libnotify (0.8.4)
196
- ffi (>= 1.0.11)
197
176
  libyajl2 (1.2.0)
198
- listen (3.1.5)
199
- rb-fsevent (~> 0.9, >= 0.9.4)
200
- rb-inotify (~> 0.9, >= 0.9.7)
201
- ruby_dep (~> 1.2)
202
- lumberjack (1.0.12)
203
- method_source (0.8.2)
204
177
  minitar (0.6.1)
205
178
  minitest (5.10.2)
206
179
  mixlib-archive (0.4.1)
@@ -208,14 +181,8 @@ GEM
208
181
  mixlib-authentication (1.4.1)
209
182
  mixlib-log
210
183
  mixlib-config (2.2.4)
211
- mixlib-install (2.1.12)
212
- artifactory
213
- mixlib-shellout
214
- mixlib-versioning
215
- thor
216
184
  mixlib-log (1.7.1)
217
185
  mixlib-shellout (2.2.7)
218
- mixlib-versioning (1.1.0)
219
186
  molinillo (0.5.7)
220
187
  msgpack (1.1.0)
221
188
  multi_json (1.12.1)
@@ -225,22 +192,12 @@ GEM
225
192
  mustermann (1.0.0)
226
193
  mustermann-grape (1.0.0)
227
194
  mustermann (~> 1.0.0)
228
- nenv (0.3.0)
229
- net-scp (1.2.1)
230
- net-ssh (>= 2.6.5)
231
- net-ssh (4.1.0)
232
- net-ssh-gateway (1.3.0)
233
- net-ssh (>= 2.6.5)
234
- nio4r (2.0.0)
235
- notiffany (0.1.1)
236
- nenv (~> 0.1)
237
- shellany (~> 0.0)
195
+ nio4r (2.1.0)
238
196
  octokit (4.7.0)
239
197
  sawyer (~> 0.8.0, >= 0.5.3)
240
- pry (0.10.4)
241
- coderay (~> 1.1.0)
242
- method_source (~> 0.8.1)
243
- slop (~> 3.4)
198
+ parser (2.4.0.0)
199
+ ast (~> 2.2)
200
+ powerpack (0.1.1)
244
201
  public_suffix (2.0.5)
245
202
  rack (2.0.3)
246
203
  rack-accept (0.4.5)
@@ -248,10 +205,6 @@ GEM
248
205
  rainbow (2.2.2)
249
206
  rake
250
207
  rake (12.0.0)
251
- rb-fsevent (0.9.8)
252
- rb-inotify (0.9.8)
253
- ffi (>= 0.5.0)
254
- rb-notifu (0.0.4)
255
208
  reel (0.6.1)
256
209
  celluloid (>= 0.15.1)
257
210
  celluloid-io (>= 0.15.0)
@@ -260,7 +213,7 @@ GEM
260
213
  websocket-driver (>= 0.5.1)
261
214
  retriable (2.1.0)
262
215
  retryable (2.0.4)
263
- ridley (5.1.0)
216
+ ridley (5.1.1)
264
217
  addressable
265
218
  buff-config (~> 2.0)
266
219
  buff-extensions (~> 2.0)
@@ -270,7 +223,7 @@ GEM
270
223
  celluloid-io (~> 0.16.1)
271
224
  chef-config (>= 12.5.0)
272
225
  erubis
273
- faraday (~> 0.9.0)
226
+ faraday (~> 0.9)
274
227
  hashie (>= 2.0.2, < 4.0.0)
275
228
  httpclient (~> 2.7)
276
229
  json (>= 1.7.7)
@@ -294,27 +247,21 @@ GEM
294
247
  diff-lcs (>= 1.2.0, < 2.0)
295
248
  rspec-support (~> 3.6.0)
296
249
  rspec-support (3.6.0)
250
+ rubocop (0.47.1)
251
+ parser (>= 2.3.3.1, < 3.0)
252
+ powerpack (~> 0.1)
253
+ rainbow (>= 1.99.1, < 3.0)
254
+ ruby-progressbar (~> 1.7)
255
+ unicode-display_width (~> 1.0, >= 1.0.1)
297
256
  ruby-progressbar (1.8.1)
298
- ruby_dep (1.5.0)
299
257
  safe_yaml (1.0.4)
300
258
  sawyer (0.8.1)
301
259
  addressable (>= 2.3.5, < 2.6)
302
260
  faraday (~> 0.8, < 1.0)
303
261
  semverse (2.0.0)
304
- shellany (0.0.1)
305
- slop (3.6.0)
306
262
  solve (3.1.0)
307
263
  molinillo (>= 0.5)
308
264
  semverse (>= 1.1, < 3.0)
309
- terminal-notifier-guard (1.5.3)
310
- test-kitchen (1.16.0)
311
- mixlib-install (>= 1.2, < 3.0)
312
- mixlib-shellout (>= 1.2, < 3.0)
313
- net-scp (~> 1.1)
314
- net-ssh (>= 2.9, < 5.0)
315
- net-ssh-gateway (~> 1.2)
316
- safe_yaml (~> 1.0)
317
- thor (~> 0.19, < 0.19.2)
318
265
  thor (0.19.1)
319
266
  thread_safe (0.3.6)
320
267
  timers (4.0.4)
@@ -324,7 +271,7 @@ GEM
324
271
  unf (0.1.4)
325
272
  unf_ext
326
273
  unf_ext (0.0.7.4)
327
- unicode_utils (1.4.0)
274
+ unicode-display_width (1.2.1)
328
275
  uuidtools (2.1.5)
329
276
  varia_model (0.6.0)
330
277
  buff-extensions (~> 2.0)
@@ -334,7 +281,6 @@ GEM
334
281
  coercible (~> 1.0)
335
282
  descendants_tracker (~> 0.0, >= 0.0.3)
336
283
  equalizer (~> 0.0, >= 0.0.9)
337
- wdm (0.1.1)
338
284
  webmock (3.0.1)
339
285
  addressable (>= 2.3.6)
340
286
  crack (>= 0.3.2)
@@ -342,7 +288,6 @@ GEM
342
288
  websocket-driver (0.6.5)
343
289
  websocket-extensions (>= 0.1.0)
344
290
  websocket-extensions (0.1.2)
345
- win32console (1.3.2)
346
291
  yard (0.9.9)
347
292
 
348
293
  PLATFORMS
@@ -354,28 +299,16 @@ DEPENDENCIES
354
299
  berkshelf!
355
300
  berkshelf-api!
356
301
  chef-zero (>= 4.0)
357
- coolline
302
+ chefstyle
358
303
  dep_selector (>= 1.0)
359
304
  fuubar (>= 2.0)
360
305
  github_changelog_generator
361
- growl
362
- guard
363
- guard-cucumber
364
- guard-rspec
365
306
  http (>= 0.9.8)
366
- libnotify (~> 0.8.0)
367
307
  rake (>= 10.1)
368
- rb-fsevent
369
- rb-inotify
370
- rb-notifu (>= 0.0.4)
371
308
  rspec (>= 3.0)
372
309
  rspec-its (>= 1.2)
373
- terminal-notifier-guard (~> 1.5.3)
374
- test-kitchen (>= 1.2)
375
- wdm
376
310
  webmock (>= 1.11)
377
- win32console
378
311
  yard (>= 0.8)
379
312
 
380
313
  BUNDLED WITH
381
- 1.14.6
314
+ 1.15.0
data/Rakefile CHANGED
@@ -41,3 +41,13 @@ task :ci do
41
41
  Rake::Task[:spec].invoke
42
42
  Rake::Task[:features].invoke
43
43
  end
44
+
45
+ begin
46
+ require "chefstyle"
47
+ require "rubocop/rake_task"
48
+ RuboCop::RakeTask.new(:style) do |task|
49
+ task.options += ["--display-cop-names", "--no-color"]
50
+ end
51
+ rescue LoadError
52
+ puts "chefstyle/rubocop is not available. gem install chefstyle to do style checking."
53
+ end
@@ -16,10 +16,10 @@ branches:
16
16
  # - vendor/bundle
17
17
 
18
18
  install:
19
- - ps: iex (irm https://omnitruck.chef.io/install.ps1); Install-Project -Project chefdk -channel current
19
+ - ps: iex (irm https://omnitruck.chef.io/install.ps1); Install-Project -Project chefdk -channel stable
20
20
  - bundle config --local path vendor/bundle
21
21
  - SET CI=true
22
- - SET BUNDLE_WITHOUT=guard:changelog:style
22
+ - SET BUNDLE_WITHOUT=changelog:style
23
23
 
24
24
  build_script:
25
25
  - ps: c:\opscode\chefdk\bin\chef.bat shell-init powershell | iex
@@ -34,7 +34,7 @@ Gem::Specification.new do |s|
34
34
  s.add_dependency "berkshelf-api-client", ">= 2.0.2", "< 4.0"
35
35
  s.add_dependency "buff-config", "~> 2.0"
36
36
  s.add_dependency "buff-extensions", "~> 2.0"
37
- s.add_dependency "buff-shell_out", "~> 1.0"
37
+ s.add_dependency "mixlib-shellout", "~> 2.0"
38
38
  s.add_dependency "cleanroom", "~> 1.0"
39
39
  s.add_dependency "faraday", "~> 0.9"
40
40
  s.add_dependency "httpclient", "~> 2.7"
@@ -45,4 +45,5 @@ Gem::Specification.new do |s|
45
45
  s.add_dependency "thor", "~> 0.19", "< 0.19.2"
46
46
  s.add_dependency "octokit", "~> 4.0"
47
47
  s.add_dependency "mixlib-archive", "~> 0.4"
48
+ s.add_dependency "concurrent-ruby", "~> 1.0"
48
49
  end
@@ -634,3 +634,24 @@ Feature: berks install
634
634
  """
635
635
  Resolving cookbook dependencies...
636
636
  """
637
+
638
+ Scenario: when using a chef_repo source
639
+ Given I use a fixture named "complex-cookbook-path"
640
+ And a file named "Berksfile" with:
641
+ """
642
+ source chef_repo: '.'
643
+
644
+ cookbook 'jenkins-config'
645
+ """
646
+ When I successfully run `berks install`
647
+ Then the output should contain:
648
+ """
649
+ Installing jenkins (2.0.1) from
650
+ """
651
+ And the output should contain:
652
+ """
653
+ Installing jenkins-config (0.1.0) from
654
+ """
655
+ And the cookbook store should have the cookbooks:
656
+ | jenkins | 2.0.1 |
657
+ | jenkins-config | 0.1.0 |
@@ -39,7 +39,7 @@ Given /^I have a Berksfile at "(.+)" pointing at the local Berkshelf API with:$/
39
39
  end
40
40
 
41
41
  Given /I have a Berksfile pointing at an( authenticated)? Artifactory server with:/ do |authenticated, content|
42
- if ENV['TEST_BERKSHELF_ARTIFACTORY']
42
+ if ENV["TEST_BERKSHELF_ARTIFACTORY"]
43
43
  steps %Q{
44
44
  Given a file named "Berksfile" with:
45
45
  """