berkshelf 4.0.1 → 4.1.0

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.
Files changed (36) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +0 -1
  3. data/.travis.yml +41 -6
  4. data/CHANGELOG.md +15 -0
  5. data/CONTRIBUTING.md +10 -0
  6. data/Gemfile.lock +332 -0
  7. data/berkshelf.gemspec +8 -6
  8. data/features/commands/install.feature +105 -8
  9. data/features/json_formatter.feature +2 -2
  10. data/features/step_definitions/chef/config_steps.rb +1 -1
  11. data/features/step_definitions/chef_server_steps.rb +2 -2
  12. data/features/step_definitions/cli_steps.rb +1 -1
  13. data/features/step_definitions/config_steps.rb +1 -1
  14. data/features/step_definitions/environment_steps.rb +2 -2
  15. data/features/step_definitions/filesystem_steps.rb +3 -5
  16. data/features/step_definitions/json_steps.rb +1 -1
  17. data/features/support/env.rb +8 -8
  18. data/generator_files/Gemfile.erb +0 -14
  19. data/lib/berkshelf/berksfile.rb +47 -0
  20. data/lib/berkshelf/downloader.rb +7 -6
  21. data/lib/berkshelf/lockfile.rb +22 -11
  22. data/lib/berkshelf/resolver.rb +27 -0
  23. data/lib/berkshelf/thor_ext/hash_with_indifferent_access.rb +5 -1
  24. data/lib/berkshelf/version.rb +1 -1
  25. data/spec/fixtures/berksfiles/default +4 -0
  26. data/spec/fixtures/cookbook-path/jenkins-config/metadata.rb +4 -0
  27. data/spec/fixtures/cookbook-store/jenkins-2.0.3/metadata.rb +6 -0
  28. data/spec/fixtures/cookbook-store/jenkins-2.0.4/metadata.rb +5 -0
  29. data/spec/fixtures/lockfiles/default.lock +5 -0
  30. data/spec/fixtures/lockfiles/orphans.lock +21 -0
  31. data/spec/support/chef_server.rb +3 -3
  32. data/spec/unit/berkshelf/berksfile_spec.rb +27 -1
  33. data/spec/unit/berkshelf/init_generator_spec.rb +2 -4
  34. data/spec/unit/berkshelf/lockfile_spec.rb +37 -0
  35. data/spec/unit/berkshelf/resolver_spec.rb +28 -1
  36. metadata +54 -15
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a3c044813b795374171f93b2f322569f90023a4e
4
- data.tar.gz: 62d856f5771494460d26522d0d0aa5cffc271041
3
+ metadata.gz: 23810cc3477151ea6ad270b191e2cef33d2780ad
4
+ data.tar.gz: 7e8b1976915c042696eee2efeb7eacc7e5659f3e
5
5
  SHA512:
6
- metadata.gz: 63af223f748c800b3442d33c8ca2953112be8abd255289366ad2c5ee0f0782fa4db23041932241eacd49e9848669a04fbadadb0dd292c7d60ebd28f90079b7f8
7
- data.tar.gz: 827896546961487a2f0bf1d41f5e4f9a36d0c868b1c86fd5abd4bef4fba55e91b644fb583fb195f0238aaf00505b21c174d7b86bbe8b71956f866619b15555f1
6
+ metadata.gz: 0379b051a09ad9de8bf4082e4516e2aa59909cb0ee6ead6a0a497d66a8bc603be336b4a6166b521a619267f5020ad2d30e88be4c5bb0191377e3c68291c7ca27
7
+ data.tar.gz: 70a3986955dbcef6ab3bb237bc952117e5c8d8a37a048abdd36b3293963b6627fd6a150a266480b0ac2f78dbdb151d3202be8a925d1156a9c64c9877cf9bd888
data/.gitignore CHANGED
@@ -4,7 +4,6 @@
4
4
  .config
5
5
  .rvmrc
6
6
  .yardoc
7
- /Gemfile.lock
8
7
  _yardoc
9
8
  /coverage
10
9
  /doc/
@@ -1,8 +1,21 @@
1
+ addons:
2
+ apt:
3
+ packages:
4
+ - chef
5
+ - git
6
+ - graphviz
7
+ - libarchive12
8
+ - libarchive-dev
9
+ - libgecode-dev
10
+ sources:
11
+ - chef-stable-precise
12
+ cache:
13
+ - apt
14
+ - bundler
15
+ dist: precise
16
+ env:
17
+ global: USE_SYSTEM_GECODE=1
1
18
  language: ruby
2
- rvm:
3
- - 2.0.0
4
- - 2.1
5
- - 2.2
6
19
  notifications:
