berkshelf 4.0.1 → 4.1.0

Sign up to get free protection for your applications and to get access to all the features.
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