7
20
  irc:
8
21
  channels:
@@ -15,12 +28,34 @@ notifications:
15
28
  branches:
16
29
  only:
17
30
  - master
18
- env: USE_SYSTEM_GECODE=1
19
31
  bundler_args: --without guard --jobs 7
20
32
  before_install:
21
- - sudo apt-get install -qq libarchive12 libarchive-dev libgecode-dev graphviz
33
+ - gem update --system
34
+ - gem install bundler
22
35
  before_script:
23
36
  - echo "StrictHostKeyChecking no" > ~/.ssh/config
24
37
  - git config --global user.email "ci@berkshelf.com"
25
38
  - git config --global user.name "Berkshelf"
39
+ matrix:
40
+ include:
41
+ - rvm: 2.0.0
42
+ - rvm: 2.1
43
+ - rvm: 2.2
44
+ - rvm: 2.2
45
+ before_install:
46
+ # Failures in the berkshelf-api gemspec were happening with bundler 1.8
47
+ - gem install bundler --version=1.10.6
48
+ # Needed until https://github.com/travis-ci/apt-package-whitelist/pull/1820 is merged
49
+ - sudo apt-get update
50
+ - sudo apt-get -y install squid3
51
+ sudo: required
52
+ env:
53
+ - PROXY_TESTS_DIR=/tmp/proxy_tests
54
+ - PROXY_TESTS_REPO=$PROXY_TESTS_DIR/repo
55
+ - rvmsudo_secure_path=1
56
+ script:
57
+ - git clone https://github.com/chef/proxy_tests.git
58
+ - cd proxy_tests && chef-client -z -o proxy_tests::render && cd ..
59
+ - rvmsudo -E bundle exec bash $PROXY_TESTS_DIR/run_tests.sh berkshelf \* \* /tmp/out.txt
60
+ after_script: cat /tmp/out.txt
26
61
  script: bundle exec thor spec:ci
@@ -1,5 +1,20 @@
1
1
  > This is a high level digest of changes. For the complete CHANGELOG diff two tags in the project's [commit history](https://github.com/berkshelf/berkshelf/commits/master).
2
2
 
3
+ # 4.1.0
4
+
5
+ * Enhancements
6
+ * Have berks install bump only required cookbooks
7
+ * Upgrade to solve 2.0 and use Gecode as the engine
8
+ * Add a new `solver` Berksfile DSL option
9
+ * remove berkshelf gem entry in generated Gemfile
10
+ * Run Chef proxy tests on Travis
11
+ * Updating Test Kitchen to 1.5.0 and running bundle update
12
+
13
+ * Bug Fixes
14
+ * Use Net::HTTP.new instead of Net::HTTP.start to ensure environmental proxy settings are picked up
15
+ * Remove new cucumber and aruba warnings
16
+ * Pin aruba to 0.10.2
17
+
3
18
  # 4.0.1
4
19
 
5
20
  * Update `berkshelf-api-client` constraint to `~> 2.0`
@@ -51,3 +51,13 @@ By default, Berkshelf will only give you the top-level output from a failed comm
51
51
  isn't exactly helpful...
52
52
 
53
53
  Specify the `BERKSHELF_DEBUG` flag when running your command to see a full stack trace and other helpful debugging information.
54
+
55
+ ## Releasing
56
+
57
+ Once you are ready to release Berkshelf, perform the following:
58
+
59
+ 1. Update `CHANGELOG.md` with a new header indicating the version to be released
60
+ 1. Examine the diff ([example](https://github.com/berkshelf/berkshelf/compare/v4.0.1...master)) between master and the previous version. Add all merged Pull Requests to the `CHANGELOG.md`
61
+ 1. Update `version.rb` to the desired release version
62
+ 1. Create a PR and review the `version.rb` changes and `CHANGELOG.md` changes
63
+ 1. Once the PR is merged to master, run `rake release` on the master branch
@@ -0,0 +1,332 @@
1
+ GIT
2
+ remote: https://github.com/berkshelf/berkshelf-api.git
3
+ revision: 27c00fd297bc6bc38bd283e1d689ade3605dc981
4
+ specs:
5
+ berkshelf-api (2.1.1)
6
+ archive (= 0.0.6)
7
+ buff-config (~> 1.0)
8
+ celluloid (~> 0.16.0.pre)
9
+ celluloid-io (~> 0.16.0.pre)
10
+ grape (~> 0.6)
11
+ grape-msgpack (~> 0.1)
12
+ hashie (>= 2.0.4, < 4.0.0)
13
+ octokit (>= 3.0.0, < 5.0.0)
14
+ reel (~> 0.5.0)
15
+ ridley (~> 4.0)
16
+ semverse (~> 1.0)
17
+ varia_model (>= 0.4.0, < 0.5.0)
18
+
19
+ PATH
20
+ remote: .
21
+ specs:
22
+ berkshelf (4.1.0)
23
+ addressable (~> 2.3.4)
24
+ berkshelf-api-client (~> 2.0)
25
+ buff-config (~> 1.0)
26
+ buff-extensions (~> 1.0)
27
+ buff-shell_out (~> 0.1)
28
+ celluloid (= 0.16.0)
29
+ celluloid-io (~> 0.16.1)
30
+ cleanroom (~> 1.0)
31
+ faraday (~> 0.9.0)
32
+ httpclient (~> 2.6.0)
33
+ minitar (~> 0.5.4)
34
+ octokit (~> 4.0)
35
+ retryable (~> 2.0)
36
+ ridley (~> 4.3)
37
+ solve (~> 2.0)
38
+ thor (~> 0.19)
39
+
40
+ GEM
41
+ remote: https://rubygems.org/
42
+ specs:
43
+ activesupport (4.2.5)
44
+ i18n (~> 0.7)
45
+ json (~> 1.7, >= 1.7.7)
46
+ minitest (~> 5.1)
47
+ thread_safe (~> 0.3, >= 0.3.4)
48
+ tzinfo (~> 1.1)
49
+ addressable (2.3.8)
50
+ archive (0.0.6)
51
+ ffi (~> 1.9.3)
52
+ aruba (0.10.2)
53
+ childprocess (~> 0.5.6)
54
+ contracts (~> 0.9)
55
+ cucumber (>= 1.3.19)
56
+ ffi (~> 1.9.10)
57
+ rspec-expectations (>= 2.99)
58
+ thor (~> 0.19)
59
+ axiom-types (0.1.1)
60
+ descendants_tracker (~> 0.0.4)
61
+ ice_nine (~> 0.11.0)
62
+ thread_safe (~> 0.3, >= 0.3.1)
63
+ berkshelf-api-client (2.0.0)
64
+ faraday (~> 0.9.1)
65
+ httpclient (~> 2.6.0)
66
+ buff-config (1.0.1)
67
+ buff-extensions (~> 1.0)
68
+ varia_model (~> 0.4)
69
+ buff-extensions (1.0.0)
70
+ buff-ignore (1.1.1)
71
+ buff-ruby_engine (0.1.0)
72
+ buff-shell_out (0.2.0)
73
+ buff-ruby_engine (~> 0.1.0)
74
+ builder (3.2.2)
75
+ celluloid (0.16.0)
76
+ timers (~> 4.0.0)
77
+ celluloid-io (0.16.2)
78
+ celluloid (>= 0.16.0)
79
+ nio4r (>= 1.1.0)
80
+ chef-config (12.6.0)
81
+ mixlib-config (~> 2.0)
82
+ mixlib-shellout (~> 2.0)
83
+ chef-zero (4.4.2)
84
+ ffi-yajl (~> 2.2)
85
+ hashie (>= 2.0, < 4.0)
86
+ mixlib-log (~> 1.3)
87
+ rack
88
+ uuidtools (~> 2.1)
89
+ childprocess (0.5.9)
90
+ ffi (~> 1.0, >= 1.0.11)
91
+ cleanroom (1.0.0)
92
+ coderay (1.1.0)
93
+ coercible (1.0.0)
94
+ descendants_tracker (~> 0.0.1)
95
+ contracts (0.12.0)
96
+ coolline (0.4.4)
97
+ crack (0.4.3)
98
+ safe_yaml (~> 1.0.0)
99
+ cucumber (2.3.2)
100
+ builder (>= 2.1.2)
101
+ cucumber-core (~> 1.4.0)
102
+ cucumber-wire (~> 0.0.1)
103
+ diff-lcs (>= 1.1.3)
104
+ gherkin (~> 3.2.0)
105
+ multi_json (>= 1.7.5, < 2.0)
106
+ multi_test (>= 0.1.2)
107
+ cucumber-core (1.4.0)
108
+ gherkin (~> 3.2.0)
109
+ cucumber-wire (0.0.1)
110
+ dep-selector-libgecode (1.0.2)
111
+ dep_selector (1.0.3)
112
+ dep-selector-libgecode (~> 1.0)
113
+ ffi (~> 1.9)
114
+ descendants_tracker (0.0.4)
115
+ thread_safe (~> 0.3, >= 0.3.1)
116
+ diff-lcs (1.2.5)
117
+ domain_name (0.5.25)
118
+ unf (>= 0.0.5, < 1.0.0)
119
+ equalizer (0.0.11)
120
+ erubis (2.7.0)
121
+ faraday (0.9.2)
122
+ multipart-post (>= 1.2, < 3)
123
+ ffi (1.9.10)
124
+ ffi-yajl (2.2.3)
125
+ libyajl2 (~> 1.2)
126
+ formatador (0.2.5)
127
+ fuubar (2.0.0)
128
+ rspec (~> 3.0)
129
+ ruby-progressbar (~> 1.4)
130
+ gherkin (3.2.0)
131
+ grape (0.14.0)
132
+ activesupport
133
+ builder
134
+ hashie (>= 2.1.0)
135
+ multi_json (>= 1.3.2)
136
+ multi_xml (>= 0.5.2)
137
+ rack (>= 1.3.0)
138
+ rack-accept
139
+ rack-mount
140
+ virtus (>= 1.0.0)
141
+ grape-msgpack (0.1.2)
142
+ grape (>= 0.6.0)
143
+ msgpack (~> 0.5.6)
144
+ growl (1.0.3)
145
+ guard (1.8.3)
146
+ formatador (>= 0.2.4)
147
+ listen (~> 1.3)
148
+ lumberjack (>= 1.0.2)
149
+ pry (>= 0.9.10)
150
+ thor (>= 0.14.6)
151
+ guard-compat (1.2.1)
152
+ guard-cucumber (2.0.0)
153
+ cucumber (~> 2.0)
154
+ guard-compat (~> 1.0)
155
+ nenv (~> 0.1)
156
+ guard-rspec (1.2.2)
157
+ guard (>= 1.1)
158
+ guard-spork (1.5.2)
159
+ childprocess (>= 0.2.3)
160
+ guard (~> 1.1)
161
+ spork (>= 0.8.4)
162
+ hashdiff (0.2.3)
163
+ hashie (3.4.3)
164
+ hitimes (1.2.3)
165
+ http (0.9.8)
166
+ addressable (~> 2.3)
167
+ http-cookie (~> 1.0)
168
+ http-form_data (~> 1.0.1)
169
+ http_parser.rb (~> 0.6.0)
170
+ http-cookie (1.0.2)
171
+ domain_name (~> 0.5)
172
+ http-form_data (1.0.1)
173
+ http_parser.rb (0.6.0)
174
+ httpclient (2.6.0.1)
175
+ i18n (0.7.0)
176
+ ice_nine (0.11.1)
177
+ json (1.8.3)
178
+ libyajl2 (1.2.0)
179
+ listen (1.3.1)
180
+ rb-fsevent (>= 0.9.3)
181
+ rb-inotify (>= 0.9)
182
+ rb-kqueue (>= 0.2)
183
+ lumberjack (1.0.10)
184
+ method_source (0.8.2)
185
+ minitar (0.5.4)
186
+ minitest (5.8.4)
187
+ mixlib-authentication (1.4.0)
188
+ mixlib-log
189
+ rspec-core (~> 3.2)
190
+ rspec-expectations (~> 3.2)
191
+ rspec-mocks (~> 3.2)
192
+ mixlib-config (2.2.1)
193
+ mixlib-install (0.7.1)
194
+ mixlib-log (1.6.0)
195
+ mixlib-shellout (2.2.5)
196
+ molinillo (0.2.3)
197
+ msgpack (0.5.12)
198
+ multi_json (1.11.2)
199
+ multi_test (0.1.2)
200
+ multi_xml (0.5.5)
201
+ multipart-post (2.0.0)
202
+ nenv (0.2.0)
203
+ net-scp (1.2.1)
204
+ net-ssh (>= 2.6.5)
205
+ net-ssh (3.0.2)
206
+ nio4r (1.2.0)
207
+ octokit (4.2.0)
208
+ sawyer (~> 0.6.0, >= 0.5.3)
209
+ pry (0.10.3)
210
+ coderay (~> 1.1.0)
211
+ method_source (~> 0.8.1)
212
+ slop (~> 3.4)
213
+ rack (1.6.4)
214
+ rack-accept (0.4.5)
215
+ rack (>= 0.4)
216
+ rack-mount (0.8.3)
217
+ rack (>= 1.0.0)
218
+ rake (10.5.0)
219
+ rb-fsevent (0.9.7)
220
+ rb-inotify (0.9.5)
221
+ ffi (>= 0.5.0)
222
+ rb-kqueue (0.2.4)
223
+ ffi (>= 0.5.0)
224
+ reel (0.5.0)
225
+ celluloid (>= 0.15.1)
226
+ celluloid-io (>= 0.15.0)
227
+ http (>= 0.6.0.pre)
228
+ http_parser.rb (>= 0.6.0)
229
+ websocket_parser (>= 0.1.6)
230
+ retryable (2.0.3)
231
+ ridley (4.4.2)
232
+ addressable
233
+ buff-config (~> 1.0)
234
+ buff-extensions (~> 1.0)
235
+ buff-ignore (~> 1.1)
236
+ buff-shell_out (~> 0.1)
237
+ celluloid (~> 0.16.0)
238
+ celluloid-io (~> 0.16.1)
239
+ chef-config
240
+ erubis
241
+ faraday (~> 0.9.0)
242
+ hashie (>= 2.0.2, < 4.0.0)
243
+ httpclient (~> 2.6)
244
+ json (>= 1.7.7)
245
+ mixlib-authentication (>= 1.3.0)
246
+ retryable (~> 2.0)
247
+ semverse (~> 1.1)
248
+ varia_model (~> 0.4.0)
249
+ rspec (3.4.0)
250
+ rspec-core (~> 3.4.0)
251
+ rspec-expectations (~> 3.4.0)
252
+ rspec-mocks (~> 3.4.0)
253
+ rspec-core (3.4.1)
254
+ rspec-support (~> 3.4.0)
255
+ rspec-expectations (3.4.0)
256
+ diff-lcs (>= 1.2.0, < 2.0)
257
+ rspec-support (~> 3.4.0)
258
+ rspec-mocks (3.4.1)
259
+ diff-lcs (>= 1.2.0, < 2.0)
260
+ rspec-support (~> 3.4.0)
261
+ rspec-support (3.4.1)
262
+ ruby-progressbar (1.7.5)
263
+ safe_yaml (1.0.4)
264
+ sawyer (0.6.0)
265
+ addressable (~> 2.3.5)
266
+ faraday (~> 0.8, < 0.10)
267
+ semverse (1.2.1)
268
+ slop (3.6.0)
269
+ solve (2.0.1)
270
+ molinillo (~> 0.2.3)
271
+ semverse (~> 1.1)
272
+ spork (0.9.2)
273
+ test-kitchen (1.5.0)
274
+ chef-config (>= 12.5.1)
275
+ mixlib-install (~> 0.7)
276
+ mixlib-shellout (>= 1.2, < 3.0)
277
+ net-scp (~> 1.1)
278
+ net-ssh (>= 2.9, < 4.0)
279
+ safe_yaml (~> 1.0)
280
+ thor (~> 0.18)
281
+ thor (0.19.1)
282
+ thread_safe (0.3.5)
283
+ timers (4.0.4)
284
+ hitimes
285
+ tzinfo (1.2.2)
286
+ thread_safe (~> 0.1)
287
+ unf (0.1.4)
288
+ unf_ext
289
+ unf_ext (0.0.7.1)
290
+ uuidtools (2.1.5)
291
+ varia_model (0.4.1)
292
+ buff-extensions (~> 1.0)
293
+ hashie (>= 2.0.2, < 4.0.0)
294
+ virtus (1.0.5)
295
+ axiom-types (~> 0.1)
296
+ coercible (~> 1.0)
297
+ descendants_tracker (~> 0.0, >= 0.0.3)
298
+ equalizer (~> 0.0, >= 0.0.9)
299
+ webmock (1.22.6)
300
+ addressable (>= 2.3.6)
301
+ crack (>= 0.3.2)
302
+ hashdiff
303
+ websocket_parser (1.0.0)
304
+ yard (0.8.7.6)
305
+
306
+ PLATFORMS
307
+ ruby
308
+
309
+ DEPENDENCIES
310
+ aruba (~> 0.10.0)
311
+ berkshelf!
312
+ berkshelf-api!
313
+ chef-zero (~> 4.0)
314
+ coolline (~> 0.4.2)
315
+ dep_selector (~> 1.0)
316
+ fuubar (~> 2.0)
317
+ growl
318
+ guard (~> 1.8)
319
+ guard-cucumber
320
+ guard-rspec
321
+ guard-spork
322
+ http (~> 0.9.8)
323
+ rake (~> 10.1)
324
+ rb-fsevent
325
+ rspec (~> 3.0)
326
+ spork (~> 0.9)
327
+ test-kitchen (~> 1.2)
328
+ webmock (~> 1.11)
329
+ yard (~> 0.8)
330
+
331
+ BUNDLED WITH
332
+ 1.11.2